From 1866b69e8f67e382a0a75268d63e6418c8ae02e7 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期二, 13 一月 2026 09:55:01 +0800
Subject: [PATCH] 1

---
 项目代码/WIDESEA_WMSClient/src/extension/inbound/extend/OrderStockTake.vue |   51 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 34 insertions(+), 17 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/extend/OrderStockTake.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/extend/OrderStockTake.vue"
index eb61cbc..92a0bb3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/extend/OrderStockTake.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEA_WMSClient/src/extension/inbound/extend/OrderStockTake.vue"
@@ -159,13 +159,13 @@
           >
             <el-input
               v-model.number="formData.actualQuantity"
-              placeholder="璇疯緭鍏ュ疄闄呯洏鐐规暟閲忥紙澶т簬0锛�"
+              placeholder="璇疯緭鍏ュ疄闄呯洏鐐规暟閲�"
               type="number"
               clearable
               @keydown.enter="handleStockTakeComplete"
               :disabled="!formData.stockQuantity || loading"
               class="custom-input"
-              :class="{ 'has-value': formData.actualQuantity }"
+              :class="{ 'has-value': formData.actualQuantity !== '' }"
             ></el-input>
           </el-form-item>
         </el-form>
@@ -185,13 +185,7 @@
             type="primary"
             size="small"
             @click="handleStockTakeComplete"
-            :disabled="
-              loading ||
-              !formData.boxNo.trim() ||
-              !formData.barcode.trim() ||
-              !formData.stockQuantity ||
-              !formData.actualQuantity
-            "
+            :disabled="isFormCompleteDisabled"
             class="complete-btn"
           >
             <Check /> 鐩樼偣瀹屾垚
@@ -251,6 +245,20 @@
 // 妫�娴嬫槸鍚︿负绉诲姩绔�
 const isMobile = computed(() => {
   return window.innerWidth < 768;
+});
+
+// 璁$畻灞炴�э細鐩樼偣瀹屾垚鎸夐挳鏄惁绂佺敤
+const isFormCompleteDisabled = computed(() => {
+  return (
+    loading.value ||
+    !formData.boxNo.trim() ||
+    !formData.barcode.trim() ||
+    !formData.stockQuantity ||
+    formData.actualQuantity === "" ||
+    formData.actualQuantity === null ||
+    formData.actualQuantity === undefined ||
+    Number(formData.actualQuantity) < 0 // 灏忎簬0鏃剁鐢紝0鏄厑璁哥殑
+  );
 });
 
 // 缁勪欢鎸傝浇鏃惰仛鐒﹀埌鏂欑鍙疯緭鍏ユ
@@ -334,15 +342,18 @@
   }
 };
 
-// 瀹為檯鐩樼偣鏁伴噺楠岃瘉锛堜紭鍖栵細鏈夊�兼椂楠岃瘉鍚堟硶鎬э級
+// 瀹為檯鐩樼偣鏁伴噺楠岃瘉锛氬厑璁�0锛屼絾涓嶅厑璁稿皬浜�0
 const validateActualQuantity = (rule, value, callback) => {
-  if (value === null || value === undefined) {
-    callback(new Error("璇疯緭鍏ュ疄闄呯洏鐐规暟閲�"));
-  } else if (value <= 0) {
-    callback(new Error("瀹為檯鐩樼偣鏁伴噺蹇呴』澶т簬0"));
-  } else if (!Number.isInteger(value)) {
-    callback(new Error("瀹為檯鐩樼偣鏁伴噺蹇呴』鏄暣鏁�"));
-  } else {
+  // 绌哄�肩敱required瑙勫垯澶勭悊锛岃繖閲屽彧楠岃瘉鏁板�煎悎娉曟��
+  if (value === null || value === undefined || value === "") {
+    callback(); // 绌哄�间笉鍦ㄨ繖閲屾彁绀猴紝浜ょ粰required瑙勫垯
+  } 
+  // 楠岃瘉鏁板�兼槸鍚﹀皬浜�0
+  else if (value < 0) {
+    callback(new Error("瀹為檯鐩樼偣鏁伴噺涓嶈兘灏忎簬0"));
+  } 
+  // 楠岃瘉閫氳繃锛堝厑璁�0锛�
+  else {
     callback();
   }
 };
@@ -471,6 +482,12 @@
   const valid = await formRef.value.validate();
   if (!valid) return;
 
+  // 棰濆妫�鏌ュ疄闄呯洏鐐规暟閲忔槸鍚﹀皬浜�0
+  if (formData.actualQuantity < 0) {
+    ElMessage.error("瀹為檯鐩樼偣鏁伴噺涓嶈兘灏忎簬0");
+    return;
+  }
+
   const { boxNo, barcode, actualQuantity, stockQuantity } = formData;
   const receiptNo = orderNo.value;
 

--
Gitblit v1.9.3