import React, { Component } from 'react' import { Button, Row, Col, Form, Input, DatePicker, Radio, Table, Select, Spin, TreeSelect, } from 'antd' import { AntIcon } from 'components' import { cloneDeep } from 'lodash' import getDictData from 'util/dic' import { EMPTY_ID } from 'util/global' import { api } from 'common/api' import moment from 'moment' const initialValues = { sex: 0, sysEmpParam: {}, } export default class form extends Component { state = { // 加载状态 loading: true, codes: { orgType: [], }, options: { orgData: [], posData: [], }, sysEmpParam: { extIds: [], }, } extColumns = [ { title: '附属机构', dataIndex: 'orgId', width: '45%', render: (text, record, index) => ( ), }, { title: '附属岗位', dataIndex: 'posId', width: '45%', render: (text, record, index) => ( ), }, { title: '操作', key: 'action', width: '70px', render: (text, record) => ( ), }, ] // 表单实例 form = React.createRef() // 初始化数据 record = {} /** * mount后回调 */ componentDidMount() { this.props.created && this.props.created(this) } /** * 填充数据 * 可以在设置this.record之后对其作出数据结构调整 * [异步,必要] * @param {*} params */ async fillData(params) { //#region 从后端转换成前段所需格式 if (params.id) { this.record = (await api.sysUserDetail({ id: params.id })).data } const orgData = await this.loadOrgData() const posData = await this.loadPosData() const codes = await getDictData('org_type') // 日期特殊处理 if (this.record.birthday) { this.record.birthday = moment(this.record.birthday) } // 提交的时候是"param",而获取下来却是"info",在这里转换一下 if (this.record.sysEmpInfo) { this.record.sysEmpParam = this.record.sysEmpInfo delete this.record.sysEmpInfo } else if (!this.record.sysEmpParam) { this.record.sysEmpParam = { extIds: [], } } // 转换职位信息列表 if (this.record.sysEmpParam.positions) { this.record.sysEmpParam.posIdList = this.record.sysEmpParam.positions.map(p => p.posId) } // 附加信息 if (this.record.sysEmpParam.extOrgPos) { this.record.sysEmpParam.extIds = this.record.sysEmpParam.extOrgPos.map((p, i) => { return { key: i, orgId: p.orgId, posId: p.posId, } }) } if (params.orgId) { this.record.sysEmpParam.orgId = params.orgId } this.setState({ codes, options: { ...this.state.options, orgData, posData, }, sysEmpParam: { ...this.record.sysEmpParam, }, }) this.record = { ...this.record, } //#endregion this.form.current.setFieldsValue(this.record) this.setState({ loading: false, }) } /** * 获取数据 * 可以对postData进行数据结构调整 * [异步,必要] * @returns */ async getData() { const form = this.form.current const valid = await form.validateFields() if (valid) { const postData = form.getFieldsValue() if (this.record) { postData.id = this.record.id } //#region 从前段转换后端所需格式 console.log(postData) //#endregion return postData } } //#region 自定义方法 async loadOrgData() { const { data } = await api.getOrgTree() return data } async loadPosData() { const { data } = await api.sysPosList() return data } onAddExtData() { const { extIds } = this.state.sysEmpParam const record = { key: extIds.length > 0 ? extIds[extIds.length - 1].key + 1 : 0, orgId: undefined, posId: undefined, } this.setState( { sysEmpParam: { extIds: [...extIds, record], }, }, () => { console.log(this.form.current.getFieldsValue()) } ) } onRemoveExtData(record) { const ext = this.state.sysEmpParam.extIds, remove = ext.find(p => p.key === record.key), index = ext.indexOf(remove) ext.splice(index, 1) console.log(ext) // this.form.current.setFieldsValue({ // sysEmpParam: { // extIds: {} // } // }) this.setState( { sysEmpParam: { extIds: ext, }, }, () => { //console.log(this.form.current.getFieldsValue()) } ) } //#endregion renderExtInfoTable() { //console.log(this.state.sysEmpParam.extIds) return ( record.key} footer={() => ( )} >
) } render() { return (
}>

基本信息

{/* {this.props.mode == 'add' && ( <> )} */} 保密

员工信息

{/*

附加信息

{this.renderExtInfoTable()}
*/}
) } }