From 6f0ffcf4a6e75ac3a76c6cfd75e02de3a17d46e3 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期二, 31 三月 2026 10:05:32 +0800
Subject: [PATCH] 同库区移库

---
 项目代码/WIDESEA_WMSClient/src/extension/outbound/extend/NoStockOut.vue |   42 ++++++++++++++++++++++++++++++++++--------
 1 files changed, 34 insertions(+), 8 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 bb63598..9d2333c 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"
@@ -208,6 +208,21 @@
 const outboundInputRef = ref(null);
 const purchaseInputRef = ref(null);
 
+const successAudioSrc = require('@/assets/audio/success.mp3');
+const errorAudioSrc = require('@/assets/audio/error.mp3');
+
+// ========== 浠呮柊澧烇細闊抽鎾斁鍑芥暟锛堟棤鍏朵粬浠g爜鏀瑰姩锛� ==========
+const playAudio = (audioSrc, volume = 0.8) => {
+  try {
+    const audio = new Audio(audioSrc);
+    audio.volume = volume;
+    audio.play().catch(() => {});
+  } catch (e) {}
+};
+const playSuccess = () => playAudio(successAudioSrc);
+const playError = () => playAudio(errorAudioSrc);
+// ========== 闊抽鍑芥暟缁撴潫 ==========
+
 // 缁勪欢鎸傝浇鏃惰仛鐒﹀埌鍑哄簱鍗曡緭鍏ユ
 onMounted(() => {
   nextTick(() => {
@@ -340,6 +355,7 @@
   // 鏍稿績鏂板锛氬墠缃牎楠岋紝纭繚鍑哄簱鍗曞凡楠岃瘉
   if (!isOutboundVerified.value) {
     ElMessage.warning("璇峰厛楠岃瘉鏈夋晥鐨勫嚭搴撳崟鎹彿鍚庡啀鎵弿鏉$爜");
+    playError(); // ========== 浠呮柊澧炶繖涓�琛� ==========
     nextTick(() => {
       outboundInputRef.value?.focus();
     });
@@ -356,6 +372,7 @@
   const isDuplicate = scannedBarcodes.value.some(item => item.barcode === barcode);
   if (isDuplicate) {
     ElMessage.warning(`鏉$爜銆�${barcode}銆戝凡瀛樺湪锛屾棤闇�閲嶅鎵弿`);
+    playError(); // ========== 浠呮柊澧炶繖涓�琛� ==========
     formData.barcode = "";
     nextTick(() => barcodeInputRef.value?.focus()); // 鍘婚噸鍚庝粛鑱氱劍鏉$爜妗�
     return;
@@ -365,13 +382,18 @@
     loading.value = true;
 
     // 姝ラ1锛氭煡璇㈤噰璐崟鍙�
-    const purchaseOrderNo = await getPurchaseOrderByBarcode(barcode);
-    if (purchaseOrderNo) {
-      orderForm.purchaseOrderNo = purchaseOrderNo;
-    } else {
-      ElMessage.info("鏈煡璇㈠埌璇ユ潯鐮佸搴旂殑閲囪喘鍗曞彿锛岀户缁獙璇佹潯鐮佹湁鏁堟��");
-      formData.barcode = "";
-      nextTick(() => barcodeInputRef.value?.focus());
+    let purchaseOrderNo = '';
+    try {
+      purchaseOrderNo = await getPurchaseOrderByBarcode(barcode);
+      if (purchaseOrderNo) {
+        orderForm.purchaseOrderNo = purchaseOrderNo;
+      } else {
+        ElMessage.info("鏈煡璇㈠埌璇ユ潯鐮佸搴旂殑閲囪喘鍗曞彿锛岀户缁獙璇佹潯鐮佹湁鏁堟��");
+        playError(); // ========== 浠呮柊澧炶繖涓�琛� ==========
+      }
+    } catch (error) {
+      ElMessage.info("鏈煡璇㈠埌璇ユ潯鐮佸搴旂殑閲囪喘鍗曞彿锛岀户缁獙璇佹潯鐮佹湁鏁堟�э細" + error.message);
+      playError(); // ========== 浠呮柊澧炶繖涓�琛� ==========
     }
 
     // 姝ラ2锛氶獙璇佹潯鐮佸苟鑾峰彇鐗╂枡淇℃伅
@@ -384,6 +406,7 @@
     if (validateRes.status === true) {
       if (!Array.isArray(validateRes.data) || validateRes.data.length === 0) {
         ElMessage.warning("璇ユ潯鐮侀獙璇佹垚鍔燂紝浣嗘湭杩斿洖鐗╂枡淇℃伅");
+        playError(); // ========== 浠呮柊澧炶繖涓�琛� ==========
         formData.barcode = "";
         nextTick(() => barcodeInputRef.value?.focus());
       } else {
@@ -398,15 +421,18 @@
         }));
         scannedBarcodes.value.push(...newItems);
         ElMessage.success(`鎵弿鎴愬姛锛屾柊澧� ${newItems.length} 鏉$墿鏂欎俊鎭紝绱 ${scannedBarcodes.value.length} 鏉);
+        playSuccess(); // ========== 浠呮柊澧炶繖涓�琛� ==========
         formData.barcode = "";
       }
     } else {
-      ElMessage.error("鎵弿澶辫触锛�" + (validateRes.message || '鏉$爜楠岃瘉澶辫触'));
+      
+      playError(); // ========== 浠呮柊澧炶繖涓�琛� ==========
       formData.barcode = "";
       nextTick(() => barcodeInputRef.value?.focus());
     }
   } catch (error) {
     ElMessage.error(error.message);
+    playError(); // ========== 浠呮柊澧炶繖涓�琛� ==========
     formData.barcode = "";
     nextTick(() => barcodeInputRef.value?.focus());
   } finally {

--
Gitblit v1.9.3