mh_jy_safe_web/src/components/CustomPages/FM/UserEditPage.js

878 lines
29 KiB
JavaScript
Raw Normal View History

2025-08-25 10:08:30 +08:00
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.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={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))