|
@@ -6,10 +6,11 @@ import ProForm, {
|
|
|
ProFormRadio,
|
|
|
ProFormDigit, ProFormSelect
|
|
|
} from "@ant-design/pro-form";
|
|
|
-import {Cascader, Form, message} from "antd";
|
|
|
+import {Input, Cascader, Form, message} from "antd";
|
|
|
import {getAddressSelect,getNativePlace} from "@/utils/tools";
|
|
|
-import {addEmployees} from '../services/API';
|
|
|
-import {addressList,addressList1} from "@/utils/dataDic";
|
|
|
+import {addEmployees,checkEmployeeId,checkDoorId,updateEmployees} from '../services/API';
|
|
|
+
|
|
|
+const { Search } = Input;
|
|
|
|
|
|
class NewEmployees extends Component{
|
|
|
constructor(props) {
|
|
@@ -17,7 +18,12 @@ class NewEmployees extends Component{
|
|
|
this.state={
|
|
|
addressSelect:[],
|
|
|
nativePlaceSelect:[],
|
|
|
+ verifyIdLoading: false,
|
|
|
+ doorIdLoading: false
|
|
|
}
|
|
|
+ this.verifyId = this.verifyId.bind(this);
|
|
|
+ this.verifyDoor = this.verifyDoor.bind(this);
|
|
|
+ this.updateEmployees = this.updateEmployees.bind(this);
|
|
|
}
|
|
|
|
|
|
addEmployees= async (value)=>{
|
|
@@ -52,6 +58,45 @@ class NewEmployees extends Component{
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ updateEmployees=async (value)=>{
|
|
|
+ message.loading({content:'修改中...',key:'updateEmployees'});
|
|
|
+ // 户籍地址
|
|
|
+ value.residenceProvince = value.address ? value.address[0] || undefined : undefined;
|
|
|
+ value.residenceCity = value.address ? value.address[1] || undefined : undefined;
|
|
|
+ value.residenceArea = value.address ? value.address[2] || undefined : undefined;
|
|
|
+ // 现住地址
|
|
|
+ value.nowProvince = value.userNowAddress ? value.userNowAddress[0] || undefined : undefined;
|
|
|
+ value.nowCity = value.userNowAddress ? value.userNowAddress[1] || undefined : undefined;
|
|
|
+ value.nowArea = value.userNowAddress ? value.userNowAddress[2] || undefined : undefined;
|
|
|
+ // 籍贯
|
|
|
+ value.nativePlaceProvince = value.nativePlace ? value.nativePlace[0] || undefined : undefined;
|
|
|
+ value.nativePlaceCity = value.nativePlace ? value.nativePlace[1] || undefined : undefined;
|
|
|
+ // 性别
|
|
|
+ value.sex = value.sex === '男' ? 0 : value.sex === '女' ? 1 : undefined;
|
|
|
+ // 婚否
|
|
|
+ value.marriage = value.marriage === '未婚' ? 0 : value.marriage === '已婚' ? 1 : value.marriage === '离异' ? 2 : undefined;
|
|
|
+
|
|
|
+ value.id = this.props.userInfor.id;
|
|
|
+
|
|
|
+ delete value.address;
|
|
|
+ delete value.userNowAddress;
|
|
|
+ delete value.nativePlace;
|
|
|
+ try {
|
|
|
+ const msg = await updateEmployees(value);
|
|
|
+ if(msg.error.length === 0){
|
|
|
+ message.success({content:'修改成功',key:'updateEmployees',duration:2.5});
|
|
|
+ this.props.formRef.current.reload();
|
|
|
+ this.props.onCancel();
|
|
|
+ this.props.onUpdate();
|
|
|
+ }else{
|
|
|
+ message.error({content:msg.error[0].message,key:'updateEmployees',duration:2.5})
|
|
|
+ }
|
|
|
+ } catch (e){
|
|
|
+ console.log(e)
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
setAddressList = async () => {
|
|
|
let addressSelect = await getAddressSelect();
|
|
|
addressSelect.unshift({
|
|
@@ -65,8 +110,80 @@ class NewEmployees extends Component{
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ verifyId = async () => {
|
|
|
+ let employeeId = this.formRef.current.getFieldsValue(['employeeId']).employeeId;
|
|
|
+ if(!employeeId){
|
|
|
+ message.warning('员工编号不能为空');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ message.loading({content:'检验中...',key:'verifyId'});
|
|
|
+ this.setState({
|
|
|
+ verifyIdLoading:true,
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ const msg = await checkEmployeeId(employeeId,this.props.userInfor ? this.props.userInfor.id : undefined);
|
|
|
+ if(msg.error.length === 0){
|
|
|
+ message.success({content:'此编号未被占用',key:'verifyId',duration:2.5});
|
|
|
+ }else{
|
|
|
+ message.error({content:msg.error[0].message,key:'verifyId',duration:2.5})
|
|
|
+ }
|
|
|
+ }catch (error){
|
|
|
+ console.log(error)
|
|
|
+ }
|
|
|
+ this.setState({
|
|
|
+ verifyIdLoading:false,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ verifyDoor = async () => {
|
|
|
+ let doorId = this.formRef.current.getFieldsValue(['doorId']).doorId;
|
|
|
+ if(!doorId){
|
|
|
+ message.warning('门禁编号不能为空');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ message.loading({content:'检验中...',key:'verifyDoor'});
|
|
|
+ this.setState({
|
|
|
+ doorIdLoading:true,
|
|
|
+ })
|
|
|
+ try {
|
|
|
+ const msg = await checkDoorId(doorId,this.props.userInfor ? this.props.userInfor.id : undefined);
|
|
|
+ if(msg.error.length === 0){
|
|
|
+ message.success({content:'此编号未被占用',key:'verifyDoor',duration:2.5});
|
|
|
+ }else{
|
|
|
+ message.error({content:msg.error[0].message,key:'verifyDoor',duration:2.5})
|
|
|
+ }
|
|
|
+ }catch (error){
|
|
|
+ console.log(error)
|
|
|
+ }
|
|
|
+ this.setState({
|
|
|
+ doorIdLoading:false,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
componentDidMount() {
|
|
|
this.setAddressList();
|
|
|
+ if(this.props.userInfor){
|
|
|
+ let data = this.props.userInfor;
|
|
|
+ this.formRef.current.setFieldsValue({
|
|
|
+ employeeId: data.employeeId,
|
|
|
+ doorId: data.doorId,
|
|
|
+ name: data.name,
|
|
|
+ birthdays: data.birthdays,
|
|
|
+ idCard: data.idCard,
|
|
|
+ sex: data.sex === 0 ? '男' : '女',
|
|
|
+ address: [data.residenceProvince,data.residenceCity,data.residenceArea],
|
|
|
+ nativePlace: [data.nativePlaceProvince,data.nativePlaceCity],
|
|
|
+ residenceAddress: data.residenceAddress,
|
|
|
+ userNowAddress: [data.nowProvince,data.nowCity,data.nowArea],
|
|
|
+ nowAddress: data.nowAddress,
|
|
|
+ nation: data.nation,
|
|
|
+ certificationAuthority: data.certificationAuthority,
|
|
|
+ marriage: data.marriage === 0 ? '未婚' : data.marriage === 1 ? '已婚' : data.marriage === 2 ? '离异' : undefined,
|
|
|
+ son: data.son,
|
|
|
+ girl: data.girl,
|
|
|
+ politicalOutlook: data.politicalOutlook
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
formRef = React.createRef();
|
|
@@ -77,18 +194,17 @@ class NewEmployees extends Component{
|
|
|
formRef={this.formRef}
|
|
|
visible={this.props.visible}
|
|
|
preserve={false}
|
|
|
- title='新增人事档案'
|
|
|
+ title={this.props.userInfor ? '修改人事档案' : '新增人事档案'}
|
|
|
modalProps={{
|
|
|
destroyOnClose:true,
|
|
|
onCancel: (e) => {e.stopPropagation();this.props.onCancel();},
|
|
|
}}
|
|
|
- onFinish={this.addEmployees}
|
|
|
+ onFinish={this.props.userInfor ? this.updateEmployees : this.addEmployees}
|
|
|
>
|
|
|
<ProForm.Group>
|
|
|
- <ProFormText
|
|
|
- width="m"
|
|
|
- placeholder="请输入员工编号"
|
|
|
+ <Form.Item
|
|
|
name="employeeId"
|
|
|
+ width="m"
|
|
|
rules={[
|
|
|
{
|
|
|
required:true,
|
|
@@ -99,11 +215,17 @@ class NewEmployees extends Component{
|
|
|
message: '员工编号不能包含中文',
|
|
|
}
|
|
|
]}
|
|
|
- label="员工编号"/>
|
|
|
- <ProFormText
|
|
|
- width="m"
|
|
|
- placeholder="请输入门禁编号"
|
|
|
+ label="员工编号">
|
|
|
+ <Search
|
|
|
+ loading={this.state.verifyIdLoading}
|
|
|
+ style={{width:328}}
|
|
|
+ placeholder="请输入员工编号"
|
|
|
+ onSearch={this.verifyId}
|
|
|
+ enterButton="验证重复"/>
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item
|
|
|
name="doorId"
|
|
|
+ width="m"
|
|
|
rules={[
|
|
|
{
|
|
|
required:true,
|
|
@@ -114,7 +236,14 @@ class NewEmployees extends Component{
|
|
|
message: '门禁编号不能包含中文',
|
|
|
}
|
|
|
]}
|
|
|
- label="门禁编号"/>
|
|
|
+ label="门禁编号">
|
|
|
+ <Search
|
|
|
+ loading={this.state.doorIdLoading}
|
|
|
+ style={{width:328}}
|
|
|
+ placeholder="请输入门禁编号"
|
|
|
+ onSearch={this.verifyDoor}
|
|
|
+ enterButton="验证重复"/>
|
|
|
+ </Form.Item>
|
|
|
</ProForm.Group>
|
|
|
<ProForm.Group>
|
|
|
<ProFormText
|