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/index.vue |  108 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 104 insertions(+), 4 deletions(-)

diff --git a/src/views/personnelManagement/onboarding/index.vue b/src/views/personnelManagement/onboarding/index.vue
index 88cbed1..d993ee6 100644
--- a/src/views/personnelManagement/onboarding/index.vue
+++ b/src/views/personnelManagement/onboarding/index.vue
@@ -11,6 +11,22 @@
           clearable
           :prefix-icon="Search"
         />
+        <span style="margin-left: 10px;"  class="search_title">鍚堝悓寮�濮嬫棩鏈燂細</span>
+        <el-date-picker
+            v-model="searchForm.entryDateStart"
+            type="date"
+            placeholder="璇烽�夋嫨鍚堝悓寮�濮嬫棩鏈�"
+            size="default"
+            @change="(date) => handleDateChange(date,1)"
+        />
+        <span style="margin-left: 10px;" class="search_title">鍚堝悓缁撴潫鏃ユ湡锛�</span>
+        <el-date-picker
+            v-model="searchForm.entryDateEnd"
+            type="date"
+            placeholder="璇烽�夋嫨鍚堝悓缁撴潫鏃ユ湡"
+            size="default"
+            @change="(date) => handleDateChange(date,2)"
+        />
         <el-button type="primary" @click="handleQuery" style="margin-left: 10px"
           >鎼滅储</el-button
         >
@@ -31,7 +47,7 @@
         @selection-change="handleSelectionChange"
         :tableLoading="tableLoading"
         @pagination="pagination"
-        :total="total"
+        :total="page.total"
       ></PIMTable>
     </div>
     <form-dia ref="formDia" @close="handleQuery"></form-dia>
@@ -44,6 +60,7 @@
 import FormDia from "@/views/personnelManagement/onboarding/components/formDia.vue";
 import {staffJoinDel, staffJoinListPage} from "@/api/personnelManagement/onboarding.js";
 import {ElMessageBox} from "element-plus";
+import dayjs from "dayjs";
 
 const data = reactive({
   searchForm: {
@@ -98,6 +115,7 @@
   {
     label: "瀹跺涵浣忓潃",
     prop: "adress",
+    width:200
   },
   {
     label: "绗竴瀛﹀巻",
@@ -106,10 +124,12 @@
   {
     label: "涓撲笟",
     prop: "profession",
+    width:100
   },
   {
     label: "韬唤璇佸彿",
     prop: "identityCard",
+    width:200
   },
   {
     label: "骞撮緞",
@@ -118,6 +138,7 @@
   {
     label: "鑱旂郴鐢佃瘽",
     prop: "phone",
+    width:150
   },
   {
     label: "绱ф�ヨ仈绯讳汉",
@@ -127,10 +148,42 @@
   {
     label: "鑱旂郴鐢佃瘽",
     prop: "emergencyContactPhone",
+    width:150
   },
   {
-    label: "鍚堝悓骞撮檺",
+    label: "璇曠敤鏈燂紙鏈堬級",
+    prop: "probationPeriod",
+    width: 120,
+  },
+  // {
+  //   label: "杞鏃ユ湡",
+  //   prop: "probationEndDate",
+  //   width: 120,
+  //   formatData: (row) => {
+  //     // 淇敼涓轰娇鐢ㄥ悎鍚屽紑濮嬫棩鏈熻绠楄浆姝f棩鏈�
+  //     if (row.contractStartTime && row.probationPeriod) {
+  //       // 璁$畻杞鏃ユ湡锛堝悎鍚屽紑濮嬫棩鏈熷姞涓婅瘯鐢ㄦ湡鏈堟暟锛�
+  //       return dayjs(row.contractStartTime).add(row.probationPeriod, 'month').format('YYYY-MM-DD');
+  //     }
+  //     return '';
+  //   },
+  //   formatType: (row) => {
+  //     // 淇敼涓轰娇鐢ㄥ悎鍚屽紑濮嬫棩鏈熸鏌ユ槸鍚︿复杩戣浆姝o紙7澶╁唴锛�
+  //     if (row.contractStartTime && row.probationPeriod) {
+  //       const probationEndDate = dayjs(row.contractStartTime).add(row.probationPeriod, 'month');
+  //       const daysUntilProbationEnd = probationEndDate.diff(dayjs(), 'day');
+        
+  //       if (daysUntilProbationEnd >= 0 && daysUntilProbationEnd <= 7) {
+  //         return 'warning'; // 浣跨敤璀﹀憡鏍峰紡鏍囪涓磋繎杞鐨勫憳宸�
+  //       }
+  //     }
+  //     return '';
+  //   }
+  // },
+  {
+    label: "鍚堝悓骞撮檺锛堝勾锛�",
     prop: "contractTerm",
+    width: 120,
   },
   {
     label: "鍚堝悓寮�濮嬫棩鏈�",
@@ -164,11 +217,25 @@
 const page = reactive({
   current: 1,
   size: 100,
+  total: 0,
 });
-const total = ref(0);
 const formDia = ref()
 const { proxy } = getCurrentInstance()
 
+const handleDateChange = (value,type) => {
+  searchForm.value.entryDateEnd = null
+  searchForm.value.entryDateStart = null
+  if(type === 1){
+    if (value) {
+      searchForm.value.entryDateStart = dayjs(value).format("YYYY-MM-DD");
+    }
+  }else{
+    if (value) {
+      searchForm.value.entryDateEnd = dayjs(value).format("YYYY-MM-DD");
+    }
+  }
+  getList();
+};
 // 鏌ヨ鍒楄〃
 /** 鎼滅储鎸夐挳鎿嶄綔 */
 const handleQuery = () => {
@@ -185,11 +252,44 @@
   staffJoinListPage({...page, ...searchForm.value, staffState: 1}).then(res => {
     tableLoading.value = false;
     tableData.value = res.data.records
-    total.value = res.data.total;
+    page.total = res.data.total;
+
+    // 妫�鏌ユ槸鍚︽湁涓磋繎杞鐨勫憳宸ュ苟鎻愰啋
+    checkProbationEnding(tableData.value);
   }).catch(err => {
     tableLoading.value = false;
   })
 };
+// 妫�鏌ヤ复杩戣浆姝g殑鍛樺伐骞舵彁閱�
+const checkProbationEnding = (data) => {
+  const probationEndingSoon = [];
+  
+  data.forEach(item => {
+    // 淇敼涓轰娇鐢ㄥ悎鍚屽紑濮嬫棩鏈熸鏌�
+    if (item.contractStartTime && item.probationPeriod) {
+      const probationEndDate = dayjs(item.contractStartTime).add(item.probationPeriod, 'month');
+      const daysUntilProbationEnd = probationEndDate.diff(dayjs(), 'day');
+      
+      if (daysUntilProbationEnd >= 0 && daysUntilProbationEnd <= 7) {
+        probationEndingSoon.push({
+          staffName: item.staffName,
+          probationEndDate: probationEndDate.format('YYYY-MM-DD'),
+          daysLeft: daysUntilProbationEnd
+        });
+      }
+    }
+  });
+  
+  if (probationEndingSoon.length > 0) {
+    let message = '浠ヤ笅鍛樺伐灏嗗湪7澶╁唴杞锛歕n';
+    probationEndingSoon.forEach(item => {
+      message += `${item.staffName}锛�${item.probationEndDate}锛岃繕鏈�${item.daysLeft}澶╋級\n`;
+    });
+    
+    // 鏄剧ず鎻愰啋娑堟伅
+    proxy.$modal.msgInfo(message);
+  }
+};
 // 琛ㄦ牸閫夋嫨鏁版嵁
 const handleSelectionChange = (selection) => {
   selectedRows.value = selection;

--
Gitblit v1.9.3