From 7bd582d3fe1cdb02bb17f33e3e6a8fa85089c369 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 26 五月 2026 09:23:49 +0800
Subject: [PATCH] feat:1.采购合同号按照录入日期生成

---
 src/views/procurementManagement/procurementLedger/index.vue |   31 +++++++++++++++++--------------
 src/views/collaborativeApproval/purchaseApproval/index.vue  |   23 ++++++++++++++++++-----
 src/api/procurementManagement/procurementLedger.js          |    3 ++-
 3 files changed, 37 insertions(+), 20 deletions(-)

diff --git a/src/api/procurementManagement/procurementLedger.js b/src/api/procurementManagement/procurementLedger.js
index 5f9df05..49416d2 100644
--- a/src/api/procurementManagement/procurementLedger.js
+++ b/src/api/procurementManagement/procurementLedger.js
@@ -66,10 +66,11 @@
   });
 }
 
-export function createPurchaseNo() {
+export function createPurchaseNo(entryDate) {
   return request({
     url: "/purchase/ledger/createPurchaseNo",
     method: "get",
+    params: { entryDate },
   });
 }
 export function updateApprovalStatus(query) {
diff --git a/src/views/collaborativeApproval/purchaseApproval/index.vue b/src/views/collaborativeApproval/purchaseApproval/index.vue
index b276bec..d39748f 100644
--- a/src/views/collaborativeApproval/purchaseApproval/index.vue
+++ b/src/views/collaborativeApproval/purchaseApproval/index.vue
@@ -278,7 +278,7 @@
     },
     rules: {
       purchaseContractNumber: [
-        { required: true, message: "璇疯緭鍏�", trigger: "blur" },
+        { required: false, message: "璇疯緭鍏�", trigger: "blur" },
       ],
       projectName: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
       supplierId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
@@ -448,9 +448,7 @@
     productData.value = [];
     fileList.value = [];
     if (operationType.value == "add") {
-      createPurchaseNo().then(res => {
-        form.value.purchaseContractNumber = res.data;
-      });
+      form.value.purchaseContractNumber = "";
     }
     userListNoPage().then(res => {
       userList.value = res.data;
@@ -521,7 +519,7 @@
   }
   // 鎻愪氦琛ㄥ崟
   const submitForm = n => {
-    proxy.$refs["formRef"].validate(valid => {
+    proxy.$refs["formRef"].validate(async valid => {
       if (valid) {
         if (productData.value.length > 0) {
           form.value.productData = proxy.HaveJson(productData.value);
@@ -536,6 +534,21 @@
         form.value.tempFileIds = tempFileIds;
         form.value.type = 2;
         form.value.approvalStatus = n;
+
+        // 濡傛灉閲囪喘鍚堝悓鍙蜂负绌猴紝鍒欐牴鎹綍鍏ユ棩鏈熻嚜鍔ㄧ敓鎴�
+        if (!form.value.purchaseContractNumber) {
+          try {
+            const purchaseNoRes = await createPurchaseNo(form.value.entryDate);
+            if (purchaseNoRes?.data) {
+              form.value.purchaseContractNumber = purchaseNoRes.data;
+            }
+          } catch (error) {
+            console.error("鐢熸垚閲囪喘鍚堝悓鍙峰け璐�:", error);
+            proxy.$modal.msgWarning("鐢熸垚閲囪喘鍚堝悓鍙峰け璐�");
+            return;
+          }
+        }
+
         addOrEditPurchase(form.value).then(res => {
           proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
           closeDia();
diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue
index dad6a26..cbd6e23 100644
--- a/src/views/procurementManagement/procurementLedger/index.vue
+++ b/src/views/procurementManagement/procurementLedger/index.vue
@@ -923,7 +923,7 @@
     },
     rules: {
       purchaseContractNumber: [
-        { required: true, message: "璇疯緭鍏�", trigger: "blur" },
+        { required: false, message: "璇疯緭鍏�", trigger: "blur" },
       ],
       projectName: [
         { required: true, message: "璇疯緭鍏ラ」鐩悕绉�", trigger: "blur" },
@@ -1306,18 +1306,7 @@
 
       form.value.entryDate = getCurrentDate();
 
-      if (type === "add") {
-        // 鏂板鏃剁敓鎴愰噰璐悎鍚屽彿
-        try {
-          const purchaseNoRes = await createPurchaseNo();
-          if (purchaseNoRes?.data) {
-            form.value.purchaseContractNumber = purchaseNoRes.data;
-          }
-        } catch (error) {
-          console.error("鐢熸垚閲囪喘鍚堝悓鍙峰け璐�:", error);
-          proxy.$modal.msgWarning("鐢熸垚閲囪喘鍚堝悓鍙峰け璐�");
-        }
-      } else if (type === "edit" && row?.id) {
+      if (type === "edit" && row?.id) {
         // 缂栬緫鏃跺姞杞芥暟鎹�
         currentId.value = row.id;
         try {
@@ -1398,7 +1387,7 @@
 
   // 鎻愪氦琛ㄥ崟
   const submitForm = () => {
-    proxy.$refs["formRef"].validate(valid => {
+    proxy.$refs["formRef"].validate(async valid => {
       if (valid) {
         if (productData.value.length > 0) {
           // 鏂板鏃讹紝闇�瑕佷粠姣忎釜浜у搧瀵硅薄涓垹闄� id 瀛楁
@@ -1428,6 +1417,20 @@
           delete submitData.id;
         }
 
+        // 濡傛灉閲囪喘鍚堝悓鍙蜂负绌猴紝鍒欐牴鎹綍鍏ユ棩鏈熻嚜鍔ㄧ敓鎴�
+        if (!submitData.purchaseContractNumber) {
+          try {
+            const purchaseNoRes = await createPurchaseNo(submitData.entryDate);
+            if (purchaseNoRes?.data) {
+              submitData.purchaseContractNumber = purchaseNoRes.data;
+            }
+          } catch (error) {
+            console.error("鐢熸垚閲囪喘鍚堝悓鍙峰け璐�:", error);
+            proxy.$modal.msgWarning("鐢熸垚閲囪喘鍚堝悓鍙峰け璐�");
+            return;
+          }
+        }
+
         addOrEditPurchase(submitData).then(res => {
           proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
           closeDia();

--
Gitblit v1.9.3