| | |
| | | show-overflow-tooltip |
| | | prop="empNumb" |
| | | label="编号" |
| | | width="80" |
| | | width="100" |
| | | sortable="custom" |
| | | :sort-orders="['ascending', 'descending']" |
| | | /> |
| | |
| | | <el-form |
| | | ref="empBaseInfoForm" |
| | | :model="empBaseInfoForm" |
| | | :rules="rules" |
| | | :rules="isAdd ? addRules : rules" |
| | | label-position="right" |
| | | label-width="120px" |
| | | > |
| | |
| | | depts: [], |
| | | fileList: [], |
| | | rules: { |
| | | archivesNumb: [{ required: true, message: '请输入档案号', trigger: 'blur' }, { |
| | | max: 20, |
| | | message: this.$t('rules.noMoreThan20'), |
| | | trigger: 'blur' |
| | | }], |
| | | archivesNumb: [{ max: 20, message: this.$t('rules.noMoreThan20'), trigger: 'blur' }], |
| | | empName: [{ required: true, message: '请输入姓名', trigger: 'blur' }, |
| | | { min: 2, max: 50, message: this.$t('rules.noMoreThan50'), trigger: 'blur' }], |
| | | empNumb: [{ required: true, message: '请输入员工编号', trigger: 'blur' }, |
| | |
| | | family: [{ max: 128, message: '长度不超过128个字符', trigger: 'blur' }], |
| | | certificateValidity: [{ required: true, message: '请选择身份证有效期', trigger: 'change' }], |
| | | urgencyPhone: [{ max: 30, message: '长度不超过30个字符', trigger: 'blur' }] |
| | | }, |
| | | // 新增模式的简化验证规则(仅验证核心字段) |
| | | addRules: { |
| | | empName: [{ required: true, message: '请输入姓名', trigger: 'blur' }, |
| | | { min: 2, max: 50, message: this.$t('rules.noMoreThan50'), trigger: 'blur' }], |
| | | empNumb: [{ required: true, message: '请输入员工编号', trigger: 'blur' }, |
| | | { min: 2, max: 20, message: this.$t('rules.noMoreThan20'), trigger: 'blur' }], |
| | | certificateNumb: [{ required: true, message: '请输入身份证号', trigger: 'blur' }] |
| | | }, |
| | | gbdaRules: { |
| | | dimissionType: [{ required: true, message: '请选择离职类型', trigger: 'change' }], |
| | |
| | | }, |
| | | computed: { |
| | | // 字典选项计算属性 |
| | | statusOptions() { return this.getDictOptions('PLITICAL') }, |
| | | empTypeOptions() { return this.getDictOptions('EMPTYPE') }, |
| | | nationOptions() { return this.getDictOptions('NATION') }, |
| | | marriageOptions() { return this.getDictOptions('MARRIAGE') }, |
| | | educationOptions() { return this.getDictOptions('EDUCATION') }, |
| | | nativePlaceOptions() { return this.getDictOptions('NATIVEPLACE') }, |
| | | archivesStatusOptions() { return this.getDictOptions('archivesStatus') }, |
| | | insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | empCardStatusOptions() { return this.getDictOptions('empCardStatus') }, |
| | | handbookStatusOptions() { return this.getDictOptions('handbookStatus') }, |
| | | certificateListOptions() { return this.getDictOptions('certificateList') }, |
| | | physicalExamTypeOptions() { return this.getDictOptions('PHYSICALEXAMTYPE') }, |
| | | ecgOptions() { return this.getDictOptions('ECG') }, |
| | | contractStatusOptions() { return this.getDictOptions('CONTRACTSTATUS') }, |
| | | leaveTypeOptions() { return this.getDictOptions('LEAVETYPE') }, |
| | | insuranceGaersOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | applayStatusOptions() { return this.getDictOptions('applayStatus') }, |
| | | reportStatusOptions() { return this.getDictOptions('reportStatus') }, |
| | | hospitalizatioFlagOptions() { return this.getDictOptions('hospitalizatioFlag') }, |
| | | settleStatusOptions() { return this.getDictOptions('settleStatus') }, |
| | | arbitrationTypeOptions() { return this.getDictOptions('ZCTYPE') }, |
| | | changeTypeOptions() { return this.getDictOptions('changeType') }, |
| | | dimissionTypeOptions() { return this.getDictOptions('LZTYPE') }, |
| | | ageStrOptions() { return this.getDictOptions('ageStr') }, |
| | | sexOptions() { return this.getDictOptions('sex') } |
| | | statusOptions() { |
| | | return this.getDictOptions('PLITICAL') |
| | | }, |
| | | empTypeOptions() { |
| | | return this.getDictOptions('EMPTYPE') |
| | | }, |
| | | nationOptions() { |
| | | return this.getDictOptions('NATION') |
| | | }, |
| | | marriageOptions() { |
| | | return this.getDictOptions('MARRIAGE') |
| | | }, |
| | | educationOptions() { |
| | | return this.getDictOptions('EDUCATION') |
| | | }, |
| | | nativePlaceOptions() { |
| | | return this.getDictOptions('NATIVEPLACE') |
| | | }, |
| | | archivesStatusOptions() { |
| | | return this.getDictOptions('archivesStatus') |
| | | }, |
| | | insuranceTypeOptions() { |
| | | return this.getDictOptions('INSURANCETYPE') |
| | | }, |
| | | empCardStatusOptions() { |
| | | return this.getDictOptions('empCardStatus') |
| | | }, |
| | | handbookStatusOptions() { |
| | | return this.getDictOptions('handbookStatus') |
| | | }, |
| | | certificateListOptions() { |
| | | return this.getDictOptions('certificateList') |
| | | }, |
| | | physicalExamTypeOptions() { |
| | | return this.getDictOptions('PHYSICALEXAMTYPE') |
| | | }, |
| | | ecgOptions() { |
| | | return this.getDictOptions('ECG') |
| | | }, |
| | | contractStatusOptions() { |
| | | return this.getDictOptions('CONTRACTSTATUS') |
| | | }, |
| | | leaveTypeOptions() { |
| | | return this.getDictOptions('LEAVETYPE') |
| | | }, |
| | | insuranceGaersOptions() { |
| | | return this.getDictOptions('INSURANCETYPE') |
| | | }, |
| | | applayStatusOptions() { |
| | | return this.getDictOptions('applayStatus') |
| | | }, |
| | | reportStatusOptions() { |
| | | return this.getDictOptions('reportStatus') |
| | | }, |
| | | hospitalizatioFlagOptions() { |
| | | return this.getDictOptions('hospitalizatioFlag') |
| | | }, |
| | | settleStatusOptions() { |
| | | return this.getDictOptions('settleStatus') |
| | | }, |
| | | arbitrationTypeOptions() { |
| | | return this.getDictOptions('ZCTYPE') |
| | | }, |
| | | changeTypeOptions() { |
| | | return this.getDictOptions('changeType') |
| | | }, |
| | | dimissionTypeOptions() { |
| | | return this.getDictOptions('LZTYPE') |
| | | }, |
| | | ageStrOptions() { |
| | | return this.getDictOptions('ageStr') |
| | | }, |
| | | sexOptions() { |
| | | return this.getDictOptions('sex') |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.fetch() |
| | |
| | | this.showXzyg(1) |
| | | }, |
| | | putEmpBase(formName) { |
| | | // 根据新增/编辑模式使用不同的验证规则 |
| | | const validateRules = this.isAdd ? this.addRules : this.rules |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | this.submitEmpInfo() |
| | | this.fetch({ |
| | | ...this.queryParams, |
| | | ...this.sort |
| | | }) |
| | | this.cleanEmpBase() |
| | | this.showXzyg() |
| | | // 刷新、清空、关闭操作已移至 submitEmpInfo 的成功回调中 |
| | | } |
| | | }) |
| | | }, validateRules) |
| | | }, |
| | | putEmpBaseContinue(formName) { |
| | | // 根据新增/编辑模式使用不同的验证规则 |
| | | const validateRules = this.isAdd ? this.addRules : this.rules |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | this.submitEmpInfo() |
| | | this.cleanEmpBase() |
| | | this.fetch({ |
| | | ...this.queryParams, |
| | | ...this.sort |
| | | }) |
| | | // 传入 true 表示保存并继续新增,不关闭对话框 |
| | | this.submitEmpInfo(true) |
| | | } |
| | | }) |
| | | }, validateRules) |
| | | }, |
| | | delEmp() { |
| | | var selection = this.$refs.multipleTable.store.states.selection |
| | |
| | | getDateString() { |
| | | return dateToString(new Date()) |
| | | }, |
| | | submitEmpInfo() { |
| | | submitEmpInfo(continueAdd = false) { |
| | | if (this.isAdd) { |
| | | this.$post('hr/empBaseInfo/addInEmp', { ...this.empBaseInfoForm }).then((r) => { |
| | | this.$message({ |
| | | message: this.$t('tips.addSuccess'), |
| | | type: 'success' |
| | | }) |
| | | // 刷新列表 |
| | | this.fetch({ |
| | | ...this.queryParams, |
| | | ...this.sort |
| | | }) |
| | | // 清空表单 |
| | | this.cleanEmpBase() |
| | | // 如果不是继续新增,则关闭对话框 |
| | | if (!continueAdd) { |
| | | this.showXzyg() |
| | | } |
| | | // 处理员工已存在的情况 |
| | | if (r.data != null) { |
| | | if (r.data.data.empStatus === '0') { |
| | | this.$confirm('该员工已存在,是否修改?', '提示', { |
| | |
| | | remark: '' |
| | | } |
| | | this.dialogShowDkda = true |
| | | // this.$post('hr/empOpenArchives', { ...this.openArchivesForm }).then(() => { |
| | | // this.$message({ |
| | | // message: this.$t('员工档案打开成功'), |
| | | // type: 'success' |
| | | // }) |
| | | // }) |
| | | }) |
| | | } |
| | | } |
| | |
| | | }) |
| | | this.$emit('success') |
| | | this.cleanEmpBase() |
| | | this.fetch({ |
| | | ...this.queryParams, |
| | | ...this.sort |
| | | }) |
| | | this.showXzyg() |
| | | }) |
| | | } |
| | | }, |