From 44177e4d6906a1469efdfd64d652bf05bce5b065 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 22 四月 2026 11:32:05 +0800
Subject: [PATCH] 阳光印刷 1.客户档案数据可从私海流入公海

---
 src/views/personnelManagement/employeeRecord/index.vue |  130 +++++++++++++++++++++++++++---------------
 1 files changed, 83 insertions(+), 47 deletions(-)

diff --git a/src/views/personnelManagement/employeeRecord/index.vue b/src/views/personnelManagement/employeeRecord/index.vue
index 581fdca..c88336a 100644
--- a/src/views/personnelManagement/employeeRecord/index.vue
+++ b/src/views/personnelManagement/employeeRecord/index.vue
@@ -21,7 +21,7 @@
       <div>
         <el-button type="primary" @click="openFormNewOrEditFormDia('add')">鏂板鍏ヨ亴</el-button>
         <el-button @click="handleOut">瀵煎嚭</el-button>
-        <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
+        <!-- <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button> -->
       </div>
     </div>
     <div class="table_list">
@@ -35,10 +35,17 @@
           :tableLoading="tableLoading"
           @pagination="pagination"
           :total="page.total"
+          :rowClassName="rowClassName"
       ></PIMTable>
     </div>
     <show-form-dia ref="formDia" @close="handleQuery"></show-form-dia>
     <new-or-edit-form-dia ref="formDiaNewOrEditFormDia" @close="handleQuery"></new-or-edit-form-dia>
+    <renew-contract
+        v-if="isShowRenewContractModal"
+        v-model:visible="isShowRenewContractModal"
+        :id="id"
+        @completed="handleQuery"
+    />
   </div>
 </template>
 
@@ -48,9 +55,9 @@
 import {ElMessageBox} from "element-plus";
 import {batchDeleteStaffOnJobs, staffOnJobListPage} from "@/api/personnelManagement/staffOnJob.js";
 import dayjs from "dayjs";
-
 const NewOrEditFormDia = defineAsyncComponent(() => import("@/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue"));
 const ShowFormDia = defineAsyncComponent(() => import( "@/views/personnelManagement/employeeRecord/components/Show.vue"));
+const RenewContract = defineAsyncComponent(() => import( "@/views/personnelManagement/employeeRecord/components/RenewContract.vue"));
 
 const data = reactive({
   searchForm: {
@@ -61,6 +68,8 @@
   },
 });
 const { searchForm } = toRefs(data);
+const isShowRenewContractModal = ref(false);
+const id = ref(0);
 const tableColumn = ref([
   {
     label: "鐘舵��",
@@ -94,67 +103,50 @@
     prop: "staffName",
   },
   {
+    label: "鍒悕",
+    prop: "alias",
+  },
+  {
+    label: "鎵嬫満",
+    prop: "phone",
+    width: 150,
+  },
+  {
     label: "鎬у埆",
     prop: "sex",
   },
   {
-    label: "鎴风睄浣忓潃",
-    prop: "nativePlace",
-  },
-  {
-    label: "閮ㄩ棬",
-    prop: "deptName",
-  },
-  {
-    label: "宀椾綅",
-    prop: "postJob",
-  },
-  {
-    label: "鐜颁綇鍧�",
-    prop: "adress",
-    width:200
-  },
-  {
-    label: "绗竴瀛﹀巻",
-    prop: "firstStudy",
-  },
-  {
-    label: "涓撲笟",
-    prop: "profession",
-    width:100
+    label: "鍑虹敓鏃ユ湡",
+    prop: "birthDate",
+    width: 120,
   },
   {
     label: "骞撮緞",
     prop: "age",
   },
   {
-    label: "鑱旂郴鐢佃瘽",
-    prop: "phone",
-    width:150
+    label: "绫嶈疮",
+    prop: "nativePlace",
   },
   {
-    label: "绱ф�ヨ仈绯讳汉",
-    prop: "emergencyContact",
-    width: 120
+    label: "姘戞棌",
+    prop: "nation",
+    width: 100,
   },
   {
-    label: "绱ф�ヨ仈绯讳汉鐢佃瘽",
-    prop: "emergencyContactPhone",
-    width:150
+    label: "濠氬Щ鐘跺喌",
+    prop: "maritalStatus",
+    width: 100,
   },
-  // {
-  //   label: "鍚堝悓骞撮檺",
-  //   prop: "contractTerm",
-  // },
-  // {
-  //   label: "鍚堝悓寮�濮嬫棩鏈�",
-  //   prop: "contractStartTime",
-  //   width: 120
-  // },
   {
-    label: "鍚堝悓缁撴潫鏃ユ湡",
+    label: "鍛樺伐閫氳鍦板潃",
+    prop: "contactAddress",
+    minWidth: 180,
+  },
+  {
+    label:"鍚堝悓鍒版湡鏃堕棿",
     prop: "contractExpireTime",
-    width: 120
+    minWidth: 120,
   },
   {
     dataType: "action",
@@ -168,6 +160,15 @@
         type: "text",
         clickFun: (row) => {
           openFormNewOrEditFormDia("edit", row);
+        },
+      },
+      {
+        name: "缁鍚堝悓",
+        type: "text",
+        showHide: row => row.staffState === 1,
+        clickFun: (row) => {
+          isShowRenewContractModal.value = true;
+          id.value = row.id;
         },
       },
       // {
@@ -201,6 +202,33 @@
   }
   getList();
 };
+
+const rowClassName = ({ row }) => {
+  const dateStr = row.contractExpireTime;
+
+  if (!dateStr) return '';
+
+  const now = new Date();
+  const target = new Date(dateStr.replace(/-/g, '/')); // 鍏煎 Safari
+
+  // 褰掗浂鏃堕棿锛堝叧閿紒锛�
+  now.setHours(0, 0, 0, 0);
+  target.setHours(0, 0, 0, 0);
+
+  const days = Math.ceil((target - now) / (1000 * 60 * 60 * 24));
+
+  console.log('鍓╀綑澶╂暟:', days);
+
+  //  瓒呰繃45澶╋細姝e父
+  if (days > 45) return '';
+
+  //  0~45澶╋細棰勮锛堜綘鍙互鎹㈤鑹诧級
+  if (days >= 0) return 'bg-warning';
+
+  //  宸茶繃鏈�
+  return 'bg-danger';
+};
+
 // 鏌ヨ鍒楄〃
 /** 鎼滅储鎸夐挳鎿嶄綔 */
 const handleQuery = () => {
@@ -285,4 +313,12 @@
 });
 </script>
 
-<style scoped></style>
+<style scoped>
+:deep(.el-table .bg-warning > td.el-table__cell) {
+  background-color: #fdf2e3;
+}
+
+:deep(.el-table .bg-danger > td.el-table__cell) {
+  background-color: #ffe5e5;
+}
+</style>

--
Gitblit v1.9.3