diff --git a/web-react/src/pages/system/user/form.jsx b/web-react/src/pages/system/user/form.jsx
index 627bdec..6749c33 100644
--- a/web-react/src/pages/system/user/form.jsx
+++ b/web-react/src/pages/system/user/form.jsx
@@ -1,13 +1,15 @@
import React, { Component } from 'react'
-import { Cascader, Form, Input, InputNumber, Select, Spin, TreeSelect } from 'antd'
+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 = {
- sort: 100
+ sex: 0,
+ sysEmpParam: {}
}
export default class form extends Component {
@@ -15,17 +17,74 @@ export default class form extends Component {
state = {
// 加载状态
loading: true,
-
codes: {
orgType: []
},
options: {
orgData: [],
- areaData: []
+ 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()
@@ -46,54 +105,63 @@ export default class form extends Component {
* @param {*} params
*/
async fillData(params) {
-
- this.record = cloneDeep(params.record)
+ this.record = cloneDeep(params.record || {})
//#region 从后端转换成前段所需格式
const orgData = await this.loadOrgData()
- const areaData = await this.loadAreaData()
+ const posData = await this.loadPosData()
+ const codes = await getDicData('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;
+ }
- const codes = await getDictData('org_type')
this.setState({
codes,
options: {
+ ...this.state.options,
orgData,
- areaData
+ posData,
+ },
+ sysEmpParam: {
+ ...this.record.sysEmpParam
}
})
- const areaCode = [];
- const findCode = (data, level) => {
- level = level || 0;
- for (let i = 0; i < data.length; i++) {
- const item = data[i];
- areaCode[level] = item.code;
-
- if (item.code === params.record.areaCode) {
- areaCode.length = level + 1;
- return true;
- }
-
- if (item.children && item.children.length) {
- const found = findCode(item.children, level + 1);
- if (found) {
- return true;
- }
- }
- }
- };
-
- if (params.record && params.record.areaCode) {
- findCode(areaData);
- }
-
this.record = {
- pid: params.orgId,
- ...this.record,
- areaCode
+ ...this.record
}
- this.record.areaCode = areaCode
//#endregion
-
this.form.current.setFieldsValue(this.record)
this.setState({
@@ -117,7 +185,7 @@ export default class form extends Component {
postData.id = this.record.id
}
//#region 从前段转换后端所需格式
- postData.areaCode = postData.areaCode[postData.areaCode.length - 1]
+ console.log(postData)
//#endregion
return postData
}
@@ -126,39 +194,79 @@ export default class form extends Component {
//#region 自定义方法
async loadOrgData() {
const { data } = await api.getOrgTree()
- return [{
- id: EMPTY_ID,
- parentId: undefined,
- title: '顶级',
- value: EMPTY_ID,
- pid: undefined,
- children: data,
- }]
- }
-
- async loadAreaData() {
- const { data } = await api.getAreaTree()
- const clearChiildren = (data) => {
- data.forEach((item) => {
- if (item.children && item.children.length) {
- clearChiildren(item.children);
- } else {
- delete item.children;
- }
- });
- };
- clearChiildren(data);
return data
}
+ async loadPosData() {
+ const { data } = await api.sysPosList()
+ return data
+ }
+ onAddExtData() {
+ const { extIds } = this.state.sysEmpParam
- onAreaCodeChange(selectedOptions) {
- const data = selectedOptions[selectedOptions.length - 1]
- this.form.current.setFieldsValue({
- name: data.name,
- code: data.code
+ 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={
+ () =>
+
+ }
+ type="dashed"
+ onClick={() => this.onAddExtData()}>
+ 新增一项
+ }
+ >
+
+ )
+ }
render() {
return (
@@ -167,59 +275,104 @@ export default class form extends Component {
ref={this.form}
className="yo-form"
>
- }>
-
+
+
+ 员工信息
+
+
+
+
+
+
+
+
+
+
+
+ {/* 附加信息
+
+ {this.renderExtInfoTable()}
+
*/}
+
+
)
diff --git a/web-react/src/pages/system/user/index.jsx b/web-react/src/pages/system/user/index.jsx
index 21b6430..09931b6 100644
--- a/web-react/src/pages/system/user/index.jsx
+++ b/web-react/src/pages/system/user/index.jsx
@@ -301,8 +301,9 @@ export default class index extends Component {
action={apiAction.add}
ref={this.addForm}
onSuccess={() => this.list.current.onReloadData()}
+ width={1100}
>
-
+
this.list.current.onReloadData()}
+ width={1100}
>
-
+
)