From 736a4b462e06a3335cb8235c0211bc8f5547bfd6 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 12 七月 2025 14:47:59 +0800
Subject: [PATCH] 1.来票台账删除功能联调

---
 src/views/personnelManagement/onboarding/components/formDia.vue    |   34 ++++++++++++++++
 src/views/procurementManagement/procurementInvoiceLedger/index.vue |   47 +++++++++++++++++++++--
 src/api/procurementManagement/procurementInvoiceLedger.js          |    8 ++++
 3 files changed, 83 insertions(+), 6 deletions(-)

diff --git a/src/api/procurementManagement/procurementInvoiceLedger.js b/src/api/procurementManagement/procurementInvoiceLedger.js
index ae6a77b..6b05f3f 100644
--- a/src/api/procurementManagement/procurementInvoiceLedger.js
+++ b/src/api/procurementManagement/procurementInvoiceLedger.js
@@ -33,6 +33,14 @@
     data: query,
   });
 }
+// 鍒犻櫎鏉ョエ鍙拌处
+export function delRegistration(query) {
+  return request({
+    url: "/purchase/registration/delRegistration",
+    method: "delete",
+    data: query,
+  });
+}
 // 鍒犻櫎闄勪欢
 export function delCommonFile(query) {
   return request({
diff --git a/src/views/personnelManagement/onboarding/components/formDia.vue b/src/views/personnelManagement/onboarding/components/formDia.vue
index 4a7dd77..d0e76cc 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,6 +119,7 @@
                   format="YYYY-MM-DD"
                   clearable
                   style="width: 100%"
+                  @change="calculateContractTerm"
               />
             </el-form-item>
           </el-col>
@@ -189,6 +191,8 @@
   if (operationType.value === 'edit') {
     getStaffJoinInfo(row.id).then(res => {
       form.value = {...res.data}
+      // 缂栬緫鏃朵篃璁$畻涓�娆″悎鍚屽勾闄�
+      calculateContractTerm();
     })
   }
 }
@@ -211,6 +215,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");
diff --git a/src/views/procurementManagement/procurementInvoiceLedger/index.vue b/src/views/procurementManagement/procurementInvoiceLedger/index.vue
index 007005f..3ac73e5 100644
--- a/src/views/procurementManagement/procurementInvoiceLedger/index.vue
+++ b/src/views/procurementManagement/procurementInvoiceLedger/index.vue
@@ -81,10 +81,18 @@
           <el-button
             type="primary"
             text
-            :icon="EditPen"
             @click="openEdit(row.id)"
+						:disabled="row.issUerId !== userStore.id"
           >
             缂栬緫
+          </el-button>
+          <el-button
+            type="primary"
+            text
+						:disabled="row.issUerId !== userStore.id"
+            @click="handleDelete(row)"
+          >
+            鍒犻櫎
           </el-button>
         </template>
       </PIMTable>
@@ -105,13 +113,17 @@
   EditPen,
 } from "@element-plus/icons-vue";
 import {
-  productRecordPage,
-  productUploadFile,
+	delRegistration,
+	productRecordPage,
+	productUploadFile,
 } from "@/api/procurementManagement/procurementInvoiceLedger.js";
 import { onMounted } from "vue";
 import { ElMessageBox } from "element-plus";
 import UploadModal from "./Modal/UploadModal.vue";
 import EditModal from "./Modal/EditModal.vue";
+import useUserStore from "@/store/modules/user.js";
+import {delInvoiceLedgerByRegProductId} from "@/api/salesManagement/invoiceLedger.js";
+const userStore = useUserStore();
 
 defineOptions({
   name: "鏉ョエ鍙拌处",
@@ -204,17 +216,22 @@
       width: 200,
     },
     {
+      label: "褰曞叆浜�",
+      prop: "issUer",
+      width: 200,
+    },
+    {
       label: "闄勪欢",
       align: "center",
       prop: "commonFiles",
       dataType: "slot",
 			fixed: "right",
       slot: "commonFilesRef",
-      width: 150,
+      width: 120,
     },
     {
       fixed: "right",
-      width: 120,
+      width: 150,
       label: "鎿嶄綔",
       dataType: "slot",
       slot: "operation",
@@ -308,6 +325,26 @@
     getTableData();
   }
 };
+// 鍒犻櫎
+const handleDelete = (row) => {
+	let ids = [];
+	ids.push(row.id);
+	ElMessageBox.confirm("璇ュ紑绁ㄥ彴璐﹀皢琚垹闄�,鏄惁纭鍒犻櫎", {
+		confirmButtonText: "纭",
+		cancelButtonText: "鍙栨秷",
+		type: "warning",
+	})
+		.then(() => {
+			loading.value = true;
+			delRegistration(ids).then((res) => {
+				getTableData();
+			});
+			loading.value = false;
+		})
+		.catch(() => {
+			proxy.$modal.msg("宸插彇娑�");
+		});
+};
 
 onMounted(() => {
   getTableData();

--
Gitblit v1.9.3