From 8e4840cbd4e026e783c9a9b1b8aefe0f43c67a29 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 09 三月 2026 10:43:42 +0800
Subject: [PATCH] Merge branch 'dev_New' of http://114.132.189.42:9002/r/product-inventory-management into dev_New
---
src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue | 103 +++++++++++++++++++++++++++------------------------
1 files changed, 55 insertions(+), 48 deletions(-)
diff --git a/src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue b/src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue
index e44bdb8..9bc48df 100644
--- a/src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue
+++ b/src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue
@@ -15,7 +15,11 @@
:rules="rules"
label-position="top"
>
- <BasicInfoSection :form="form" :operation-type="operationType" />
+ <BasicInfoSection
+ :form="form"
+ :operation-type="operationType"
+ :role-options="roleOptions"
+ />
<JobInfoSection
:form="form"
:post-options="postOptions"
@@ -39,7 +43,7 @@
} from "vue";
import FormDialog from "@/components/Dialog/FormDialog.vue";
import { findPostOptions } from "@/api/system/post.js";
-import { deptTreeSelect } from "@/api/system/user.js";
+import { deptTreeSelect, getUser } from "@/api/system/user.js";
import {
staffOnJobInfo,
createStaffOnJob,
@@ -63,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 = () => ({
@@ -92,7 +96,7 @@
// 鍩烘湰淇℃伅
staffNo: "",
staffName: "",
- aliasName: "",
+ alias: "",
phone: "",
sex: "",
birthDate: "",
@@ -108,27 +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: "",
+ staffEmergencyContactList: [createEmptyEmergency()],
+ // 瑙掕壊锛堝崟閫夛級
+ roleId: undefined,
// 鏉愭枡闄勪欢锛堜粎鍓嶇灞曠ず锛�
attachments: [],
});
@@ -143,22 +144,23 @@
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" },
],
+ roleId: [{ required: true, message: "璇烽�夋嫨瑙掕壊", trigger: "change" }],
},
postOptions: [],
deptOptions: [],
});
const { form, rules, postOptions, deptOptions } = toRefs(state);
+const roleOptions = ref([]);
const resetForm = () => {
Object.assign(form.value, createDefaultForm());
@@ -181,6 +183,12 @@
});
};
+const fetchRoleOptions = () => {
+ getUser().then((res) => {
+ roleOptions.value = res.roles || [];
+ });
+};
+
function filterDisabledDept(deptList) {
return deptList.filter((dept) => {
if (dept.disabled) {
@@ -193,17 +201,12 @@
});
}
-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;
fetchPostOptions();
fetchDeptOptions();
+ fetchRoleOptions();
resetForm();
if (type === "edit" && row?.id) {
id.value = row.id;
@@ -213,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;
@@ -250,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") {
--
Gitblit v1.9.3