From 9ea5ff67655241271bdf04bb50ca3a8d60c4e22a Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 11 八月 2026 15:07:02 +0800
Subject: [PATCH] fix: 用河南鹤壁代码覆盖山西长治

---
 src/views/salesManagement/returnOrder/components/formDia.vue |  153 +++++++++++---------------------------------------
 1 files changed, 35 insertions(+), 118 deletions(-)

diff --git a/src/views/salesManagement/returnOrder/components/formDia.vue b/src/views/salesManagement/returnOrder/components/formDia.vue
index 4fc0859..6a6d756 100644
--- a/src/views/salesManagement/returnOrder/components/formDia.vue
+++ b/src/views/salesManagement/returnOrder/components/formDia.vue
@@ -69,31 +69,6 @@
               </el-form-item>
             </el-col>
             <el-col :span="4">
-              <el-form-item label="鍙戣揣绫诲瀷锛�" prop="shippingType">
-                <el-select v-model="form.shippingType" placeholder="璇烽�夋嫨鍙戣揣绫诲瀷" @change="handleShippingTypeChange">
-                  <el-option label="璐ц溅" :value="1" />
-                  <el-option label="蹇��" :value="2" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="4" v-if="form.shippingType === 1">
-              <el-form-item label="鍙戣揣杞︾墝鍙凤細" prop="truckPlateNo">
-                <el-input v-model="form.truckPlateNo" placeholder="璇疯緭鍏ュ彂璐ц溅鐗屽彿" />
-              </el-form-item>
-            </el-col>
-            <template v-else-if="form.shippingType === 2">
-              <el-col :span="4">
-                <el-form-item label="蹇�掑叕鍙革細" prop="expressCompany">
-                  <el-input v-model="form.expressCompany" placeholder="璇疯緭鍏ュ揩閫掑叕鍙�" />
-                </el-form-item>
-              </el-col>
-              <el-col :span="4">
-                <el-form-item label="蹇�掑崟鍙凤細" prop="expressNo">
-                  <el-input v-model="form.expressNo" placeholder="璇疯緭鍏ュ揩閫掑崟鍙�" />
-                </el-form-item>
-              </el-col>
-            </template>
-            <el-col :span="4">
               <el-form-item label="閫�娆炬�婚锛�" prop="refundAmount">
                 <el-input v-model="form.refundAmount" disabled placeholder="鑷姩璁$畻" />
               </el-form-item>
@@ -107,29 +82,32 @@
             <el-button type="primary" @click="openProductSelection" :disabled="!form.shippingId">娣诲姞浜у搧</el-button>
           </div>
           <PIMTable :isShowPagination="false" rowKey="id" :column="tableColumn" :tableData="tableData">
+            <template #totalReturnNum="{ row }">
+              {{ calcAlreadyReturned(row) }}
+            </template>
             <template #returnQuantity="{ row }">
-              <el-input
-                v-model="row.returnQuantity"
-                style="width:100px"
-                placeholder="璇疯緭鍏�"
+              <el-input 
+                v-model="row.returnQuantity" 
+                style="width:100px" 
+                placeholder="璇疯緭鍏�" 
                 type="number"
                 @input="(val) => handleReturnQuantityChange(val, row)"
               />
             </template>
             <template #price="{ row }">
-              <el-input
-                v-model="row.price"
-                style="width:100px"
-                placeholder="璇疯緭鍏�"
+              <el-input 
+                v-model="row.price" 
+                style="width:100px" 
+                placeholder="璇疯緭鍏�" 
                 type="number"
                 @input="(val) => handlePriceChange(val, row)"
               />
             </template>
             <template #amount="{ row }">
-              <el-input
-                v-model="row.amount"
-                style="width:100px"
-                placeholder="鑷姩璁$畻"
+              <el-input 
+                v-model="row.amount" 
+                style="width:100px" 
+                placeholder="鑷姩璁$畻" 
                 type="number"
                 disabled
               />
@@ -141,10 +119,10 @@
               </el-select>
             </template>
             <template #remark="{ row }">
-              <el-input
-                v-model="row.remark"
-                style="width:130px"
-                placeholder="璇疯緭鍏�"
+              <el-input 
+                v-model="row.remark" 
+                style="width:130px" 
+                placeholder="璇疯緭鍏�" 
               />
             </template>
             <template #action="{ index }">
@@ -162,9 +140,9 @@
     </el-dialog>
 
     <el-dialog v-model="productSelectionVisible" title="閫夋嫨浜у搧" width="70%" append-to-body>
-      <el-table
-        :data="availableProducts"
-        style="width: 100%"
+      <el-table 
+        :data="availableProducts" 
+        style="width: 100%" 
         @selection-change="handleSelectionChange"
         ref="productTableRef"
         row-key="id"
@@ -176,9 +154,11 @@
         <el-table-column align="center" prop="specificationModel" label="瑙勬牸鍨嬪彿" />
         <el-table-column align="center" prop="unit" label="鍗曚綅" />
         <el-table-column align="center" prop="stockOutNum" label="鎬绘暟閲�" />
-        <el-table-column align="center" label="宸查��璐ф暟閲�" prop="totalReturnNum"></el-table-column>
         <el-table-column align="center" prop="unQuantity" label="鏈��璐ф暟閲�" />
-        <el-table-column align="center" prop="pendingReturnNum" label="寰呭鐞嗛��璐ф暟閲�" />
+        <el-table-column align="center" label="宸查��璐ф暟閲�">
+          <template #default="{ row }">{{ calcAlreadyReturned(row) }}</template>
+        </el-table-column>
+
       </el-table>
       <template #footer>
         <div class="dialog-footer">
@@ -211,10 +191,6 @@
     returnNo: "",
     customerId: "",
     shippingId: "",
-    shippingType: "",
-    truckPlateNo: "",
-    expressCompany: "",
-    expressNo: "",
     projectId: "",
     maker: "",
     makeTime: "",
@@ -232,7 +208,6 @@
     }],
     customerId: [{ required: true, message: "璇烽�夋嫨瀹㈡埛", trigger: "change" }],
     shippingId: [{ required: true, message: "璇烽�夋嫨鍏宠仈鍑哄簱鍗曞彿", trigger: "change" }],
-    shippingType: [{ required: true, message: "璇烽�夋嫨鍙戣揣绫诲瀷", trigger: "change" }],
   }
 });
 const { form, rules } = toRefs(data);
@@ -251,8 +226,7 @@
   {align: "center", label: "瑙勬牸鍨嬪彿", prop: "specificationModel" },
   {align: "center", label: "鍗曚綅", prop: "unit", width: 80 },
   {align: "center", label: "鎬绘暟閲�", prop: "stockOutNum", width: 120 },
-  {align: "center", label: "宸查��璐ф暟閲�", prop: "totalReturnNum", width: 120 },
-  {align: "center", label: "寰呭鐞嗛��璐ф暟閲�", prop: "pendingReturnNum", width: 120 },
+  {align: "center", label: "宸查��璐ф暟閲�", prop: "totalReturnNum", width: 120, dataType: "slot", slot: "totalReturnNum" },
   {align: "center", label: "鏈��璐ф暟閲�", prop: "unQuantity", width: 120 },
   {align: "center", label: "閫�璐ф暟閲�", prop: "returnQuantity", dataType: "slot", slot: "returnQuantity", width: 120 },
   {align: "center", label: "閫�璐т骇鍝佸崟浠�", prop: "price", dataType: "slot", slot: "price", width: 120 },
@@ -521,10 +495,6 @@
       returnNo: "",
       customerId: "",
       shippingId: "",
-      shippingType: "",
-      truckPlateNo: "",
-      expressCompany: "",
-      expressNo: "",
       projectId: "",
       maker: "",
       makeTime: "",
@@ -541,22 +511,6 @@
 const submitForm = () => {
   proxy.$refs["formRef"].validate(valid => {
     if (!valid) return;
-    if (!tableData.value || tableData.value.length === 0) {
-      proxy.$modal.msgWarning("璇疯嚦灏戞坊鍔犱竴涓��璐т骇鍝�");
-      return;
-    }
-    for (let i = 0; i < tableData.value.length; i++) {
-      const row = tableData.value[i];
-      const qty = Number(row.num ?? row.returnQuantity ?? 0);
-      if (!qty || qty <= 0) {
-        proxy.$modal.msgWarning(`绗�${i + 1}琛岄��璐ф暟閲忓繀椤诲ぇ浜�0`);
-        return;
-      }
-      if (row.price === "" || row.price === null || row.price === undefined || Number(row.price) < 0) {
-        proxy.$modal.msgWarning(`绗�${i + 1}琛岄��璐у崟浠蜂笉鑳戒负璐熸暟`);
-        return;
-      }
-    }
     const returnSaleProducts = (tableData.value || []).map(el => ({
       stockOutRecordId: el.returnSaleLedgerProductId ?? el.id,
       productModelId: el.productModelId,
@@ -571,11 +525,6 @@
     const payload = { ...form.value, returnSaleProducts };
     delete payload.returnNoCheckbox;
     if (operationType.value === "add" && form.value.returnNoCheckbox) delete payload.returnNo;
-    if (payload.shippingType !== 1) payload.truckPlateNo = "";
-    if (payload.shippingType !== 2) {
-      payload.expressCompany = "";
-      payload.expressNo = "";
-    }
     if (operationType.value === "add") {
       returnManagementAdd(payload).then(() => {
         proxy.$modal.msgSuccess("鏂板鎴愬姛");
@@ -594,22 +543,6 @@
   proxy.resetForm("formRef");
   dialogFormVisible.value = false;
   emit('close');
-  data.form = {
-        returnNoCheckbox: true,
-        returnNo: "",
-        customerId: "",
-        shippingId: "",
-        shippingType: "",
-        truckPlateNo: "",
-        expressCompany: "",
-        expressNo: "",
-        projectId: "",
-        maker: "",
-        makeTime: "",
-        status: 0,
-        returnReason: "",
-        refundAmount: "",
-  }
 };
 
 const initCustomers = async () => {
@@ -646,26 +579,13 @@
   formRef.value?.validateField('returnNo');
 };
 
-const handleShippingTypeChange = (val) => {
-  if (val === 1) {
-    form.value.expressCompany = "";
-    form.value.expressNo = "";
-  } else if (val === 2) {
-    form.value.truckPlateNo = "";
-  } else {
-    form.value.truckPlateNo = "";
-    form.value.expressCompany = "";
-    form.value.expressNo = "";
-  }
-};
-
 const customerNameChange = async (val, clearDownstream = true) => {
   // val is customerId now
   if (clearDownstream) {
     form.value.shippingId = "";
     outboundOptions.value = [];
   }
-
+  
   // Find customer name for getSalesLedger if it requires name
   const customer = customerNameOptions.value.find(c => c.id === val);
   if (!customer) return;
@@ -673,7 +593,7 @@
   // Assuming getSalesLedger takes customerName. If it takes ID, adjust accordingly.
   // Previous code used customerName. Let's try passing customerName.
   getSalesLedger({
-    customerName: customer.label,
+    customerName: customer.label, 
   }).then(res => {
     if(res.code === 200){
       outboundOptions.value = res.data.map(item => ({
@@ -690,7 +610,7 @@
   if(res.code === 200){
     // If backend returns project info, set it
     if (res.data.projectId) form.value.projectId = res.data.projectId;
-
+    
     availableProducts.value = mergeShippingProductLists(res.data);
     if (clearTable) tableData.value = [];
   }
@@ -698,12 +618,9 @@
 
 const handleReturnQuantityChange = (val, row) => {
   if (val === "" || val === null) return;
-  const unQuantity = row.unQuantity === undefined || row.unQuantity === null ? Infinity : Number(row.unQuantity || 0);//鏈��璐ф暟閲�
-  const pendingReturnNum = row.pendingReturnNum === undefined || row.pendingReturnNum === null ? Infinity : Number(row.pendingReturnNum || 0);//寰呭鐞嗛��璐ф暟閲�
-  //鏈�澶ч��璐ф暟閲忥紝濡傛灉涓虹紪杈戠姸鎬佸姞涓婂緟澶勭悊閫�璐ф暟閲�
-  const max = operationType.value === 'edit' ? unQuantity + pendingReturnNum : unQuantity
+  const max = row.unQuantity === undefined || row.unQuantity === null ? Infinity : Number(row.unQuantity || 0);
   const current = Number(val);
-
+  
   if (current > max) {
     proxy.$nextTick(() => {
       row.returnQuantity = max;
@@ -769,7 +686,7 @@
 // Removed checkSelectable to allow toggling existing items
 const confirmProductSelection = () => {
   const newTableData = [];
-
+  
   selectedProducts.value.forEach(product => {
     const existing = tableData.value.find(item => item.id === product.id);
     if (existing) {
@@ -777,7 +694,7 @@
     } else {
       newTableData.push({
         ...product,
-        returnSaleLedgerProductId: product.id,
+        returnSaleLedgerProductId: product.id, 
         productModelId: product.productModelId,
         returnQuantity: 0,
         num: 0,
@@ -795,7 +712,7 @@
       });
     }
   });
-
+  
   tableData.value = newTableData;
   productSelectionVisible.value = false;
 };

--
Gitblit v1.9.3