From 1378fc4cd7abc24ed3a982e09437c2c8a74e9f2f Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期二, 27 一月 2026 19:06:32 +0800
Subject: [PATCH] 代码优化

---
 项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue |  231 ++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 169 insertions(+), 62 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
index 462d5bd..59d95f2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
@@ -1,6 +1,12 @@
 <template>
   <div>
-    <vol-box v-model="showDetialBox" :lazy="true" width="75%" :padding="15" title="鍗曟嵁鏄庣粏淇℃伅">
+    <vol-box
+      v-model="showDetialBox"
+      :lazy="true"
+      width="75%"
+      :padding="15"
+      title="鍗曟嵁鏄庣粏淇℃伅"
+    >
       <div class="box-head">
         <el-alert :closable="false" style="width: 100%">
           <el-row>
@@ -8,33 +14,97 @@
               <span>宸查�変腑 {{ selection.length }} 椤�</span>
             </el-col>
             <el-col :span="8">
-              <el-link type="primary" size="small" v-if="isBatch === 0" style="float: right; height: 20px"
-                @click="handleOpenPicking">鎷i��</el-link>
-              <el-link type="primary" size="small" style="float: right; height: 20px; margin-right: 10px"
-                v-if="isBatch === 1" @click="handleOpenBatchPicking">鍒嗘壒鎷i��</el-link>
-              <el-link type="primary" size="small" v-if="isBatch === 0"
-                style="float: right; height: 20px; margin-right: 10px" @click="outbound">鐩存帴鍑哄簱</el-link>
-              <el-link type="primary" size="small" v-if="isBatch === 1"
-                style="float: right; height: 20px; margin-right: 10px" @click="outboundbatch">鍒嗘壒鍑哄簱</el-link>
-              <el-link type="primary" size="small" style="float: right; height: 20px; margin-right: 10px"
-                @click="getData">鍒锋柊</el-link>
+              <el-link
+                type="primary"
+                size="small"
+                v-if="isBatch === 0 && mainBusinessType != '30'"
+                style="float: right; height: 20px"
+                @click="handleOpenPicking"
+                >鎷i��</el-link
+              >
+              <el-link
+                type="primary"
+                size="small"
+                v-if="mainBusinessType === '30'"
+                style="float: right; height: 20px"
+                @click="handleOpenRecheckPicking"
+                >閲嶆鎷i��</el-link
+              >
+              <el-link
+                type="primary"
+                size="small"
+                style="float: right; height: 20px; margin-right: 10px"
+                v-if="isBatch === 1"
+                @click="handleOpenBatchPicking"
+                >鍒嗘壒鎷i��</el-link
+              >
+              <el-link
+                type="primary"
+                size="small"
+                v-if="isBatch === 0 && mainBusinessType != '30'"
+                style="float: right; height: 20px; margin-right: 10px"
+                @click="outbound"
+                >鐩存帴鍑哄簱</el-link
+              >
+              <el-link
+                type="primary"
+                size="small"
+                v-if="isBatch === 1"
+                style="float: right; height: 20px; margin-right: 10px"
+                @click="outboundbatch"
+                >鍒嗘壒鍑哄簱</el-link
+              >
+              <el-link
+                type="primary"
+                size="small"
+                style="float: right; height: 20px; margin-right: 10px"
+                @click="getData"
+                >鍒锋柊</el-link
+              >
             </el-col>
           </el-row>
         </el-alert>
       </div>
       <div class="box-table" style="margin-top: 1%">
-        <el-table ref="singleTable" :data="tableData" style="width: 100%; height: 100%" highlight-current-row
-          @current-change="handleCurrentChange" height="500px" @row-click="handleRowClick"
-          @selection-change="handleSelectionChange">
+        <el-table
+          ref="singleTable"
+          :data="tableData"
+          style="width: 100%; height: 100%"
+          highlight-current-row
+          @current-change="handleCurrentChange"
+          height="500px"
+          @row-click="handleRowClick"
+          @selection-change="handleSelectionChange"
+        >
           <el-table-column type="selection" width="55"> </el-table-column>
-          <el-table-column label="搴忓彿" type="index" fixed="left" width="55" align="center"></el-table-column>
-          <el-table-column v-for="(item, index) in tableColumns.filter((x) => !x.hidden)" :key="index" :prop="item.prop"
-            :label="item.title" :width="item.width" align="center">
+          <el-table-column
+            label="搴忓彿"
+            type="index"
+            fixed="left"
+            width="55"
+            align="center"
+          ></el-table-column>
+          <el-table-column
+            v-for="(item, index) in tableColumns.filter((x) => !x.hidden)"
+            :key="index"
+            :prop="item.prop"
+            :label="item.title"
+            :width="item.width"
+            align="center"
+          >
             <template #default="scoped">
               <div v-if="item.type == 'icon'">
-                <el-tooltip class="item" effect="dark" :content="item.title" placement="bottom">
-                  <el-link type="primary" :disabled="getButtonEnable(item.prop, scoped.row)"
-                    @click="tableButtonClick(scoped.row, item)">
+                <el-tooltip
+                  class="item"
+                  effect="dark"
+                  :content="item.title"
+                  placement="bottom"
+                >
+                  <el-link
+                    type="primary"
+                    :disabled="getButtonEnable(item.prop, scoped.row)"
+                    @click="tableButtonClick(scoped.row, item)"
+                  >
                     <i :class="item.icon" style="font-size: 22px"></i>
                   </el-link>
                 </el-tooltip>
@@ -53,9 +123,15 @@
       </div>
     </vol-box>
     <stock-select ref="child" @parentCall="parentCall"></stock-select>
-    <selected-stock ref="selectedStock" @parentCall="parentCall"></selected-stock>
+    <selected-stock
+      ref="selectedStock"
+      @parentCall="parentCall"
+    ></selected-stock>
     <NoStockOut ref="NoStockOut" @parentCall="parentCall"></NoStockOut>
-    <DirectOutbound ref="DirectOutbound" @parentCall="parentCall"></DirectOutbound>
+    <DirectOutbound
+      ref="DirectOutbound"
+      @parentCall="parentCall"
+    ></DirectOutbound>
   </div>
 </template>
 
@@ -79,7 +155,14 @@
 } from "element-plus";
 
 export default {
-  components: { VolBox, VolForm, StockSelect, SelectedStock, NoStockOut, DirectOutbound },
+  components: {
+    VolBox,
+    VolForm,
+    StockSelect,
+    SelectedStock,
+    NoStockOut,
+    DirectOutbound,
+  },
   data() {
     return {
       row: null,
@@ -150,6 +233,12 @@
         {
           prop: "moveQty",
           title: "鎸枡鏁伴噺",
+          type: "string",
+          width: 90,
+        },
+        {
+          prop: "warehouseCode",
+          title: "浠撳簱缂栧彿",
           type: "string",
           width: 90,
         },
@@ -290,14 +379,16 @@
         });
     },
     tableButtonClick(row, column) {
-      if (column.prop == "assignStock") {
-        this.$refs.child.open(row);
-      } else if (column.prop == "NoStockOut") {
-        this.$refs.NoStockOut.open(row);
-      } else {
-        this.$refs.selectedStock.open(row);
-      }
-    },
+  if (column.prop == "assignStock") {
+    this.$refs.child.open(row,this.row.orderNo);
+  } else if (column.prop == "NoStockOut") {
+    this.$refs.NoStockOut.open(row);
+  } else {
+    this.$refs.selectedStock.open(row);
+
+  }
+},
+
     lockstocks() {
       if (this.selection.length === 0) {
         return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
@@ -326,39 +417,55 @@
         query: { orderId: this.row.id, orderNo: this.row.orderNo },
       });
     },
+    handleOpenRecheckPicking() {
+      this.$router.push({
+        path: "/outbound/recheckOutPicking",
+        query: { orderId: this.row.id, orderNo: this.row.orderNo },
+      });
+    },
     outbound() {
-      if (this.selection.length === 0) {
-        return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
-      }
+    if (this.selection.length === 0) {
+      return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
+    }
 
-      const keys = this.selection.map((item) => item.id);
-      const requestParams = {
-        detailIds: keys,
-        outboundQuantity: 1,
-        operator: "",
-        orderNo: this.row.orderNo,
-        isBatch: this.isBatch
-      };
-      console.log(requestParams);
-      this.$refs.DirectOutbound.open(requestParams);
-    },
-    outboundbatch() {
-      if (this.selection.length === 0) {
-        return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
-      }
+    const keys = this.selection.map((item) => item.id);
+    const requestParams = {
+      detailIds: keys,
+      outboundQuantity: 1,
+      operator: "",
+      orderNo: this.row.orderNo,
+      isBatch: this.isBatch,
+    };
+    console.log(requestParams);
+    this.$refs.DirectOutbound.open(requestParams);
+  },
+  
+  outboundbatch() {
+    if (this.selection.length === 0) {
+      return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
+    }
 
-      const keys = this.selection.map((item) => item.id);
-      const requestParams = {
-        detailIds: keys,
-        outboundQuantity: this.selection.length > 1 ? 1 : this.selection[0].orderQuantity - this.selection[0].lockQuantity,
-        operator: "",
-        orderNo: this.row.orderNo,
-        isBatch: this.isBatch
-      };
-      console.log(requestParams);
-      this.$refs.DirectOutbound.open(requestParams);
+    const keys = this.selection.map((item) => item.id);
+    
+    // 璁$畻鎵�鏈夐�変腑鏄庣粏鐨勫彲鍑哄簱鏁伴噺鎬诲拰
+    let totalOutboundQuantity = 0;
+    this.selection.forEach(item => {
+      // 绫诲瀷杞崲+瀹归敊锛岄伩鍏嶉潪鏁板瓧鍊煎鑷磋绠楅敊璇�
+      const orderQty = Number(item.orderQuantity) || 0;
+      const lockQty = Number(item.lockQuantity) || 0;
+      totalOutboundQuantity += (orderQty - lockQty);
+    });
 
-    },
+    const requestParams = {
+      detailIds: keys,
+      outboundQuantity: totalOutboundQuantity, 
+      operator: "",
+      orderNo: this.row.orderNo,
+      isBatch: this.isBatch,
+    };
+    console.log("鍒嗘壒鍑哄簱鍙傛暟锛�", requestParams);
+    this.$refs.DirectOutbound.open(requestParams);
+  },
     setCurrent(row) {
       this.$refs.singleTable.setCurrentRow(row);
     },
@@ -445,11 +552,11 @@
   background: oldlace;
 }
 
-.box-table .el-table tbody tr:hover>td {
+.box-table .el-table tbody tr:hover > td {
   background-color: #d8e0d4 !important;
 }
 
-.box-table .el-table tbody tr.current-row>td {
+.box-table .el-table tbody tr.current-row > td {
   background-color: #f0f9eb !important;
 }
 

--
Gitblit v1.9.3