900 lines
30 KiB
JavaScript
900 lines
30 KiB
JavaScript
import React from 'react'
|
||
import { connect } from 'dva'
|
||
import { Button, Row, Col, Form, Input, Select, Transfer, message, Upload, Icon, Modal, DatePicker, Checkbox } from 'antd'
|
||
import {
|
||
extend,
|
||
extendRule,
|
||
initFilter,
|
||
getOnlyPropertyData,
|
||
extendInclude,
|
||
setDataFieldValue,
|
||
getPropertyData,
|
||
guid
|
||
} from '../../../utils/common'
|
||
import moment from 'moment'
|
||
import DropDownPagination from '../../common/DropDownPaginationEx'
|
||
import config from '../../../config'
|
||
import classNames from 'classnames'
|
||
import styles from '../../../baseComponents/Component.css'
|
||
import storage from '../../../utils/storage'
|
||
import FormPage from '../../FormPage';
|
||
import MultiSelectPagination from "../../common/MultiSelectPagination";
|
||
const Option = Select.Option
|
||
const { TextArea } = Input
|
||
const CheckboxGroup = Checkbox.Group
|
||
class UserEditPage extends React.Component {
|
||
constructor(props) {
|
||
super(props)
|
||
this.state = {
|
||
data: {
|
||
PASSWORD: 'E10ADC3949BA59ABBE56E057F20F883E', // 默认密码为123456
|
||
},
|
||
btns: [],
|
||
userGroupTargetKeys: [],
|
||
roleTargetKeys: [],
|
||
roleGroupTargetKeys: [],
|
||
disabled: false,
|
||
SignaturePhoto: ""
|
||
}
|
||
|
||
};
|
||
|
||
componentDidMount() {
|
||
this.props.form.resetFields()
|
||
this.loadData()
|
||
};
|
||
|
||
componentWillReceiveProps(NextProps) {
|
||
const { data } = this.props
|
||
let { id } = data ? data : {}
|
||
if (!id)
|
||
id = ''
|
||
if (NextProps.custom['userEditClick' + id]) {
|
||
this.props.form.resetFields()
|
||
this.props.dispatch({
|
||
type: 'custom/save',
|
||
payload: {
|
||
['userEditClick' + id]: false
|
||
},
|
||
})
|
||
this.loadData()
|
||
}
|
||
}
|
||
|
||
loadDataSource = (orgId) => {
|
||
const { dispatch } = this.props
|
||
const userGroupJson = initFilter(orgId, '', 'CODE', 1)
|
||
extendRule(userGroupJson, 'ENABLE_STATUS', 1, 0)
|
||
userGroupJson.OrgType = 1
|
||
dispatch({
|
||
type: 'FMBase/getUserGroupDatasource',
|
||
payload: userGroupJson,
|
||
})
|
||
const roleJson = initFilter(orgId, '', 'CODE', 1)
|
||
extendRule(roleJson, 'ENABLE_STATUS', 1, 0)
|
||
roleJson.OrgType = 1
|
||
dispatch({
|
||
type: 'FMBase/getRoleDatasource',
|
||
payload: roleJson,
|
||
|
||
})
|
||
const roleGroupJson = initFilter(orgId, '', 'CODE', 1)
|
||
extendRule(roleGroupJson, 'ENABLE_STATUS', 1, 0)
|
||
roleGroupJson.OrgType = 1
|
||
dispatch({
|
||
type: 'FMBase/getRoleGroupDatasource',
|
||
payload: roleGroupJson,
|
||
})
|
||
};
|
||
loadData = () => {
|
||
const { data, formId, login } = this.props
|
||
const { id } = data || {}
|
||
|
||
if (id) {
|
||
const userJson = initFilter(this.props.login.OrgId)
|
||
extendRule(userJson, 'ID', 1, id)
|
||
extendInclude(userJson, 'Nav_Department')
|
||
extendInclude(userJson, 'Nav_ApproveRole')
|
||
extendInclude(userJson, 'Nav_Person.Nav_TeamPersons.Nav_Team')
|
||
extendInclude(userJson, 'Nav_Person.Nav_Post')
|
||
extendInclude(userJson, 'Nav_BelongRoles')
|
||
// extendInclude(userJson, 'Nav_BelongRoleGroups')
|
||
// extendInclude(userJson, 'Nav_BelongUserGroups')
|
||
// extendInclude(userJson, 'Nav_UserPhotoFiles')
|
||
extendInclude(userJson, 'Nav_UserPhotoFiles.Nav_ImgFile')
|
||
extendInclude(userJson, 'Nav_UserSignFiles.Nav_ImgFile')
|
||
extendInclude(userJson, 'Nav_ProdutionUnit.Nav_Enums')
|
||
this.props.dispatch({
|
||
type: 'FMUserEdit/getUser',
|
||
payload: userJson,
|
||
onComplete: (ret) => {
|
||
if (ret) {
|
||
ret.ID_CARD_SHOW = ret.ID_CARD
|
||
if (ret.ID_CARD_SHOW != null && ret.ID_CARD_SHOW.length > 1) {
|
||
ret.ID_CARD_SHOW = ret.ID_CARD_SHOW.replace(/^(.{5})(?:\d+)(.{2})$/, "$1***********$2")
|
||
}
|
||
let userGroup = []
|
||
let role = []
|
||
let roleGroup = []
|
||
if (ret.Nav_BelongRoles) {
|
||
ret.Nav_BelongRoles.forEach(item => {
|
||
role.push(item.BELONG_ROLE_ID.toString().toUpperCase())
|
||
})
|
||
}
|
||
if (ret.Nav_BelongRoleGroups) {
|
||
ret.Nav_BelongRoleGroups.forEach(item => {
|
||
roleGroup.push(item.BELONG_ROLE_GROUP_ID.toString().toUpperCase())
|
||
})
|
||
}
|
||
|
||
if (ret.Nav_BelongUserGroups) {
|
||
ret.Nav_BelongUserGroups.forEach(item => {
|
||
userGroup.push(item.BELONG_USER_GROUP_ID.toString().toUpperCase())
|
||
})
|
||
}
|
||
|
||
this.loadDataSource(ret.ORG_ID)
|
||
this.fillData(ret)
|
||
this.fillSignData(ret)
|
||
this.setState({
|
||
data: ret,
|
||
userGroupTargetKeys: userGroup,
|
||
roleTargetKeys: role,
|
||
roleGroupTargetKeys: roleGroup,
|
||
disabled: true,
|
||
SignaturePhoto: (ret?.FILE_PATH) ? (config.picServerHost + ret.FILE_PATH) : '',
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
else {
|
||
this.props.form.resetFields()
|
||
this.loadDataSource(login.OrgId)
|
||
|
||
this.setState({
|
||
data: {
|
||
...this.state.data,
|
||
ORG_ID: this.props.login.OrgId,
|
||
ENABLE_STATUS: 0,
|
||
ID: guid(),
|
||
Nav_Person: {
|
||
Nav_TeamPersons: [],
|
||
Nav_Post: {}
|
||
},
|
||
},
|
||
disabled: false,
|
||
})
|
||
const { form, } = this.props
|
||
const { setFieldsValue } = form
|
||
if (this.props.login.OrgCode) {
|
||
setFieldsValue({
|
||
CODE: (this.props.login.OrgCode),
|
||
})
|
||
}
|
||
}
|
||
if (formId) {
|
||
const btnJson = initFilter(this.props.login.OrgId, '', 'NUM', 0)
|
||
extendRule(btnJson, 'PAGE_CUSTOM_FORM_ID', 1, formId)
|
||
this.props.dispatch({
|
||
type: 'FMUserEdit/getBtnList',
|
||
payload: btnJson,
|
||
onComplete: (ret) => {
|
||
if (ret) {
|
||
this.setState({
|
||
btns: ret,
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
|
||
|
||
};
|
||
|
||
fillData = (ret) => {
|
||
const updateLoadFileList = []
|
||
if (ret.Nav_UserPhotoFiles) {
|
||
ret.Nav_UserPhotoFiles.forEach(t => {
|
||
updateLoadFileList.push({
|
||
uid: t.ID,
|
||
name: t.Nav_ImgFile ? t.Nav_ImgFile.FILE_NAME : '未知文件',
|
||
status: 'done',
|
||
response: { Data: { imgFileID: t.IMG_FILE_ID }, file: t },
|
||
})
|
||
})
|
||
}
|
||
this.setState({
|
||
updateLoadFileList: updateLoadFileList,
|
||
})
|
||
}
|
||
|
||
fillSignData = (ret) => {
|
||
const updateLoadSignFileList = []
|
||
if (ret.Nav_UserSignFiles) {
|
||
ret.Nav_UserSignFiles.forEach(t => {
|
||
updateLoadSignFileList.push({
|
||
uid: t.ID,
|
||
name: t.Nav_ImgFile ? t.Nav_ImgFile.FILE_NAME : '未知文件',
|
||
status: 'done',
|
||
response: { Data: { imgFileID: t.IMG_FILE_ID }, file: t },
|
||
})
|
||
})
|
||
}
|
||
this.setState({
|
||
updateLoadSignFileList: updateLoadSignFileList,
|
||
})
|
||
}
|
||
|
||
getBtns = () => {
|
||
const btns = []
|
||
if (this.state.btns) {
|
||
this.state.btns.forEach(item => {
|
||
if (item.BTN_TYPE == 1 && this.state.data.ENABLE_STATUS == 0) {
|
||
btns.push(<Button type={item.CSS} icon={item.ICON} key={item.ID} onClick={() => this.handleOk()}>{item.LABEL}</Button>)
|
||
}
|
||
})
|
||
if (this.state.data.ENABLE_STATUS == 0) {
|
||
btns.push(<Button type="danger" icon="stop" onClick={() => this.handleStatus(this.state.data.ENABLE_STATUS)}>停用</Button>)
|
||
} else {
|
||
btns.push(<Button type="primary" icon="plus" onClick={() => this.handleStatus(this.state.data.ENABLE_STATUS)}>启用</Button>)
|
||
}
|
||
|
||
}
|
||
return btns
|
||
};
|
||
handleStatus = (status) => {
|
||
const { form, dispatch, data } = this.props
|
||
if (this.state.data.Nav_Department.NAME.length == 0) {//Nav_Person.Nav_TeamPersons
|
||
message.error(`请先选择班组`);
|
||
return;
|
||
}
|
||
dispatch({
|
||
type: 'app/getDataByPost',
|
||
url: 'FM/User/updateStatus',
|
||
payload: {
|
||
Parameter1: status,
|
||
Parameter2: data.id,
|
||
Parameter3: this.state.data.DEPARTMENT_ID,//this.state.data.Nav_Person.Nav_TeamPersons[0].TEAM_ID,
|
||
|
||
},
|
||
onComplete: (ret) => {
|
||
if (ret) {
|
||
if (data.close) {
|
||
data.close()
|
||
}
|
||
message.success('执行成功')
|
||
}
|
||
}
|
||
})
|
||
}
|
||
handleOk = () => {
|
||
const { form, dispatch, data } = this.props
|
||
const { validateFieldsAndScroll } = form
|
||
const { updateLoadFileList, updateLoadSignFileList } = this.state
|
||
this.state.data.FILE_PATH = this.state.SignaturePhoto.replace(config.picServerHost, '')
|
||
|
||
validateFieldsAndScroll((errors, values) => {
|
||
if (errors) return
|
||
extend(this.state.data, values)
|
||
let updateData = getOnlyPropertyData(this.state.data)
|
||
const ret = this.state.data
|
||
if (values.ID_CARD_SHOW != null && values.ID_CARD_SHOW != '' && values.ID_CARD_SHOW.indexOf('*') < 0 && (ret.ID_CARD == null || ret.ID_CARD != values.ID_CARD_SHOW)) {
|
||
ret.ID_CARD = values.ID_CARD_SHOW
|
||
updateData.ID_CARD = values.ID_CARD_SHOW
|
||
}
|
||
let personTeam = getPropertyData(this.state.data.Nav_Person);
|
||
let userGroup = []
|
||
let role = []
|
||
let roleGroup = []
|
||
let userPhoto = []
|
||
let userSign = []
|
||
if (updateLoadFileList) {
|
||
updateLoadFileList.forEach(item => {
|
||
if (item.response && item.response.Data) {
|
||
userPhoto.push({ IMG_FILE_ID: item.response.Data.imgFileID, ORG_ID: updateData.ORG_ID, USER_ID: updateData.ID })
|
||
}
|
||
})
|
||
}
|
||
if (updateLoadSignFileList) {
|
||
updateLoadSignFileList.forEach(item => {
|
||
if (item.response && item.response.Data) {
|
||
userSign.push({ IMG_FILE_ID: item.response.Data.imgFileID, ORG_ID: updateData.ORG_ID, USER_ID: updateData.ID })
|
||
}
|
||
})
|
||
}
|
||
if (this.state.roleTargetKeys) {
|
||
this.state.roleTargetKeys.forEach(item => {
|
||
let isGet = false
|
||
if (ret.Nav_BelongRoles) {
|
||
ret.Nav_BelongRoles.forEach(t => {
|
||
if (t.BELONG_ROLE_ID.toString().toUpperCase() == item) {
|
||
role.push(t)
|
||
isGet = true
|
||
}
|
||
})
|
||
}
|
||
if (!isGet) {
|
||
role.push({ BELONG_ROLE_ID: item, ORG_ID: updateData.ORG_ID })
|
||
}
|
||
})
|
||
}
|
||
|
||
if (this.state.userGroupTargetKeys) {
|
||
this.state.userGroupTargetKeys.forEach(item => {
|
||
let isGet = false
|
||
if (ret.Nav_BelongUserGroups) {
|
||
ret.Nav_BelongUserGroups.forEach(t => {
|
||
if (t.BELONG_USER_GROUP_ID.toString().toUpperCase() == item) {
|
||
userGroup.push(t)
|
||
isGet = true
|
||
}
|
||
})
|
||
}
|
||
if (!isGet) {
|
||
userGroup.push({ BELONG_USER_GROUP_ID: item, ORG_ID: updateData.ORG_ID })
|
||
}
|
||
})
|
||
}
|
||
|
||
|
||
if (this.state.roleGroupTargetKeys) {
|
||
this.state.roleGroupTargetKeys.forEach(item => {
|
||
let isGet = false
|
||
if (ret.Nav_BelongRoleGroups) {
|
||
ret.Nav_BelongRoleGroups.forEach(t => {
|
||
if (t.BELONG_ROLE_GROUP_ID.toString().toUpperCase() == item) {
|
||
roleGroup.push(t)
|
||
isGet = true
|
||
}
|
||
})
|
||
}
|
||
if (!isGet) {
|
||
roleGroup.push({ BELONG_ROLE_GROUP_ID: item, ORG_ID: updateData.ORG_ID })
|
||
}
|
||
})
|
||
}
|
||
|
||
updateData['Nav_BelongRoles'] = role
|
||
updateData['Nav_BelongUserGroups'] = userGroup
|
||
updateData['Nav_BelongRoleGroups'] = roleGroup
|
||
updateData['Nav_UserPhotoFiles'] = userPhoto
|
||
updateData['Nav_UserSignFiles'] = userSign
|
||
updateData['Nav_Person'] = personTeam;
|
||
dispatch({
|
||
type: 'FMUserEdit/updateUser',
|
||
payload: updateData,
|
||
onComplete: (ret) => {
|
||
if (ret) {
|
||
if (data.close) {
|
||
data.close()
|
||
}
|
||
message.success('执行成功')
|
||
}
|
||
}
|
||
})
|
||
})
|
||
};
|
||
|
||
handleSopClick = async function (recordId, ids) {
|
||
await this.props.dispatch({
|
||
type: 'custom/save',
|
||
payload: {
|
||
['sopViewClick' + recordId]: true,
|
||
},
|
||
});
|
||
};
|
||
|
||
handleSopShowModal = (file) => {
|
||
this.setState({
|
||
sopData: { ids: file.response.Data.imgFileID, id: file.response.Data.imgFileID },
|
||
sopVisible: true
|
||
}, () => {
|
||
this.handleSopClick(file.response.Data.imgFileID, file.response.Data.imgFileID);
|
||
});
|
||
};
|
||
handleSopCloseModal = () => {
|
||
this.setState({
|
||
sopVisible: false
|
||
});
|
||
};
|
||
|
||
render() {
|
||
const { form } = this.props
|
||
const { getFieldDecorator } = form
|
||
|
||
const handleRoleChange = (nextTargetKeys, direction, moveKeys) => {
|
||
this.setState({ roleTargetKeys: nextTargetKeys })
|
||
}
|
||
const formItemLayout = {
|
||
labelCol: { span: 6 },
|
||
wrapperCol: { span: 18 },
|
||
}
|
||
const onSelectDepartment = ({ data, record }) => {
|
||
|
||
if (data && data.length > 0) {
|
||
let json = initFilter(this.props.login.OrgId, record.ID);
|
||
this.props.dispatch({
|
||
type: 'app/getDataByPost',
|
||
payload: json,
|
||
url: 'FM/User/GetProductionUnit',
|
||
onComplete: (ret) => {
|
||
if (ret) {
|
||
this.setState({
|
||
data: {
|
||
...this.state.data,
|
||
MineType: ret.MineType
|
||
}
|
||
})
|
||
}
|
||
}
|
||
});
|
||
this.setState({
|
||
data: {
|
||
...this.state.data,
|
||
DEPARTMENT_ID: data[0],
|
||
Nav_Department: { NAME: record.NAME },
|
||
}
|
||
})
|
||
}
|
||
else {
|
||
this.setState({
|
||
data: {
|
||
...this.state.data,
|
||
Nav_Department: { NAME: null },
|
||
DEPARTMENT_ID: null,
|
||
}
|
||
})
|
||
};
|
||
}
|
||
const onSelectApproveRole = ({ data, record }) => {
|
||
|
||
if (data && data.length > 0) {
|
||
this.setState({
|
||
data: {
|
||
...this.state.data,
|
||
APPROVE_ROLE_ID: data[0],
|
||
Nav_ApproveRole: { NAME: record.NAME }
|
||
}
|
||
})
|
||
}
|
||
else {
|
||
this.setState({
|
||
data: {
|
||
...this.state.data,
|
||
Nav_ApproveRole: { NAME: null },
|
||
APPROVE_ROLE_ID: null,
|
||
}
|
||
})
|
||
};
|
||
}
|
||
const onSelectPost = ({ data, record }) => {
|
||
var tmpData = { ...this.state.data };
|
||
if (data && data.length > 0) {
|
||
tmpData.Nav_Person.Post_ID = data[0];
|
||
tmpData.Nav_Person.Nav_Post = { NAME: record.NAME };
|
||
|
||
}
|
||
else {
|
||
tmpData.Nav_Person.Post_ID = '';
|
||
tmpData.Nav_Person.Nav_Post = { NAME: '' };
|
||
};
|
||
this.setState({
|
||
data: tmpData
|
||
})
|
||
}
|
||
const onSelectPerson = ({ data, record }) => {
|
||
if (data && data.length > 0) {
|
||
this.setState({
|
||
data: {
|
||
...this.state.data,
|
||
PERSON_ID: data[0],
|
||
Nav_Person: { NAME: record.NAME }
|
||
}
|
||
})
|
||
}
|
||
else {
|
||
this.setState({
|
||
data: {
|
||
...this.state.data,
|
||
Nav_Person: { NAME: null },
|
||
PERSON_ID: null,
|
||
}
|
||
})
|
||
};
|
||
}
|
||
|
||
const onSelectTeam = (value) => {
|
||
var tmpData = { ...this.state.data }
|
||
setDataFieldValue(tmpData, 'Nav_Person.Nav_TeamPersons', value)
|
||
this.setState({
|
||
data: tmpData,
|
||
});
|
||
}
|
||
const onSelectProduction = (value) => {
|
||
var tmpData = { ...this.state.data }
|
||
setDataFieldValue(tmpData, 'Nav_ProdutionUnit', value)
|
||
this.setState({
|
||
data: tmpData,
|
||
});
|
||
}
|
||
const onUnitChange = (value) => {
|
||
var tmpData = { ...this.state.data }
|
||
if (value.length == 0) {
|
||
setDataFieldValue(tmpData, 'MineType', value.toString())
|
||
}
|
||
else {
|
||
setDataFieldValue(tmpData, 'MineType', tmpData.MineType + "," + value.toString())
|
||
}
|
||
this.setState({
|
||
data: tmpData,
|
||
});
|
||
}
|
||
const onChange = (field, value,) => {
|
||
const data = { ...this.state.data };
|
||
data[field] = value;
|
||
this.setState({
|
||
data: data,
|
||
});
|
||
}
|
||
|
||
const that = this
|
||
const Tenant = storage('lacal').getItem('Tenant').val
|
||
const uploadSopProps = {
|
||
name: 'file',
|
||
action: config.serviceHost('api/PF/File/UploadFileToImage'),
|
||
data: { OrgId: this.props.login.OrgId, IsSaveSelf: true },
|
||
fileList: this.state.updateLoadFileList,
|
||
headers: {
|
||
Tenant: Tenant,
|
||
},
|
||
onPreview: function (file) {
|
||
that.handleSopShowModal(file);
|
||
},
|
||
onChange(info) {
|
||
that.setState({
|
||
updateLoadFileList: info.fileList,
|
||
})
|
||
if (info.file.status === 'done') {
|
||
message.success(`${info.file.name} file uploaded successfully`)
|
||
} else if (info.file.status === 'error') {
|
||
message.error(`${info.file.name} file upload failed.`)
|
||
}
|
||
},
|
||
}
|
||
|
||
const uploadSingProps = {
|
||
name: 'file',
|
||
action: config.serviceHost('api/PF/File/UploadFileToImage'),
|
||
data: { OrgId: this.props.login.OrgId, IsSaveSelf: true, USER_ID: this.props.data.id },
|
||
fileList: this.state.updateLoadSignFileList,
|
||
headers: {
|
||
Tenant: Tenant,
|
||
},
|
||
onPreview: function (file) {
|
||
that.handleSopShowModal(file);
|
||
},
|
||
onChange(info) {
|
||
that.setState({
|
||
updateLoadSignFileList: info.fileList,
|
||
SignaturePhoto: config.picServerHost + info?.file?.response?.Data.imgFilePath
|
||
})
|
||
if (info.file.status === 'done') {
|
||
// console.log(that.state)
|
||
message.success(`${info.file.name} file uploaded successfully`)
|
||
} else if (info.file.status === 'error') {
|
||
message.error(`${info.file.name} file upload failed.`)
|
||
}
|
||
},
|
||
}
|
||
|
||
return (
|
||
|
||
<Form style={{ padding: 12, overflow: 'hidden' }}>
|
||
<div className={styles.topBar}>
|
||
<div className={classNames(styles.topBarLeftBtns, styles.antBtns_mr8)}>
|
||
{this.getBtns()}
|
||
</div>
|
||
</div>
|
||
<Row gutter={32}>
|
||
<Col span={16}>
|
||
<Row>
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'姓名'}
|
||
{...formItemLayout}
|
||
>
|
||
{getFieldDecorator('NAME', {
|
||
validateTrigger: 'onBlur',
|
||
initialValue: this.state.data.NAME,
|
||
rules: [{ required: true, message: '请输入姓名' }],
|
||
})(<Input disabled={this.state.disabled} maxLength={30} placeholder={'请输入姓名'} />)}
|
||
</Form.Item>
|
||
</Col>
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'登入名'}
|
||
{...formItemLayout}
|
||
>
|
||
{getFieldDecorator('CODE', {
|
||
validateTrigger: 'onBlur',
|
||
initialValue: this.state.data.CODE,
|
||
rules: [{ required: true, message: '请输入登入名' }],
|
||
})(<Input disabled={this.state.disabled} maxLength={30} placeholder={'请输入登入名'} />)}
|
||
</Form.Item>
|
||
</Col>
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'组织结构'}
|
||
{...formItemLayout}
|
||
>
|
||
<DropDownPagination inputDataApi={'FM/Department/OrderPaged'} fieldName={'Nav_Department.NAME'}
|
||
data={this.state.data} onSelect={onSelectDepartment} onFilter={({ params }) => {
|
||
params.OrderType = 1
|
||
params.OrgId = this.state.data ? this.state.data.ORG_ID : this.props.login.OrgId
|
||
}} />
|
||
</Form.Item>
|
||
</Col>
|
||
{/* <Col span={12}>
|
||
<Form.Item
|
||
label={'关联人员'}
|
||
{...formItemLayout}
|
||
>
|
||
<DropDownPagination inputDataApi={'FM/Person/OrderPaged'} fieldName={'Nav_Person.NAME'}
|
||
data={this.state.data} onSelect={onSelectPerson} onFilter={({ params }) => {
|
||
params.OrderType = 1
|
||
params.OrgId = this.state.data ? this.state.data.ORG_ID : this.props.login.OrgId
|
||
}} />
|
||
</Form.Item>
|
||
</Col> */}
|
||
{/* <Col span={8}>
|
||
<Form.Item
|
||
label={'班组'}
|
||
{...formItemLayout}
|
||
>
|
||
<MultiSelectPagination api={'FM/Team/OrderPaged'}
|
||
data={
|
||
{
|
||
navField: 'ID,NAME',
|
||
saveField: 'TEAM_ID,Nav_Team.NAME',
|
||
labelField: "Nav_Team.NAME",
|
||
showField: "NAME",
|
||
filterField: "NAME",
|
||
idField: "PERSON_ID",
|
||
selectLabelField: "NAME",//不配置则默认取labelField,如果labelField也不配置,默认取NAME字段
|
||
}
|
||
}
|
||
colConfig={{ field: "Nav_Person.Nav_TeamPersons" }}
|
||
record={this.state.data} onChange={onSelectTeam} onFilter={({ params }) => {
|
||
params.OrderType = 1
|
||
params.OrgId = this.state.data ? this.state.data.ORG_ID : this.props.login.OrgId
|
||
}} />
|
||
</Form.Item>
|
||
</Col> */}
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'岗位'}
|
||
{...formItemLayout}
|
||
>
|
||
<DropDownPagination inputDataApi={'FM/UserPost/OrderPaged'} fieldName={'Nav_Person.Nav_Post.NAME'}
|
||
data={this.state.data} onSelect={onSelectPost} onFilter={({ params }) => {
|
||
params.OrderType = 1
|
||
params.OrgId = this.state.data ? this.state.data.ORG_ID : this.props.login.OrgId
|
||
}} />
|
||
</Form.Item>
|
||
</Col>
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'手机号'}
|
||
{...formItemLayout}
|
||
>
|
||
{getFieldDecorator('PHONE', {
|
||
validateTrigger: 'onBlur',
|
||
initialValue: this.state.data.PHONE,
|
||
rules: [],
|
||
})(<Input maxLength={13} placeholder={'请输入手机号'} />)}
|
||
</Form.Item>
|
||
</Col>
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'身份证号'}
|
||
{...formItemLayout}
|
||
>
|
||
{getFieldDecorator('ID_CARD_SHOW', {
|
||
initialValue: this.state.data.ID_CARD_SHOW,
|
||
rules: [],
|
||
})(<Input maxLength={50} placeholder={'请输入身份证号'} />)}
|
||
</Form.Item>
|
||
</Col>
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'性别'}
|
||
{...formItemLayout}
|
||
>
|
||
{getFieldDecorator('SEX', {
|
||
initialValue: this.state.data.SEX ? this.state.data.SEX.toString() : "0",
|
||
rules: [],
|
||
})(<Select placeholder="性别" >
|
||
<Option value="0">女</Option>
|
||
<Option value="1">男</Option>
|
||
</Select>)}
|
||
</Form.Item>
|
||
</Col>
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'出生日期'}
|
||
{...formItemLayout}
|
||
>
|
||
<DatePicker
|
||
value={moment(this.state.data.BORN_DATE)}
|
||
placeholder={'请输入出生日期'}
|
||
onChange={(value, dateString) => { onChange('BORN_DATE', dateString, 0) }}
|
||
/>
|
||
</Form.Item>
|
||
</Col>
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'入职时间'}
|
||
{...formItemLayout}
|
||
>
|
||
<DatePicker
|
||
value={moment(this.state.data.ENTRYTIME)}
|
||
placeholder={'请输入入职时间'}
|
||
onChange={(value, dateString) => { onChange('ENTRYTIME', dateString, 0) }}
|
||
/>
|
||
</Form.Item>
|
||
</Col>
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'离职时间'}
|
||
{...formItemLayout}
|
||
>
|
||
<DatePicker
|
||
value={moment(this.state.data.DEPARTURETIME ? this.state.data.DEPARTURETIME : '2099-01-01')}
|
||
placeholder={'请输入离职时间'}
|
||
onChange={(value, dateString) => { onChange('DEPARTURETIME', dateString, 0) }}
|
||
/>
|
||
</Form.Item>
|
||
</Col>
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'工龄'}
|
||
{...formItemLayout}
|
||
>
|
||
{getFieldDecorator('WORKINGYEAR', {
|
||
initialValue: this.state.data.WORKINGYEAR,
|
||
rules: [],
|
||
})(<Input placeholder={'请输入工龄'} />)}
|
||
</Form.Item>
|
||
</Col>
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'审核角色'}
|
||
{...formItemLayout}
|
||
>
|
||
<DropDownPagination inputDataApi={'PF/ApprovalRole/OrderPaged'} fieldName={'Nav_ApproveRole.NAME'}
|
||
data={this.state.data} onSelect={onSelectApproveRole} onFilter={({ params }) => {
|
||
params.OrderType = 1
|
||
params.OrgId = this.state.data ? this.state.data.ORG_ID : this.props.login.OrgId
|
||
}} />
|
||
</Form.Item>
|
||
</Col>
|
||
{/* <Col span={8}>
|
||
<Form.Item label={'启用标志'} {...formItemLayout}>
|
||
{getFieldDecorator('ENABLE_STATUS', {
|
||
validateTrigger: 'onBlur',
|
||
initialValue: this.state.data.ENABLE_STATUS ? this.state.data.ENABLE_STATUS.toString() : "0",
|
||
rules: [],
|
||
|
||
})(<Select placeholder="数据类型" >
|
||
<Option value="0">启用</Option>
|
||
<Option value="1">不启用</Option>
|
||
</Select>)}
|
||
|
||
</Form.Item>
|
||
</Col> */}
|
||
{/* style={{display:this.props.login.user?.NAME.indexOf("管理员") === -1 ?"none":"block"}} */}
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'生产单元'}
|
||
{...formItemLayout}
|
||
>
|
||
{/* <CheckboxGroup options={this.props.app.enums.FMProductionUnit.options} value={this.state.data.MineType} onChange={onUnitChange} /> */}
|
||
<MultiSelectPagination api={'FM/Enum/GetEnumsByCode'}
|
||
data={
|
||
{
|
||
navField: 'ID,VALUE,NAME',
|
||
saveField: 'ENUMS_ID,Nav_Enums.VALUE,Nav_Enums.NAME',
|
||
labelField: "Nav_Enums.NAME",
|
||
showField: "NAME",
|
||
filterField: "NAME",
|
||
idField: "USER_ID",
|
||
selectLabelField: "NAME",//不配置则默认取labelField,如果labelField也不配置,默认取NAME字段
|
||
}
|
||
}
|
||
colConfig={{ field: "Nav_ProdutionUnit" }}
|
||
record={this.state.data} onChange={onSelectProduction} onFilter={({ params }) => {
|
||
// extendRule(params, 'CODE', 1, 'BSMineTypeEnum');
|
||
params.OrderType = 1
|
||
params.OrgId = this.state.data ? this.state.data.ORG_ID : this.props.login.OrgId
|
||
// params.Parameter1='BSMineTypeEnum'
|
||
}} />
|
||
</Form.Item>
|
||
</Col>
|
||
<Col span={8}>
|
||
<Form.Item
|
||
label={'顺序'}
|
||
{...formItemLayout}
|
||
>
|
||
{getFieldDecorator('NUM', {
|
||
initialValue: this.state.data.NUM,
|
||
rules: [],
|
||
})(<Input placeholder={'请输入顺序'} />)}
|
||
</Form.Item>
|
||
</Col>
|
||
<Col span={12}>
|
||
<Form.Item
|
||
label={'备注'}
|
||
{...formItemLayout}
|
||
>
|
||
{getFieldDecorator('REMARK', {
|
||
initialValue: this.state.data.REMARK,
|
||
})(<TextArea maxLength={300} rows={4} placeholder={'请输入备注'} />)}
|
||
</Form.Item>
|
||
</Col>
|
||
{/* <Col span={12}>
|
||
<Modal visible={this.state.sopVisible} maskClosable={false} onCancel={this.handleSopCloseModal} footer={false} width={"86%"}>
|
||
<FormPage formCode={'BD119'} data={this.state.sopData} />
|
||
</Modal>
|
||
<Form.Item
|
||
label={'照片'}
|
||
{...formItemLayout}
|
||
>
|
||
<Upload {...uploadSopProps}>
|
||
<Icon type="upload" /> 上传人员照片
|
||
</Upload>
|
||
</Form.Item>
|
||
</Col> */}
|
||
<Col span={12}>
|
||
<Form.Item
|
||
label={'签名'}
|
||
{...formItemLayout}
|
||
>
|
||
<Upload {...uploadSingProps} style={{ backgroundColor: '#f5f5f5' }}>
|
||
<Icon type="upload" /> 上传签名图片
|
||
</Upload>
|
||
|
||
</Form.Item>
|
||
</Col>
|
||
<Col span={12}>
|
||
<Form.Item
|
||
label={'签名图片'}
|
||
{...formItemLayout}
|
||
>
|
||
{
|
||
this.state.SignaturePhoto === '' ?
|
||
<div>暂无签名图片</div> :
|
||
<img width='30%' src={this.state.SignaturePhoto} />
|
||
}
|
||
</Form.Item>
|
||
</Col>
|
||
</Row>
|
||
</Col>
|
||
<Col span={8} style={{ display: ((this.props.login.user?.NAME.indexOf("管理员") === -1 && this.props.login.user.Nav_Department.DEPARTMENT_STATUS != 2) ? "none" : "block") }}>
|
||
<Transfer
|
||
dataSource={this.props.FMBase.roleDatasource}
|
||
titles={['角色', '已选择']}
|
||
targetKeys={this.state.roleTargetKeys}
|
||
onChange={handleRoleChange}
|
||
render={item => item.title}
|
||
style={{ marginTop: 4 }}
|
||
/>
|
||
</Col>
|
||
</Row>
|
||
</Form>
|
||
)
|
||
}
|
||
}
|
||
|
||
export default connect(({ login, FMBase, custom, app }) => ({ login, FMBase, custom, app }))(Form.create()(UserEditPage))
|