From d741e7a7ad7de5045e5c6b6145d9da1783cadecd Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期二, 13 一月 2026 09:55:03 +0800
Subject: [PATCH] Merge branch 'htq20251215' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu into htq20251215

---
 项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/NoStockOut.vue |   56 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 49 insertions(+), 7 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 d19a48e..157c95f 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"
@@ -8,6 +8,14 @@
       title="铏氭嫙鍑哄叆搴�"
       class="custom-vol-box"
     >
+      <!-- 鎻愪氦閬僵灞傦細瑕嗙洊鏁翠釜寮圭獥鍐呭鍖哄煙 -->
+      <div class="submit-mask" v-show="submitLoading">
+        <div class="mask-content">
+          <el-loading-spinner class="loading-icon" />
+          <span class="loading-text">姝e湪鎻愪氦鍑哄簱锛岃绋嶅��...</span>
+        </div>
+      </div>
+
       <div>
         <!-- 鍗曟嵁杈撳叆鍖哄煙锛堟敮鎸佹壂鐮侊級 -->
         <el-form 
@@ -25,7 +33,7 @@
               @input="handleOutboundInput"
               @keyup.enter="validateOutboundOrder"
               ref="outboundInputRef"
-              :disabled="loading"
+              :disabled="loading || submitLoading"
             ></el-input>
           </el-form-item>
           <el-form-item label="閲囪喘鍗曟嵁:" name="purchaseOrderNo">
@@ -37,6 +45,7 @@
               @input="handlePurchaseInput"
               readonly
               ref="purchaseInputRef"
+              :disabled="submitLoading"
             ></el-input>
           </el-form-item>
         </el-form>
@@ -62,7 +71,7 @@
               @keydown.enter="debouncedHandleScan" 
               autofocus
               class="custom-input"
-              :disabled="!orderForm.outboundOrderNo || loading"
+              :disabled="!orderForm.outboundOrderNo || loading || submitLoading"
             ></el-input>
           </el-form-item>
           <el-form-item>
@@ -71,7 +80,7 @@
               size="small" 
               @click="handleScan" 
               class="custom-button"
-              :disabled="!orderForm.outboundOrderNo || loading"
+              :disabled="!orderForm.outboundOrderNo || loading || submitLoading"
             >
               <Search /> 纭鎵弿
             </el-button>
@@ -123,7 +132,7 @@
                       @click="removeItem(index, item.barcode)"
                       icon="Delete"
                       circle
-                      :disabled="loading"
+                      :disabled="loading || submitLoading"
                     ></el-button>
                   </div>
                 </transition-group>
@@ -142,7 +151,7 @@
             type="primary" 
             size="small" 
             @click="submit" 
-            :disabled="scannedBarcodes.length === 0 || !orderForm.outboundOrderNo || loading" 
+            :disabled="scannedBarcodes.length === 0 || !orderForm.outboundOrderNo || loading || submitLoading" 
             class="submit-btn"
           >
             <Check /> 鎻愪氦鍑哄簱
@@ -156,7 +165,7 @@
               showDetailBox = false;
             }" 
             class="cancel-btn" 
-            :disabled="loading"
+            :disabled="loading || submitLoading"
           >
             鍙栨秷
           </el-button>
@@ -185,6 +194,8 @@
 });
 const scannedBarcodes = ref([]);
 const loading = ref(false);
+// 鏂板锛氭彁浜や笓灞瀕oading鐘舵�侊紝鎺у埗閬僵灞傛樉绀�
+const submitLoading = ref(false);
 
 // 妯℃澘寮曠敤
 const formRef = ref(null);
@@ -217,6 +228,7 @@
   formData.barcode = "";
   orderForm.outboundOrderNo = "";
   orderForm.purchaseOrderNo = "";
+  submitLoading.value = false; // 鎵撳紑寮圭獥鏃堕噸缃彁浜oading
   nextTick(() => {
     outboundInputRef.value?.focus(); // 鎵撳紑寮圭獥浠嶈仛鐒﹀嚭搴撳崟杈撳叆妗�
   });
@@ -435,7 +447,8 @@
   const purchaseOrderNos = [...new Set(scannedBarcodes.value.map(item => item.purchaseOrderNo).filter(Boolean))];
 
   try {
-    loading.value = true;
+    // 寮�鍚彁浜oading锛屾樉绀洪伄缃╁眰
+    submitLoading.value = true;
     const res = await http.post("/api/OutboundPicking/NoStockOutSubmit", {
       OutOderSubmit: orderForm.outboundOrderNo,
       InOderSubmit: purchaseOrderNos.join(',') || '',
@@ -455,6 +468,8 @@
     ElMessage.error("鍑哄簱鎻愪氦寮傚父锛�" + error.message);
     nextTick(() => barcodeInputRef.value?.focus()); // 寮傚父鑱氱劍鏉$爜妗�
   } finally {
+    // 鍏抽棴鎻愪氦loading锛岄殣钘忛伄缃╁眰
+    submitLoading.value = false;
     loading.value = false;
   }
 };
@@ -483,6 +498,33 @@
   transition: transform 1s ease;
 }
 
+/* 鏂板锛氭彁浜ら伄缃╁眰鏍峰紡 */
+.submit-mask {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  background-color: rgba(255, 255, 255, 0.85);
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  z-index: 100;
+  border-radius: inherit;
+}
+.mask-content {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  gap: 12px;
+  color: #409eff;
+  font-size: 15px;
+}
+.loading-icon {
+  font-size: 24px;
+  animation: el-loading-circle 1.5s linear infinite;
+}
+
 .scan-list {
   width: 100%;
 }

--
Gitblit v1.9.3