From ab264123941cd3d345687af92aab2a9e04968960 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 27 五月 2026 14:21:35 +0800
Subject: [PATCH] Merge branch 'dev_NEW_pro' into dev_宁夏_英泽防锈

---
 src/views/collaborativeApproval/purchaseApproval/index.vue |   35 ++++++++++++++++++++++-------------
 1 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/src/views/collaborativeApproval/purchaseApproval/index.vue b/src/views/collaborativeApproval/purchaseApproval/index.vue
index fe90686..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();
@@ -654,14 +667,10 @@
       return;
     }
     if (operationType.value === "add") {
-      productSelectedRows.value.forEach(selectedRow => {
-        const index = productData.value.findIndex(
-          product => product.id === selectedRow.id
-        );
-        if (index !== -1) {
-          productData.value.splice(index, 1);
-        }
-      });
+      productData.value = productData.value.filter(
+        item => !productSelectedRows.value.includes(item)
+      );
+      productSelectedRows.value = [];
     } else {
       let ids = [];
       if (productSelectedRows.value.length > 0) {

--
Gitblit v1.9.3