From a72eca88f85e0a2e1b7383697002817d3c8ae01b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 07 十一月 2025 11:45:03 +0800
Subject: [PATCH] 合同管理加下载合同功能

---
 src/views/personnelManagement/onboarding/components/formDiaXJHT.vue |   97 ++++++++++++++++++++++++++----------------------
 1 files changed, 53 insertions(+), 44 deletions(-)

diff --git a/src/views/personnelManagement/onboarding/components/formDiaXJHT.vue b/src/views/personnelManagement/onboarding/components/formDiaXJHT.vue
index fa0c9e6..71022bf 100644
--- a/src/views/personnelManagement/onboarding/components/formDiaXJHT.vue
+++ b/src/views/personnelManagement/onboarding/components/formDiaXJHT.vue
@@ -59,6 +59,11 @@
           </el-col>
         </el-row>
         <el-row :gutter="30">
+					<el-col :span="12">
+						<el-form-item label="韬唤璇佸彿锛�" prop="identityCard">
+							<el-input v-model="form.identityCard" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙风爜" clearable maxlength="18" />
+						</el-form-item>
+					</el-col>
           <el-col :span="12">
             <el-form-item label="骞撮緞锛�" prop="age">
               <el-input-number v-model="form.age" :precision="0" :step="1" style="width: 100%"/>
@@ -84,9 +89,9 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="鍚堝悓绛捐鏃ユ湡锛�" prop="trialStartDate">
+            <el-form-item label="鍚堝悓绛捐鏃ユ湡锛�" prop="signDate">
               <el-date-picker
-                  v-model="form.trialStartDate"
+                  v-model="form.signDate"
                   type="date"
                   placeholder="璇烽�夋嫨鏃ユ湡"
                   value-format="YYYY-MM-DD"
@@ -116,9 +121,9 @@
         </el-row>
         <el-row :gutter="30" v-if="showProbationDates">
           <el-col :span="12">
-            <el-form-item label="璇曠敤鏈熷紑濮嬫棩鏈燂細" prop="signDate">
+            <el-form-item label="璇曠敤鏈熷紑濮嬫棩鏈燂細" prop="trialStartDate">
               <el-date-picker
-                  v-model="form.signDate"
+                  v-model="form.trialStartDate"
                   type="date"
                   placeholder="璇烽�夋嫨鏃ユ湡"
                   value-format="YYYY-MM-DD"
@@ -142,13 +147,13 @@
             </el-form-item>
           </el-col>
         </el-row>
-<!--        <el-row :gutter="30">-->
-<!--          <el-col :span="12">-->
-<!--            <el-form-item label="鍚堝悓骞撮檺锛�" prop="contractTerm">-->
-<!--              <el-input-number v-model="form.contractTerm" :precision="0" :step="1" style="width: 100%" :disabled="true"/>-->
-<!--            </el-form-item>-->
-<!--          </el-col>-->
-<!--        </el-row>-->
+        <el-row :gutter="30">
+          <el-col :span="12">
+            <el-form-item label="鍚堝悓骞撮檺锛�" prop="contractTerm">
+              <el-input-number v-model="form.contractTerm" :precision="0" :step="1" style="width: 100%" :disabled="true"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="鍚堝悓寮�濮嬫棩鏈燂細" prop="contractStartTime">
@@ -160,6 +165,7 @@
                   format="YYYY-MM-DD"
                   clearable
                   style="width: 100%"
+									@change="calculateContractTerm"
               />
             </el-form-item>
           </el-col>
@@ -173,6 +179,7 @@
                   format="YYYY-MM-DD"
                   clearable
                   style="width: 100%"
+									@change="calculateContractTerm"
               />
             </el-form-item>
           </el-col>
@@ -234,6 +241,7 @@
     staffNo: "",
     staffName: "",
     sex: "",
+    identityCard: "",
     nativePlace: "",
     postJob: "",
     adress: "",
@@ -244,12 +252,12 @@
     emergencyContact: "",
     emergencyContactPhone: "",
     dateSelect: "",
-    signDate: "",
+		trialStartDate: "",
     trialEndDate: "",
     proSalary: null,
-    trialStartDate: "",
+    signDate: "",
     salarySelect: "",
-    // contractTerm: 0,
+    contractTerm: 0,
     contractStartTime: "",
     contractEndTime: "",
     staffState: "",
@@ -258,6 +266,7 @@
     staffNo: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
     staffName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     sex: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+    identityCard: [{ required: true, message: "璇疯緭鍏ヨ韩浠借瘉鍙风爜", trigger: "blur" }],
     nativePlace: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     postJob: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     adress: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
@@ -268,11 +277,11 @@
     emergencyContact: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
 		remark: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     dateSelect: [{ required: true, message: "璇烽�夋嫨鍔冲姩鍚堝悓鏈熼檺", trigger: "change" }],
-    signDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+		trialStartDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
     trialEndDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-    trialStartDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+    signDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
     salarySelect: [{ required: true, message: "璇烽�夋嫨宸ヨ祫鎶ラ叕鏂瑰紡", trigger: "change" }],
-    // contractTerm: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+    contractTerm: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     contractStartTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     contractEndTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
   },
@@ -302,7 +311,7 @@
     getStaffJoinInfo(row.id).then(res => {
       form.value = {...res.data}
       // 缂栬緫鏃朵篃璁$畻涓�娆″悎鍚屽勾闄�
-      // calculateContractTerm();
+      calculateContractTerm();
     })
   }
 }
@@ -326,32 +335,32 @@
   })
 }
 // 璁$畻鍚堝悓骞撮檺
-// const calculateContractTerm = () => {
-//   if (form.value.contractStartTime && form.value.contractEndTime) {
-//     const startDate = new Date(form.value.contractStartTime);
-//     const endDate = new Date(form.value.contractEndTime);
-//
-//     if (endDate > startDate) {
-//       // 璁$畻骞翠唤宸�
-//       const yearDiff = endDate.getFullYear() - startDate.getFullYear();
-//       const monthDiff = endDate.getMonth() - startDate.getMonth();
-//       const dayDiff = endDate.getDate() - startDate.getDate();
-//
-//       let years = yearDiff;
-//
-//       // 濡傛灉缁撴潫鏃ユ湡鐨勬湀鏃ュ皬浜庡紑濮嬫棩鏈熺殑鏈堟棩锛屽垯鍑忓幓1骞�
-//       if (monthDiff < 0 || (monthDiff === 0 && dayDiff < 0)) {
-//         years = yearDiff - 1;
-//       }
-//
-//       form.value.contractTerm = Math.max(0, years);
-//     } else {
-//       form.value.contractTerm = 0;
-//     }
-//   } else {
-//     form.value.contractTerm = 0;
-//   }
-// };
+const calculateContractTerm = () => {
+  if (form.value.contractStartTime && form.value.contractEndTime) {
+    const startDate = new Date(form.value.contractStartTime);
+    const endDate = new Date(form.value.contractEndTime);
+
+    if (endDate > startDate) {
+      // 璁$畻骞翠唤宸�
+      const yearDiff = endDate.getFullYear() - startDate.getFullYear();
+      const monthDiff = endDate.getMonth() - startDate.getMonth();
+      const dayDiff = endDate.getDate() - startDate.getDate();
+
+      let years = yearDiff;
+
+      // 濡傛灉缁撴潫鏃ユ湡鐨勬湀鏃ュ皬浜庡紑濮嬫棩鏈熺殑鏈堟棩锛屽垯鍑忓幓1骞�
+      if (monthDiff < 0 || (monthDiff === 0 && dayDiff < 0)) {
+        years = yearDiff - 1;
+      }
+
+      form.value.contractTerm = Math.max(0, years);
+    } else {
+      form.value.contractTerm = 0;
+    }
+  } else {
+    form.value.contractTerm = 0;
+  }
+};
 
 // 鍏抽棴寮规
 const closeDia = () => {

--
Gitblit v1.9.3