ZN
5 天以前 c62745c757f758527136e62f1d9d8e576e7bd72f
src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue
@@ -67,28 +67,28 @@
  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 = () => ({
@@ -96,7 +96,7 @@
  // 基本信息
  staffNo: "",
  staffName: "",
  aliasName: "",
  alias: "",
  phone: "",
  sex: "",
  birthDate: "",
@@ -112,29 +112,24 @@
  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: [],
});
@@ -149,25 +144,16 @@
    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: [],
@@ -215,12 +201,6 @@
  });
}
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;
@@ -236,20 +216,23 @@
        ...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;
@@ -273,7 +256,8 @@
  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") {