| | |
| | | operationType.value === "add" ? "新增入职" : "编辑人员"; |
| | | |
| | | const createEmptyEducation = () => ({ |
| | | degree: "", |
| | | school: "", |
| | | admissionDate: "", |
| | | graduationDate: "", |
| | | education: "", |
| | | schoolName: "", |
| | | enrollTime: "", |
| | | graduateTime: "", |
| | | major: "", |
| | | academicDegree: "", |
| | | degree: "", |
| | | }); |
| | | |
| | | const createEmptyWork = () => ({ |
| | | company: "", |
| | | department: "", |
| | | position: "", |
| | | formerCompany: "", |
| | | formerDept: "", |
| | | formerPosition: "", |
| | | startDate: "", |
| | | endDate: "", |
| | | description: "", |
| | | workDesc: "", |
| | | }); |
| | | |
| | | const createEmptyEmergency = () => ({ |
| | | name: "", |
| | | relation: "", |
| | | phone: "", |
| | | address: "", |
| | | contactName: "", |
| | | contactRelation: "", |
| | | contactPhone: "", |
| | | contactAddress: "", |
| | | }); |
| | | |
| | | const createDefaultForm = () => ({ |
| | |
| | | // 基本信息 |
| | | staffNo: "", |
| | | staffName: "", |
| | | aliasName: "", |
| | | alias: "", |
| | | phone: "", |
| | | sex: "", |
| | | birthDate: "", |
| | |
| | | email: "", |
| | | currentAddress: "", |
| | | // 在职信息 |
| | | jobNo: "", |
| | | staffType: "", |
| | | entryDate: "", |
| | | probationPeriod: undefined, |
| | | regularDate: "", |
| | | contractStartTime: "", |
| | | contractEndTime: "", |
| | | proTerm: undefined, |
| | | positiveDate: "", |
| | | sysDeptId: undefined, |
| | | directLeader: "", |
| | | sysPostId: undefined, |
| | | jobLevel: "", |
| | | basicSalary: undefined, |
| | | // 银行卡信息 |
| | | bankName: "", |
| | | bankCardNo: "", |
| | | // 教育经历 |
| | | educationList: [createEmptyEducation()], |
| | | staffEducationList: [createEmptyEducation()], |
| | | // 工作经历 |
| | | workExperienceList: [createEmptyWork()], |
| | | staffWorkExperienceList: [createEmptyWork()], |
| | | // 紧急联系人 |
| | | emergencyContacts: [createEmptyEmergency()], |
| | | emergencyContact: "", |
| | | emergencyContactPhone: "", |
| | | // 角色 |
| | | roleIds: [], |
| | | staffEmergencyContactList: [createEmptyEmergency()], |
| | | // 角色(单选) |
| | | roleId: undefined, |
| | | // 材料附件(仅前端展示) |
| | | attachments: [], |
| | | }); |
| | |
| | | birthDate: [ |
| | | { required: true, message: "请选择出生日期", trigger: "change" }, |
| | | ], |
| | | jobNo: [{ required: true, message: "请输入工号", trigger: "blur" }], |
| | | staffType: [ |
| | | { required: true, message: "请选择员工类型", trigger: "change" }, |
| | | ], |
| | | entryDate: [ |
| | | contractStartTime: [ |
| | | { required: true, message: "请选择入职日期", trigger: "change" }, |
| | | ], |
| | | contractEndTime: [ |
| | | { required: true, message: "请选择合同结束日期", trigger: "change" }, |
| | | ], |
| | | sysDeptId: [ |
| | | { required: true, message: "请选择部门", trigger: "change" }, |
| | | ], |
| | | roleIds: [ |
| | | { |
| | | required: true, |
| | | type: "array", |
| | | min: 1, |
| | | message: "请至少选择一个角色", |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | roleId: [{ required: true, message: "请选择角色", trigger: "change" }], |
| | | }, |
| | | postOptions: [], |
| | | deptOptions: [], |
| | |
| | | }); |
| | | } |
| | | |
| | | const syncEmergencyToLegacyField = () => { |
| | | const first = form.value.emergencyContacts?.[0]; |
| | | form.value.emergencyContact = first?.name || ""; |
| | | form.value.emergencyContactPhone = first?.phone || ""; |
| | | }; |
| | | |
| | | const openDialog = (type, row) => { |
| | | operationType.value = type; |
| | | dialogFormVisible.value = true; |
| | |
| | | ...form.value, |
| | | ...d, |
| | | }); |
| | | if (!Array.isArray(form.value.educationList) || !form.value.educationList.length) { |
| | | form.value.educationList = [createEmptyEducation()]; |
| | | if ( |
| | | !Array.isArray(form.value.staffEducationList) || |
| | | !form.value.staffEducationList.length |
| | | ) { |
| | | form.value.staffEducationList = [createEmptyEducation()]; |
| | | } |
| | | if ( |
| | | !Array.isArray(form.value.workExperienceList) || |
| | | !form.value.workExperienceList.length |
| | | !Array.isArray(form.value.staffWorkExperienceList) || |
| | | !form.value.staffWorkExperienceList.length |
| | | ) { |
| | | form.value.workExperienceList = [createEmptyWork()]; |
| | | form.value.staffWorkExperienceList = [createEmptyWork()]; |
| | | } |
| | | if ( |
| | | !Array.isArray(form.value.emergencyContacts) || |
| | | !form.value.emergencyContacts.length |
| | | !Array.isArray(form.value.staffEmergencyContactList) || |
| | | !form.value.staffEmergencyContactList.length |
| | | ) { |
| | | form.value.emergencyContacts = [createEmptyEmergency()]; |
| | | form.value.staffEmergencyContactList = [createEmptyEmergency()]; |
| | | } |
| | | if (form.value.sysPostId === 0) { |
| | | form.value.sysPostId = undefined; |
| | |
| | | if (!form.value.sysDeptId) { |
| | | form.value.sysDeptId = undefined; |
| | | } |
| | | syncEmergencyToLegacyField(); |
| | | // 兼容后端可能仍使用 roleIds 数组 |
| | | form.value.roleIds = form.value.roleId ? [form.value.roleId] : []; |
| | | formRef.value?.validate((valid) => { |
| | | if (valid) { |
| | | if (operationType.value === "add") { |