From 4243f25a01f4e79b3f83218dfcbe94d9befee43d Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期一, 20 十月 2025 09:59:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_7004' into dev_7004

---
 src/views/personnelManagement/onboarding/components/formDia.vue |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 56 insertions(+), 3 deletions(-)

diff --git a/src/views/personnelManagement/onboarding/components/formDia.vue b/src/views/personnelManagement/onboarding/components/formDia.vue
index ba9dd6f..7244ab0 100644
--- a/src/views/personnelManagement/onboarding/components/formDia.vue
+++ b/src/views/personnelManagement/onboarding/components/formDia.vue
@@ -90,7 +90,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="鍚堝悓骞撮檺锛�" prop="contractTerm">
-              <el-input-number v-model="form.contractTerm" :precision="0" :step="1" style="width: 100%"/>
+              <el-input-number v-model="form.contractTerm" :precision="0" :step="1" style="width: 100%" :disabled="true"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -105,6 +105,7 @@
                   format="YYYY-MM-DD"
                   clearable
                   style="width: 100%"
+                  @change="calculateContractTerm"
               />
             </el-form-item>
           </el-col>
@@ -118,9 +119,30 @@
                   format="YYYY-MM-DD"
                   clearable
                   style="width: 100%"
+                  @change="calculateContractTerm"
               />
             </el-form-item>
           </el-col>
+        </el-row>
+        <el-row :gutter="30">
+          <el-col :span="12">
+            <el-form-item label="璇曠敤鏈燂紙鏈堬級锛�" prop="probationPeriod">
+              <el-input-number v-model="form.probationPeriod" :precision="0" :step="1" min="0" style="width: 100%"/>
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :span="12">
+            <el-form-item label="鍏ヨ亴鏃ユ湡锛�" prop="entryDate">
+              <el-date-picker
+                  v-model="form.entryDate"
+                  type="date"
+                  placeholder="璇烽�夋嫨鏃ユ湡"
+                  value-format="YYYY-MM-DD"
+                  format="YYYY-MM-DD"
+                  clearable
+                  style="width: 100%"
+              />
+            </el-form-item>
+          </el-col> -->
         </el-row>
       </el-form>
       <template #footer>
@@ -134,10 +156,10 @@
 </template>
 
 <script setup>
-import {ref} from "vue";
+import {ref, reactive, toRefs} from "vue";
 import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
 const { proxy } = getCurrentInstance()
-const emit = defineEmits(['confirm'])
+const emit = defineEmits(['close'])
 
 const dialogFormVisible = ref(false);
 const operationType = ref('')
@@ -160,6 +182,7 @@
     contractStartTime: "",
     contractEndTime: "",
     staffState: "",
+    probationPeriod: 3, // 榛樿璇曠敤鏈�3涓湀
   },
   rules: {
     staffNo: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
@@ -189,6 +212,8 @@
   if (operationType.value === 'edit') {
     getStaffJoinInfo(row.id).then(res => {
       form.value = {...res.data}
+      // 缂栬緫鏃朵篃璁$畻涓�娆″悎鍚屽勾闄�
+      calculateContractTerm();
     })
   }
 }
@@ -211,6 +236,34 @@
     }
   })
 }
+// 璁$畻鍚堝悓骞撮檺
+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 = () => {
   proxy.resetForm("formRef");

--
Gitblit v1.9.3