From 1963e40fab4e4c8b3597a1853ce5a03264d7897f Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期六, 13 十二月 2025 17:43:51 +0800
Subject: [PATCH] 1

---
 项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/NoStockOut.vue |  405 +++++++++++++++++++++++++--------------------------------
 1 files changed, 181 insertions(+), 224 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/NoStockOut.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/NoStockOut.vue"
index d058411..7e80215 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/NoStockOut.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/outbound/extend/NoStockOut.vue"
@@ -9,56 +9,49 @@
       class="custom-vol-box"
     >
       <div>
-        <!-- 鍗曟嵁閫夋嫨鍖哄煙锛堝彲杈撳叆鎼滅储锛� -->
-        <el-form :inline="true" :model="orderForm" style="margin-bottom: 20px; align-items: flex-end;">
-          <el-form-item label="鍑哄簱鍗曟嵁:" name="outboundOrderId">
-            <el-select
-              v-model="orderForm.outboundOrderId"
-              placeholder="璇烽�夋嫨鎴栨壂鎻忓嚭搴撳崟鎹彿"
+        <!-- 鍗曟嵁杈撳叆鍖哄煙锛堟敮鎸佹壂鐮侊級 -->
+        <el-form 
+          :inline="true" 
+          :model="orderForm" 
+          style="margin-bottom: 20px; align-items: flex-end;"
+          @submit.prevent
+        >
+          <el-form-item label="鍑哄簱鍗曟嵁:" name="outboundOrderNo">
+            <el-input
+              v-model="orderForm.outboundOrderNo"
+              placeholder="璇疯緭鍏ユ垨鎵弿鍑哄簱鍗曟嵁鍙�"
               clearable
               style="width: 220px; margin-right: 10px;"
-              @change="handleOrderChange"
-              @visible-change="handleOutboundVisibleChange"
-              :loading="loading"
-              filterable
-              :filter-method="filterOutboundOrders"
-              @input="handleOutboundScanInput"  
-              ref="outboundSelectRef"        
-            >
-              <el-option
-                v-for="order in filteredOutboundOrders"
-                :key="order.id"
-                :label="order.orderNo"
-                :value="order.id"
-              ></el-option>
-            </el-select>
+              @input="handleOutboundInput"
+              @keyup.enter="(e) => {
+                e.stopPropagation(); // 闃绘浜嬩欢鍐掓场
+                e.preventDefault(); // 闃绘榛樿琛屼负
+                focusBarcodeInputDirectly();
+              }"
+              ref="outboundInputRef"
+            ></el-input>
           </el-form-item>
-          <el-form-item label="閲囪喘鍗曟嵁:" name="purchaseOrderId">
-            <el-select
-              v-model="orderForm.purchaseOrderId"
-              placeholder="璇烽�夋嫨鎴栨壂鎻忛噰璐崟鎹彿"
+          <el-form-item label="閲囪喘鍗曟嵁:" name="purchaseOrderNo">
+            <el-input
+              v-model="orderForm.purchaseOrderNo"
+              placeholder="鎵爜鏉$爜鍚庤嚜鍔ㄥ~鍏�"
               clearable
               style="width: 220px; margin-right: 10px;"
-              @change="handleOrderChange"
-              @visible-change="handlePurchaseVisibleChange"
-              :loading="loading"
-              filterable
-              :filter-method="filterPurchaseOrders"
-              @input="handlePurchaseScanInput" 
-              ref="purchaseSelectRef"
-            >
-              <el-option
-                v-for="order in filteredPurchaseOrders"
-                :key="order.id"
-                :label="order.orderNo"
-                :value="order.id"
-              ></el-option>
-            </el-select>
+              @input="handlePurchaseInput"
+              readonly
+              ref="purchaseInputRef"
+            ></el-input>
           </el-form-item>
         </el-form>
 
         <!-- 涓婃柟杈撳叆妗� -->
-        <el-form :inline="true" :model="formData" ref="formRef" style="margin-bottom: 20px; align-items: flex-end;">
+        <el-form 
+          :inline="true" 
+          :model="formData" 
+          ref="formRef" 
+          style="margin-bottom: 20px; align-items: flex-end;"
+          @submit.prevent  
+        >
           <el-form-item
             label="鎵弿鏉$爜:"
             style="width: 80%"
@@ -69,10 +62,10 @@
               ref="barcodeInputRef"
               v-model="formData.barcode"
               placeholder="璇蜂娇鐢ㄦ壂鐮佹灙鎵弿鏉$爜锛屾垨鎵嬪姩杈撳叆"
-              @keyup.enter="handleScan"
+              @keydown.enter="debouncedHandleScan" 
               autofocus
               class="custom-input"
-              :disabled="!orderForm.outboundOrderId || !orderForm.purchaseOrderId"
+              :disabled="!orderForm.outboundOrderNo || loading"
             ></el-input>
           </el-form-item>
           <el-form-item>
@@ -81,7 +74,7 @@
               size="small" 
               @click="handleScan" 
               class="custom-button"
-              :disabled="!orderForm.outboundOrderId || !orderForm.purchaseOrderId || loading"
+              :disabled="!orderForm.outboundOrderNo || loading"
             >
               <Search /> 纭鎵弿
             </el-button>
@@ -109,7 +102,7 @@
                   </div>
                 </transition-group>
                 <div class="empty-tip" v-if="scannedBarcodes.length === 0">
-                  <span>鏆傛棤鎵弿璁板綍锛岃鍏堥�夋嫨鍗曟嵁鍚庢壂鎻忔潯鐮�</span>
+                  <span>鏆傛棤鎵弿璁板綍锛岃鍏堣緭鍏ュ嚭搴撳崟鎹悗鎵弿鏉$爜</span>
                 </div>
               </el-scrollbar>
             </div>
@@ -123,12 +116,22 @@
             type="primary" 
             size="small" 
             @click="submit" 
-            :disabled="scannedBarcodes.length === 0 || !orderForm.outboundOrderId || !orderForm.purchaseOrderId || loading" 
+            :disabled="scannedBarcodes.length === 0 || !orderForm.outboundOrderNo || !orderForm.purchaseOrderNo || loading" 
             class="submit-btn"
           >
             <Check /> 鎻愪氦鍑哄簱
           </el-button>
-          <el-button type="text" size="small" @click="showDetailBox = false" class="cancel-btn" :disabled="loading">
+          <el-button 
+            type="text" 
+            size="small" 
+            @click="(e) => {
+              e.stopPropagation();
+              e.preventDefault();
+              showDetailBox = false;
+            }" 
+            class="cancel-btn" 
+            :disabled="loading"
+          >
             鍙栨秷
           </el-button>
         </div>
@@ -138,8 +141,9 @@
 </template>
 
 <script setup>
-import { ref, reactive, onMounted, nextTick } from 'vue';
+import { ref, reactive, onMounted, nextTick, watch } from 'vue';
 import { ElMessage } from 'element-plus';
+import { Search, Check } from '@element-plus/icons-vue';
 
 import VolBox from "@/components/basic/VolBox.vue";
 import http from '@/api/http';
@@ -147,210 +151,114 @@
 // 鍝嶅簲寮忔暟鎹�
 const showDetailBox = ref(false);
 const orderForm = reactive({
-  outboundOrderId: "",
-  purchaseOrderId: ""
+  outboundOrderNo: "",
+  purchaseOrderNo: ""
 });
 const formData = reactive({
   barcode: "",
 });
 const scannedBarcodes = ref([]);
-const outboundOrders = ref([]);
-const purchaseOrders = ref([]);
-const filteredOutboundOrders = ref([]);
-const filteredPurchaseOrders = ref([]);
 const loading = ref(false);
+// 鏂板锛氬瓨鍌ㄩ娆℃壂鎻忕殑閲囪喘鍗曞彿锛堢敤浜庝竴鑷存�ф牎楠岋級
+const firstPurchaseOrderNo = ref(null);
 
 // 妯℃澘寮曠敤
 const formRef = ref(null);
 const barcodeInputRef = ref(null);
-const outboundSelectRef = ref(null); // 鏂板锛氬嚭搴撳崟select鐨剅ef
-const purchaseSelectRef = ref(null); // 鏂板锛氶噰璐崟select鐨剅ef
+const outboundInputRef = ref(null);
+const purchaseInputRef = ref(null);
 
-// 鐢ㄤ簬闃叉杈撳叆浜嬩欢鍜宑hange浜嬩欢鍐茬獊鐨勯攣
-const isProcessingScan = ref(false);
-
-// 缁勪欢鎸傝浇鏃跺垵濮嬪寲杩囨护鍚庣殑鍒楄〃
+// 缁勪欢鎸傝浇鏃惰仛鐒﹀埌鍑哄簱鍗曡緭鍏ユ
 onMounted(() => {
-  filteredOutboundOrders.value = [...outboundOrders.value];
-  filteredPurchaseOrders.value = [...purchaseOrders.value];
+  nextTick(() => {
+    outboundInputRef.value?.focus();
+  });
 });
+
+// 鐩戝惉鎵弿鍒楄〃锛岃嫢涓虹┖鍒欓噸缃娆¢噰璐崟鍙�
+watch(scannedBarcodes, (newVal) => {
+  if (newVal.length === 0) {
+    firstPurchaseOrderNo.value = null;
+    orderForm.purchaseOrderNo = ""; // 鍚屾娓呯┖閲囪喘鍗曡緭鍏ユ
+  }
+}, { deep: true });
+
+// 绠�鍗曢槻鎶栧嚱鏁帮紙鏃犻渶渚濊禆lodash锛�
+const debounce = (fn, delay = 100) => {
+  let timer = null;
+  return (...args) => {
+    if (timer) clearTimeout(timer);
+    timer = setTimeout(() => {
+      fn.apply(this, args);
+    }, delay);
+  };
+};
 
 // 鎵撳紑寮圭獥
 const open = () => {
   showDetailBox.value = true;
   scannedBarcodes.value = [];
   formData.barcode = "";
-  orderForm.outboundOrderId = "";
-  orderForm.purchaseOrderId = "";
+  orderForm.outboundOrderNo = "";
+  orderForm.purchaseOrderNo = "";
+  // 閲嶇疆棣栨閲囪喘鍗曞彿
+  firstPurchaseOrderNo.value = null;
   nextTick(() => {
-    barcodeInputRef.value?.focus();
+    outboundInputRef.value?.focus();
   });
 };
 
-// 鍔犺浇鍑哄簱鍗曟嵁鍒楄〃
-const loadOutboundOrders = async () => {
-  if (outboundOrders.value.length > 0) return;
-  try {
-    loading.value = true;
-    const res = await http.get("/api/OutboundPicking/GetAvailablePickingOrders");
-    
-    if (res.code === 0) {
-      outboundOrders.value = res.data.map(orderNo => ({
-        id: orderNo,
-        orderNo: orderNo
-      }));
-      filteredOutboundOrders.value = [...outboundOrders.value];
-    } else {
-      ElMessage.error("鍔犺浇鍑哄簱鍗曟嵁澶辫触锛�" + (res.message || '鏈煡閿欒'));
-    }
-  } catch (error) {
-    ElMessage.error("鍔犺浇鍑哄簱鍗曟嵁寮傚父锛�" + error.message);
-  } finally {
-    loading.value = false;
+// 鍑哄簱鍗曡緭鍏ュ鐞嗭紙鎵爜鎴栨墜鍔ㄨ緭鍏ワ級
+const handleOutboundInput = (value) => {
+  if (value && value.trim()) {
+    // 鍑哄簱鍗曞彿鏍煎紡楠岃瘉閫昏緫锛堟寜闇�淇濈暀锛�
   }
 };
 
-// 鍔犺浇閲囪喘鍗曟嵁鍒楄〃
-const loadPurchaseOrders = async () => {
-  if (purchaseOrders.value.length > 0) return;
-  try {
-    loading.value = true;
-    const res = await http.get("/api/OutboundPicking/GetAvailablePurchaseOrders");
-    
-    if (res.status === true) {
-      purchaseOrders.value = res.data.map(orderNo => ({
-        id: orderNo,
-        orderNo: orderNo
-      }));
-      filteredPurchaseOrders.value = [...purchaseOrders.value];
-    } else {
-      ElMessage.error("鍔犺浇閲囪喘鍗曟嵁澶辫触锛�" + (res.message || '鏈煡閿欒'));
-    }
-  } catch (error) {
-    ElMessage.error("鍔犺浇閲囪喘鍗曟嵁寮傚父锛�" + error.message);
-  } finally {
-    loading.value = false;
+// 閲囪喘鍗曡緭鍏ュ鐞嗭紙鎵爜鎴栨墜鍔ㄨ緭鍏ワ級
+const handlePurchaseInput = (value) => {
+  if (value && value.trim()) {
+    // 閲囪喘鍗曞彿鏍煎紡楠岃瘉閫昏緫锛堟寜闇�淇濈暀锛�
   }
 };
 
-// 鍑哄簱鍗曟嵁杩囨护鏂规硶
-const filterOutboundOrders = (value) => {
-  if (!value) {
-    filteredOutboundOrders.value = [...outboundOrders.value];
-  } else {
-    const lowerValue = value.toLowerCase();
-    filteredOutboundOrders.value = outboundOrders.value.filter(order => 
-      order.orderNo.toLowerCase().includes(lowerValue)
-    );
-  }
-};
-
-// 閲囪喘鍗曟嵁杩囨护鏂规硶
-const filterPurchaseOrders = (value) => {
-  if (!value) {
-    filteredPurchaseOrders.value = [...purchaseOrders.value];
-  } else {
-    const lowerValue = value.toLowerCase();
-    filteredPurchaseOrders.value = purchaseOrders.value.filter(order => 
-      order.orderNo.toLowerCase().includes(lowerValue)
-    );
-  }
-};
-
-// 鍑哄簱鍗曟嵁涓嬫媺妗嗘樉绀�/闅愯棌鏃惰Е鍙�
-const handleOutboundVisibleChange = (visible) => {
-  if (visible) {
-    loadOutboundOrders();
-  } else {
-    // 褰撲笅鎷夋鍏抽棴鏃讹紝濡傛灉鏄壂鎻忔搷浣滃鑷寸殑锛屾竻绌鸿緭鍏ユ
-    if (isProcessingScan.value) {
-        nextTick(() => {
-            outboundSelectRef.value?.clearInput();
-            isProcessingScan.value = false;
-        });
-    }
-  }
-};
-
-// 閲囪喘鍗曟嵁涓嬫媺妗嗘樉绀�/闅愯棌鏃惰Е鍙�
-const handlePurchaseVisibleChange = (visible) => {
-  if (visible) {
-    loadPurchaseOrders();
-  } else {
-    // 褰撲笅鎷夋鍏抽棴鏃讹紝濡傛灉鏄壂鎻忔搷浣滃鑷寸殑锛屾竻绌鸿緭鍏ユ
-    if (isProcessingScan.value) {
-        nextTick(() => {
-            purchaseSelectRef.value?.clearInput();
-            isProcessingScan.value = false;
-        });
-    }
-  }
-};
-
-// 鍗曟嵁閫夋嫨鍙樺寲鏃惰Е鍙�
-const handleOrderChange = () => {
-  // 濡傛灉鏄墜鍔ㄩ�夋嫨锛屽垯涓嶆竻绌鸿緭鍏ユ
-  isProcessingScan.value = false;
-  
-  scannedBarcodes.value = [];
-  nextTick(() => {
+// 鐩存帴璺宠浆鍒版潯鐮佽緭鍏ユ锛堟棤闇�鍏堝~閲囪喘鍗曪級
+const focusBarcodeInputDirectly = () => {
+  if (orderForm.outboundOrderNo.trim()) {
     barcodeInputRef.value?.focus();
-  });
-};
-
-/**
- * 澶勭悊鍑哄簱鍗曟壂鎻忚緭鍏�
- * @param {string} scanText - 鎵弿鏋緭鍏ョ殑鏂囨湰
- */
-const handleOutboundScanInput = async (scanText) => {
-  // 閬垮厤澶勭悊绌哄瓧绗︿覆鎴栫敱change浜嬩欢瑙﹀彂鐨勫唴閮ㄦ搷浣�
-  if (!scanText || isProcessingScan.value) return;
-
-  // 鏌ユ壘瀹屽叏鍖归厤鐨勮鍗�
-  const matchedOrder = outboundOrders.value.find(order => order.orderNo === scanText);
-
-  if (matchedOrder) {
-    isProcessingScan.value = true; // 鏍囪涓烘鍦ㄥ鐞嗘壂鎻�
-    // 鎵嬪姩璧嬪��
-    orderForm.outboundOrderId = matchedOrder.id;
-    ElMessage.success(`鎴愬姛閫夋嫨鍑哄簱鍗曪細${matchedOrder.orderNo}`);
-    
-    // 寤惰繜鑱氱劍鍒颁笅涓�涓緭鍏ユ锛岀‘淇濊祴鍊煎畬鎴�
-    setTimeout(() => {
-        purchaseSelectRef.value?.focus();
-    }, 100);
-  }
-  // 濡傛灉娌℃湁鍖归厤椤癸紝涓嶅仛浠讳綍浜嬶紝璁〆l-select淇濇寔杩囨护鐘舵�侊紝鐢ㄦ埛鍙互鎵嬪姩閫夋嫨
-};
-
-/**
- * 澶勭悊閲囪喘鍗曟壂鎻忚緭鍏�
- * @param {string} scanText - 鎵弿鏋緭鍏ョ殑鏂囨湰
- */
-const handlePurchaseScanInput = async (scanText) => {
-  if (!scanText || isProcessingScan.value) return;
-
-  const matchedOrder = purchaseOrders.value.find(order => order.orderNo === scanText);
-
-  if (matchedOrder) {
-    isProcessingScan.value = true; // 鏍囪涓烘鍦ㄥ鐞嗘壂鎻�
-    orderForm.purchaseOrderId = matchedOrder.id;
-    ElMessage.success(`鎴愬姛閫夋嫨閲囪喘鍗曪細${matchedOrder.orderNo}`);
-    
-    setTimeout(() => {
-        barcodeInputRef.value?.focus();
-    }, 100);
+  } else {
+    ElMessage.warning("璇峰厛杈撳叆鏈夋晥鐨勫嚭搴撳崟鎹彿");
   }
 };
 
+/**
+ * 鏍规嵁鏉$爜鏌ヨ閲囪喘鍗曟帴鍙o紙瀹屽叏瀵归綈绀轰緥璇锋眰鏍煎紡锛�
+ * @param {string} barcode 鏉$爜
+ * @returns {Promise<string>} 閲囪喘鍗曞彿
+ */
+const getPurchaseOrderByBarcode = async (barcode) => {
+  // 瀹屽叏鎸夌収绀轰緥鏍煎紡锛歶rl鎷兼帴鍙傛暟 + 绗簩涓弬鏁颁紶鎻愮ず鏂囨湰
+  const res = await http.post(`/api/OutboundPicking/GetPurchaseOrderByBarcode?barCode=${encodeURIComponent(barcode)}`, "鏌ヨ閲囪喘鍗曚腑...");
 
-// 鎵弿鏉$爜澶勭悊
+  if (res.status !== true) {
+    throw new Error(res.message || "鏌ヨ閲囪喘鍗曞け璐�");
+  }
+  if (!res.data?.purchaseOrderNo) {
+    throw new Error("鏈煡璇㈠埌璇ユ潯鐮佸搴旂殑閲囪喘鍗�");
+  }
+  return res.data.purchaseOrderNo;
+};
+
+// 鎵弿鏉$爜鏍稿績閫昏緫
 const handleScan = async () => {
   if (!formRef.value) return;
+  // 楠岃瘉鏉$爜蹇呭~
   await formRef.value.validateField('barcode');
 
   const barcode = formData.barcode.trim();
-  
+  const outboundOrderNo = orderForm.outboundOrderNo.trim();
+
+  // 妫�鏌ユ潯鐮佹槸鍚﹀凡鎵弿
   if (scannedBarcodes.value.some(item => item.barcode === barcode)) {
     ElMessage.warning(`鏉$爜 ${barcode} 宸叉壂鎻忚繃锛岃鍕块噸澶嶆壂鎻廯);
     formData.barcode = "";
@@ -360,40 +268,86 @@
 
   try {
     loading.value = true;
-    const res = await http.post("/api/OutboundPicking/BarcodeValidate", {
-      outOder: orderForm.outboundOrderId,
-      inOder: orderForm.purchaseOrderId,
+
+    // 姝ラ1锛氫粎浼犳潯鐮佹煡璇㈤噰璐崟锛堜娇鐢ㄧず渚嬫牸寮忕殑璇锋眰锛�
+    const purchaseOrderNo = await getPurchaseOrderByBarcode(barcode);
+
+    // 鏍稿績鏍¢獙锛氶噰璐崟涓�鑷存�ф鏌�
+    if (firstPurchaseOrderNo.value) {
+      // 闈為娆℃壂鎻忥紝鏍¢獙閲囪喘鍗曞彿鏄惁涓�鑷�
+      if (purchaseOrderNo !== firstPurchaseOrderNo.value) {
+        throw new Error(`褰撳墠鏉$爜瀵瑰簲鐨勯噰璐崟銆�${purchaseOrderNo}銆戜笌棣栨鎵弿鐨勯噰璐崟銆�${firstPurchaseOrderNo.value}銆戜笉涓�鑷达紝绂佹鎵弿锛乣);
+      }
+    } else {
+      // 棣栨鎵弿锛岃褰曢噰璐崟鍙�
+      firstPurchaseOrderNo.value = purchaseOrderNo;
+    }
+
+    // 璧嬪�奸噰璐崟鍒拌緭鍏ユ
+    orderForm.purchaseOrderNo = purchaseOrderNo;
+    ElMessage.success(`鎴愬姛鏌ヨ鍒伴噰璐崟锛�${purchaseOrderNo}`);
+
+    // 姝ラ2锛氳皟鐢ㄥ師鏈夋潯鐮侀獙璇佹帴鍙o紙濡傞渶瀵归綈鏍煎紡鍙悓姝ヤ慨鏀癸紝姝ゅ淇濈暀鍘熸湁鏍煎紡锛�
+    const validateRes = await http.post("/api/OutboundPicking/BarcodeValidate", {
+      outOder: outboundOrderNo,
+      inOder: purchaseOrderNo,
       barCode: barcode
     });
 
-    if (res.status === true) {
+    if (validateRes.status === true) {
       scannedBarcodes.value.push({ barcode });
       ElMessage.success("鎵弿鎴愬姛");
       formData.barcode = "";
     } else {
-      ElMessage.error("鎵弿澶辫触锛�" + (res.message || '楠岃瘉澶辫触'));
+      ElMessage.error("鎵弿澶辫触锛�" + (validateRes.message || '鏉$爜楠岃瘉澶辫触'));
     }
   } catch (error) {
-    ElMessage.error("鎵弿楠岃瘉寮傚父锛�" + error.message);
+    // 鎹曡幏閲囪喘鍗曚笉涓�鑷寸瓑閿欒骞舵彁绀�
+    ElMessage.error(error.message);
+    // 娓呯┖褰撳墠杈撳叆妗嗭紝鑱氱劍鏉$爜杈撳叆妗�
+    formData.barcode = "";
+    nextTick(() => barcodeInputRef.value?.focus());
   } finally {
     loading.value = false;
-    nextTick(() => barcodeInputRef.value?.focus());
+    // 寮哄埗鑱氱劍鏉$爜杈撳叆妗嗭紝閬垮厤鐒︾偣璺冲埌寮圭獥澶�
+    nextTick(() => {
+      if (barcodeInputRef.value) {
+        barcodeInputRef.value.focus();
+        // 娓呯┖杈撳叆妗嗛�変腑鐘舵�侊紙鎵爜鏋彲鑳芥畫鐣欓�変腑锛�
+        if (barcodeInputRef.value.input) {
+          barcodeInputRef.value.input.select = () => {};
+        }
+      }
+    });
   }
 };
+
+// 甯﹂槻鎶栧拰浜嬩欢鎷︽埅鐨勬壂鎻忓鐞嗭紙閫傞厤鎵爜鏋級
+const debouncedHandleScan = debounce(async (e) => {
+  // 闃绘浜嬩欢鍐掓场鍜岄粯璁よ涓�
+  e.stopPropagation();
+  e.preventDefault();
+  await handleScan();
+}, 100);
 
 // 绉婚櫎鍗曟潯鎵弿璁板綍
 const removeItem = async (index, barcode) => {
   try {
     loading.value = true;
     const res = await http.post("/api/OutboundPicking/DeleteBarcode", {
-      outOder: orderForm.outboundOrderId,
-      inOder: orderForm.purchaseOrderId,
+      outOder: orderForm.outboundOrderNo,
+      inOder: orderForm.purchaseOrderNo,
       barCode: barcode
     });
 
     if (res.status === true) {
       scannedBarcodes.value.splice(index, 1);
       ElMessage.success("鍒犻櫎鎴愬姛");
+      // 鑻ュ垹闄ゅ悗鏃犳潯鐮侊紝鑷姩閲嶇疆棣栨閲囪喘鍗曞彿鍜岄噰璐崟杈撳叆妗�
+      if (scannedBarcodes.value.length === 0) {
+        firstPurchaseOrderNo.value = null;
+        orderForm.purchaseOrderNo = "";
+      }
     } else {
       ElMessage.error("鍒犻櫎澶辫触锛�" + (res.message || '鍒犻櫎澶辫触'));
     }
@@ -416,14 +370,17 @@
   try {
     loading.value = true;
     const res = await http.post("/api/OutboundPicking/NoStockOutSubmit", {
-      OutOderSubmit: orderForm.outboundOrderId,
-      InOderSubmit: orderForm.purchaseOrderId,
+      OutOderSubmit: orderForm.outboundOrderNo,
+      InOderSubmit: orderForm.purchaseOrderNo,
       BarCodeSubmit: barcodes
     });
 
     if (res.status === true) {
       ElMessage.success("鍑哄簱鎻愪氦鎴愬姛");
       showDetailBox.value = false;
+      // 鎻愪氦鎴愬姛鍚庨噸缃姸鎬�
+      firstPurchaseOrderNo.value = null;
+      scannedBarcodes.value = [];
     } else {
       ElMessage.error("鍑哄簱鎻愪氦澶辫触锛�" + (res.message || '鎻愪氦澶辫触'));
     }

--
Gitblit v1.9.3