From d16397e58995f4acbd5e8a715ff9186a59258bd7 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 21 一月 2026 10:03:13 +0800
Subject: [PATCH] 湟水峡 1.仓储物流逻辑修改 2.生产订单组件调整

---
 src/views/salesManagement/invoiceRegistration/index.vue |  135 ++++++++++++++++++--------------------------
 1 files changed, 55 insertions(+), 80 deletions(-)

diff --git a/src/views/salesManagement/invoiceRegistration/index.vue b/src/views/salesManagement/invoiceRegistration/index.vue
index e981c6f..d83ab21 100644
--- a/src/views/salesManagement/invoiceRegistration/index.vue
+++ b/src/views/salesManagement/invoiceRegistration/index.vue
@@ -12,21 +12,6 @@
             @change="handleQuery"
           />
         </el-form-item>
-        <el-form-item label="瀹㈡埛鍚堝悓鍙�">
-          <el-input
-            v-model="searchForm.customerContractNo"
-            placeholder="璇疯緭鍏ュ鎴峰悎鍚屽彿"
-            clearable
-          />
-        </el-form-item>
-        <el-form-item label="椤圭洰鍚嶇О">
-          <el-input
-            v-model="searchForm.projectName"
-            placeholder="璇疯緭鍏ラ」鐩悕绉�"
-            clearable
-          />
-        </el-form-item>
-        <br>
         <el-form-item label="浜у搧澶х被锛�">
           <el-input v-model="searchForm.productCategory" placeholder="璇疯緭鍏�" clearable prefix-icon="Search"
                     @change="handleQuery" />
@@ -137,24 +122,12 @@
           width="200"
         />
         <el-table-column
-          label="瀹㈡埛鍚堝悓鍙�"
-          prop="customerContractNo"
-          width="200"
-          show-overflow-tooltip
-        />
-        <el-table-column
           label="瀹㈡埛鍚嶇О"
           prop="customerName"
           show-overflow-tooltip
           width="240"
         />
         <el-table-column label="涓氬姟鍛�" prop="salesman" show-overflow-tooltip width="90"/>
-        <el-table-column
-          label="椤圭洰鍚嶇О"
-          prop="projectName"
-          show-overflow-tooltip
-          width="200"
-        />
         <el-table-column
           label="鍚堝悓閲戦(鍏�)"
           prop="contractAmount"
@@ -208,7 +181,7 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesContractNo">
-              <el-input v-model="form.salesContractNo" disabled></el-input>
+              <el-input v-model="form.salesContractNo" disabled placeholder="澶氬悎鍚屾壒閲忓鐞嗭紙鍏蜂綋鍚堝悓鍙疯浜у搧鍒楄〃锛�"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -226,15 +199,6 @@
             <el-form-item label="涓氬姟鍛橈細" prop="salesman">
               <el-input
                 v-model="form.salesman"
-                placeholder="鑷姩濉厖"
-                disabled
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="椤圭洰鍚嶇О锛�" prop="projectName">
-              <el-input
-                v-model="form.projectName"
                 placeholder="鑷姩濉厖"
                 disabled
               />
@@ -298,6 +262,11 @@
             type="index"
             width="60"
           />
+          <el-table-column label="鎵�灞炲悎鍚�" prop="salesContractNo" width="200">
+            <template #default="{ row }">
+              <el-tag type="primary">{{ row.salesContractNo }}</el-tag>
+            </template>
+          </el-table-column>
           <el-table-column label="浜у搧澶х被" prop="productCategory" />
           <el-table-column
             label="瑙勬牸鍨嬪彿"
@@ -443,8 +412,6 @@
   searchForm: {
     customerName: "",
     status: false,
-    customerContractNo: undefined, // 瀹㈡埛鍚堝悓鍙�
-    projectName: undefined, // 椤圭洰鍚嶇О
     createUer: undefined, // 鐧昏浜�
     issueDate: undefined, // 寮�绁ㄦ棩鏈�
     createTime: undefined, // 褰曞叆鏃ユ湡锛�
@@ -576,6 +543,8 @@
     return;
   }
   
+  // 鍏佽涓嶅悓鐨勯攢鍞悎鍚屽彿鎵归噺澶勭悊锛屾棤闇�妫�鏌ラ噸澶�
+  
   form.value = {};
   productData.value = [];
   
@@ -585,26 +554,32 @@
   );
   
   Promise.all(promises).then(results => {
-    // 鍚堝苟鎵�鏈夊悎鍚岀殑浜у搧鏁版嵁锛屽苟涓烘瘡涓骇鍝佹坊鍔犲搴旂殑鍚堝悓ID
+    // 鍚堝苟鎵�鏈夊悎鍚岀殑浜у搧鏁版嵁锛屽苟涓烘瘡涓骇鍝佹坊鍔犲搴旂殑鍚堝悓淇℃伅
     const allProductData = [];
     results.forEach((result, index) => {
-      const contractId = selectedRows.value[index].id;
+      const contract = selectedRows.value[index];
+      const contractId = contract.id;
       if (result.productData) {
         result.productData.forEach(item => {
           allProductData.push({
             ...item,
-            salesLedgerId: contractId // 鏄庣‘璁剧疆鍚堝悓ID
+            // 淇濈暀鍘熸湁浜у搧 id锛屼笉鍐嶈鐩栵紱棰濆鎸備笂鎵�灞炲悎鍚� id
+            salesLedgerId: contractId,
+            salesContractNo: contract.salesContractNo, // 娣诲姞閿�鍞悎鍚屽彿
+            customerName: contract.customerName, // 娣诲姞瀹㈡埛鍚嶇О
+            customerContractNo: contract.customerContractNo // 娣诲姞瀹㈡埛鍚堝悓鍙�
           });
         });
       }
     });
     
-    // 璁剧疆琛ㄥ崟鏁版嵁锛堜娇鐢ㄧ涓�涓悎鍚岀殑鍩烘湰淇℃伅锛�
+    // 璁剧疆琛ㄥ崟鏁版嵁锛堜娇鐢ㄧ涓�涓悎鍚岀殑鍩烘湰淇℃伅锛岄攢鍞悎鍚屽彿鐣欑┖锛�
     form.value = { ...results[0] };
     form.value.createTime = dayjs().format("YYYY-MM-DD");
     form.value.issueDate = dayjs().format("YYYY-MM-DD");
     form.value.createUer = userStore.nickName;
     form.value.selectedContractIds = selectedRows.value.map(row => row.id); // 瀛樺偍鎵�鏈夐�変腑鐨勫悎鍚孖D
+    form.value.salesContractNo = ""; // 閿�鍞悎鍚屽彿鐣欑┖锛屽洜涓轰細鍦ㄤ骇鍝佽〃鏍间腑鍒嗗埆鏄剧ず
     
     productData.value = allProductData;
     
@@ -616,44 +591,44 @@
 const submitForm = () => {
   proxy.$refs["formRef"].validate((valid) => {
     if (valid) {
-      form.value.productData = proxy.HaveJson(productData.value);
-      form.value.isBatch = selectedRows.value.length > 1; // 璁剧疆鎵归噺鏍囪瘑
-      
-      // 濡傛灉鏄壒閲忔搷浣滐紝闇�瑕佷负姣忎釜鍚堝悓鍒涘缓鍗曠嫭鐨勫紑绁ㄧ櫥璁拌褰�
-      if (selectedRows.value.length > 1) {
-        // 鎵归噺鎻愪氦閫昏緫
-        const promises = selectedRows.value.map(contract => {
-          // 绛涢�夊嚭灞炰簬褰撳墠鍚堝悓鐨勪骇鍝佹暟鎹�
-          const contractProductData = productData.value.filter(item => 
-            item.salesLedgerId === contract.id
-          );
-          
-          const batchForm = {
-            ...form.value,
-            salesLedgerId: contract.id,
-            productData: contractProductData,
-            selectedContractIds: undefined, // 涓嶄紶閫掓壒閲廔D
-            isBatch: true
-          };
-          return invoiceRegistrationSave(batchForm);
-        });
+      // 缁熶竴灏嗘墍鏈夊悎鍚岀殑鏁版嵁鏀惧湪涓�涓暟缁勯噷锛屽崟涓拰鎵归噺閮戒娇鐢ㄦ暟缁勬牸寮�
+      const submitData = selectedRows.value.map(contract => {
+        // 绛涢�夊嚭灞炰簬褰撳墠鍚堝悓鐨勪骇鍝佹暟鎹紙鏍规嵁 salesLedgerId 鍏宠仈鍚堝悓锛�
+        const contractProductData = productData.value.filter(item =>
+          item.salesLedgerId === contract.id
+        );
         
-        Promise.all(promises).then(results => {
-          proxy.$modal.msgSuccess(`鎴愬姛鎻愪氦${results.length}鏉″紑绁ㄧ櫥璁拌褰昤);
-          closeDia();
-          getList();
-        }).catch(error => {
-          proxy.$modal.msgError("閮ㄥ垎鎻愪氦澶辫触锛岃妫�鏌ユ暟鎹�");
-          console.error("鎵归噺鎻愪氦閿欒:", error);
-        });
-      } else {
-        // 鍗曚釜鍚堝悓鎻愪氦閫昏緫
-        invoiceRegistrationSave(form.value).then((res) => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-          getList();
-        });
-      }
+        // 涓烘瘡涓攢鍞悎鍚屽彿鍒涘缓鐙珛鐨勫璞�
+        return {
+          // 鍩虹琛ㄥ崟鏁版嵁
+          issueDate: form.value.issueDate,
+          createTime: form.value.createTime,
+          createUer: form.value.createUer,
+          invoiceNo: form.value.invoiceNo,
+          
+          // 鍚堝悓瀹為檯淇℃伅
+          id: contract.id, // 浣跨敤id浣滀负瀛楁鍚嶏紝鍊间负salesLedgerId
+          salesContractNo: contract.salesContractNo, // 浣跨敤瀹為檯鐨勯攢鍞悎鍚屽彿
+          customerName: contract.customerName, // 浣跨敤瀹為檯鐨勫鎴峰悕绉�
+          customerId: contract.customerId, // 娣诲姞瀹㈡埛ID
+          customerContractNo: contract.customerContractNo, // 浣跨敤瀹為檯鐨勫鎴峰悎鍚屽彿
+          projectName: contract.projectName, // 浣跨敤瀹為檯鐨勯」鐩悕绉�
+          salesman: contract.salesman, // 浣跨敤瀹為檯鐨勪笟鍔″憳
+          
+          // 浜у搧鏁版嵁
+          productData: proxy.HaveJson(contractProductData),
+          
+          // 鎵归噺鏍囪瘑
+          isBatch: selectedRows.value.length > 1
+        };
+      });
+      
+      // 缁熶竴璋冪敤鎺ュ彛锛屼紶閫掓暟缁勬牸寮忕殑鏁版嵁
+      invoiceRegistrationSave(submitData).then(() => {
+        proxy.$modal.msgSuccess(selectedRows.value.length > 1 ? "鎵归噺鏂板鎴愬姛" : "鎻愪氦鎴愬姛");
+        closeDia();
+        getList();
+      });
     }
   });
 };

--
Gitblit v1.9.3