From 300ca9810420efbf8468c9d6f47bd364c9c72d5f Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期一, 12 一月 2026 11:09:20 +0800
Subject: [PATCH] 盘点更改

---
 项目代码/WIDESEA_WMSClient/src/extension/inbound/extend/OrderStockTake.vue |  339 ++++++++++++++------------------------------------------
 1 files changed, 86 insertions(+), 253 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 92a0bb3..fcb06f4 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"
@@ -15,7 +15,7 @@
           </el-tag>
         </div>
 
-        <!-- 鏍稿績杈撳叆琛ㄥ崟 -->
+        <!-- 鏍稿績杈撳叆琛ㄥ崟锛氱Щ闄ゆ墍鏈夋牎楠岃鍒� -->
         <el-form
           :model="formData"
           ref="formRef"
@@ -23,20 +23,8 @@
           class="stock-take-form"
           @submit.prevent
         >
-          <!-- 鏂欑鍙疯緭鍏ユ -->
-          <el-form-item
-            label="鏂欑鍙凤細"
-            name="boxNo"
-            :rules="[
-              {
-                required: true,
-                message: '璇锋壂鎻忔垨杈撳叆鏂欑鍙�',
-                trigger: 'blur',
-              },
-              { validator: validateBoxNo, trigger: 'blur' },
-            ]"
-            class="form-item"
-          >
+          <!-- 鏂欑鍙疯緭鍏ユ锛氱Щ闄ゆ牎楠岃鍒� -->
+          <el-form-item label="鏂欑鍙凤細" name="boxNo" class="form-item">
             <el-input
               ref="boxNoInputRef"
               v-model="formData.boxNo"
@@ -54,30 +42,19 @@
                   type="primary"
                   size="small"
                   @click="handleBoxNoScan"
-                  :disabled="!formData.boxNo.trim() || loading"
+                  :disabled="loading"
                   class="input-btn"
                 ></el-button>
               </template>
             </el-input>
           </el-form-item>
 
-          <!-- 鏂板锛氱珯鍙伴�夋嫨涓嬫媺妗� -->
-          <el-form-item
-            label="鍥炲簱绔欏彴锛�"
-            name="station"
-            :rules="[
-              {
-                required: true,
-                message: '璇烽�夋嫨鍥炲簱绔欏彴',
-                trigger: 'blur',
-              },
-            ]"
-            class="form-item"
-          >
+          <!-- 绔欏彴閫夋嫨涓嬫媺妗嗭細绉婚櫎鏍¢獙瑙勫垯 -->
+          <el-form-item label="鍥炲簱绔欏彴锛�" name="station" class="form-item">
             <el-select
               v-model="selectedStation"
               placeholder="璇烽�夋嫨鍥炲簱绔欏彴"
-              :disabled="!formData.boxNo.trim() || loading"
+              :disabled="loading"
               class="custom-input"
               :class="{ 'has-value': selectedStation }"
             >
@@ -90,23 +67,15 @@
             </el-select>
           </el-form-item>
 
-          <!-- 鏉$爜杈撳叆妗� -->
-          <el-form-item
-            label="鐩樼偣鏉$爜锛�"
-            name="barcode"
-            :rules="[
-              { required: true, message: '璇锋壂鎻忔垨杈撳叆鏉$爜', trigger: 'blur' },
-              { validator: validateBarcode, trigger: 'blur' },
-            ]"
-            class="form-item"
-          >
+          <!-- 鏉$爜杈撳叆妗嗭細绉婚櫎鏍¢獙瑙勫垯 -->
+          <el-form-item label="鐩樼偣鏉$爜锛�" name="barcode" class="form-item">
             <el-input
               ref="barcodeInputRef"
               v-model="formData.barcode"
               placeholder="璇蜂娇鐢ㄦ壂鐮佹灙鎵弿鏉$爜锛屾垨鎵嬪姩杈撳叆"
               clearable
               @keydown.enter="debouncedHandleBarcodeScan"
-              :disabled="!formData.boxNo.trim() || loading"
+              :disabled="loading"
               class="custom-input"
               :class="{ 'has-value': formData.barcode.trim() }"
             >
@@ -116,11 +85,7 @@
                   type="primary"
                   size="small"
                   @click="handleBarcodeScan"
-                  :disabled="
-                    !formData.boxNo.trim() ||
-                    !formData.barcode.trim() ||
-                    loading
-                  "
+                  :disabled="loading"
                   class="input-btn"
                 ></el-button>
               </template>
@@ -128,11 +93,7 @@
           </el-form-item>
 
           <!-- 搴撳瓨鏁伴噺妗嗭紙鍙锛� -->
-          <el-form-item
-            label="搴撳瓨鏁伴噺锛�"
-            name="stockQuantity"
-            class="form-item"
-          >
+          <el-form-item label="搴撳瓨鏁伴噺锛�" name="stockQuantity" class="form-item">
             <el-input
               v-model="formData.stockQuantity"
               placeholder="鎵弿鏉$爜鍚庤嚜鍔ㄥ~鍏�"
@@ -142,41 +103,25 @@
             ></el-input>
           </el-form-item>
 
-          <!-- 瀹為檯鐩樼偣鏁伴噺 -->
-          <el-form-item
-            label="瀹為檯鐩樼偣鏁伴噺锛�"
-            name="actualQuantity"
-            :rules="[
-              {
-                required: true,
-                message: '璇疯緭鍏ュ疄闄呯洏鐐规暟閲�',
-                trigger: 'blur',
-              },
-              { type: 'number', message: '璇疯緭鍏ユ湁鏁堢殑鏁板瓧', trigger: 'blur' },
-              { validator: validateActualQuantity, trigger: 'blur' },
-            ]"
-            class="form-item"
-          >
+          <!-- 瀹為檯鐩樼偣鏁伴噺锛氬彧璇伙紝榛樿0 -->
+          <el-form-item label="瀹為檯鐩樼偣鏁伴噺锛�" name="actualQuantity" class="form-item">
             <el-input
-              v-model.number="formData.actualQuantity"
-              placeholder="璇疯緭鍏ュ疄闄呯洏鐐规暟閲�"
-              type="number"
-              clearable
-              @keydown.enter="handleStockTakeComplete"
-              :disabled="!formData.stockQuantity || loading"
-              class="custom-input"
+              v-model="formData.actualQuantity"
+              placeholder="榛樿鍊间负0"
+              readonly
+              class="custom-input custom-readonly-input"
               :class="{ 'has-value': formData.actualQuantity !== '' }"
             ></el-input>
           </el-form-item>
         </el-form>
 
-        <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
+        <!-- 鎿嶄綔鎸夐挳鍖哄煙锛氱畝鍖栫鐢ㄩ�昏緫 -->
         <div class="action-buttons">
           <el-button
             type="info"
             size="small"
             @click="handleBoxReturn"
-            :disabled="!formData.boxNo.trim() || !selectedStation || loading"
+            :disabled="loading"
             class="return-btn"
           >
             <Return /> 鏂欑鍥炲簱
@@ -185,7 +130,7 @@
             type="primary"
             size="small"
             @click="handleStockTakeComplete"
-            :disabled="isFormCompleteDisabled"
+            :disabled="loading"
             class="complete-btn"
           >
             <Check /> 鐩樼偣瀹屾垚
@@ -211,7 +156,6 @@
 
 import VolBox from "@/components/basic/VolBox.vue";
 import http from "@/api/http";
-// 鏂板锛氬紩鍏ョ珯鍙扮鐞嗗伐鍏凤紙鍜岀ず渚嬩唬鐮佷繚鎸佷竴鑷达級
 import { stationManager, STATION_STORAGE_KEY } from "@/../src/uitils/stationManager";
 
 // 鍝嶅簲寮忓彉閲� - 鍗曟嵁鍙�
@@ -225,18 +169,18 @@
 const formData = reactive({
   boxNo: "", // 鏂欑鍙�
   barcode: "", // 鐩樼偣鏉$爜
-  stockQuantity: "", // 搴撳瓨鏁伴噺锛堝彧璇伙級
-  actualQuantity: "", // 瀹為檯鐩樼偣鏁伴噺
+  stockQuantity: "", // 搴撳瓨鏁伴噺
+  actualQuantity: 0, // 瀹為檯鐩樼偣鏁伴噺榛樿0
 });
 const loading = ref(false);
 const formRef = ref(null);
 
-// 鏂板锛氱珯鍙扮浉鍏冲搷搴斿紡鏁版嵁锛堜豢鐓хず渚嬩唬鐮侊級
+// 绔欏彴鐩稿叧鍝嶅簲寮忔暟鎹�
 const stations = ref([
   { label: "绔欏彴2", value: "2-1" },
   { label: "绔欏彴3", value: "3-1" },
 ]);
-const selectedStation = ref(stationManager.getStation() || ""); // 榛樿閫変腑缂撳瓨鐨勭珯鍙�
+const selectedStation = ref(stationManager.getStation() || "");
 
 // 妯℃澘寮曠敤
 const boxNoInputRef = ref(null);
@@ -247,39 +191,24 @@
   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鏄厑璁哥殑
-  );
-});
-
 // 缁勪欢鎸傝浇鏃惰仛鐒﹀埌鏂欑鍙疯緭鍏ユ
 onMounted(() => {
   nextTick(() => {
     boxNoInputRef.value?.focus();
   });
-  // 鐩戝惉绐楀彛澶у皬鍙樺寲
   window.addEventListener("resize", () => {});
 });
 
-// 鐩戝惉鏂欑鍙峰彉鍖栵紝娓呯┖鍚庣画鐩稿叧瀛楁
+// 鐩戝惉鏂欑鍙峰彉鍖栵紝娓呯┖鍚庣画鐩稿叧瀛楁锛堜粎淇濈暀鍩虹娓呯┖閫昏緫锛�
 watch(
   () => formData.boxNo,
   (newVal) => {
     if (!newVal.trim()) {
       formData.barcode = "";
       formData.stockQuantity = "";
-      formData.actualQuantity = "";
-      // 鏂板锛氭枡绠卞彿娓呯┖鏃讹紝閲嶇疆绔欏彴閫夋嫨
+      formData.actualQuantity = 0;
       selectedStation.value = stationManager.getStation() || "";
+      orderNo.value = "";
     }
   },
   { immediate: true }
@@ -296,17 +225,16 @@
   };
 };
 
-// 鎵撳紑寮圭獥骞舵帴鏀跺崟鎹彿
-const open = (receiptNo) => {
+// 鎵撳紑寮圭獥
+const open = () => {
   showStockTakeBox.value = true;
-  orderNo.value = receiptNo;
   // 閲嶇疆琛ㄥ崟
   formData.boxNo = "";
   formData.barcode = "";
   formData.stockQuantity = "";
-  formData.actualQuantity = "";
-  // 鏂板锛氭墦寮�寮圭獥鏃堕噸缃珯鍙伴�夋嫨锛堥粯璁ゅ彇缂撳瓨鐨勭珯鍙帮級
+  formData.actualQuantity = 0;
   selectedStation.value = stationManager.getStation() || "";
+  orderNo.value = "";
   nextTick(() => {
     boxNoInputRef.value?.focus();
   });
@@ -321,43 +249,6 @@
   orderNo.value = "";
 };
 
-// 鏂欑鍙烽獙璇侊紙浼樺寲锛氭湁鍊兼椂浠呴獙璇侀暱搴︼紝鏃犲�兼椂瑙﹀彂蹇呭~锛�
-const validateBoxNo = (rule, value, callback) => {
-  // 鏈夊�兼椂楠岃瘉闀垮害
-  if (value && value.trim().length < 3) {
-    callback(new Error("鏂欑鍙烽暱搴︿笉鑳藉皯浜�3浣�"));
-  } 
-  // 鏃犲�兼椂鐢眗equired瑙勫垯澶勭悊锛岃繖閲屼笉閲嶅鎻愮ず
-  else {
-    callback();
-  }
-};
-
-// 鏉$爜楠岃瘉锛堜紭鍖栵細鏈夊�兼椂浠呴獙璇侀暱搴︼級
-const validateBarcode = (rule, value, callback) => {
-  if (value && value.trim().length < 6) {
-    callback(new Error("鏉$爜闀垮害涓嶈兘灏戜簬6浣�"));
-  } else {
-    callback();
-  }
-};
-
-// 瀹為檯鐩樼偣鏁伴噺楠岃瘉锛氬厑璁�0锛屼絾涓嶅厑璁稿皬浜�0
-const validateActualQuantity = (rule, value, callback) => {
-  // 绌哄�肩敱required瑙勫垯澶勭悊锛岃繖閲屽彧楠岃瘉鏁板�煎悎娉曟��
-  if (value === null || value === undefined || value === "") {
-    callback(); // 绌哄�间笉鍦ㄨ繖閲屾彁绀猴紝浜ょ粰required瑙勫垯
-  } 
-  // 楠岃瘉鏁板�兼槸鍚﹀皬浜�0
-  else if (value < 0) {
-    callback(new Error("瀹為檯鐩樼偣鏁伴噺涓嶈兘灏忎簬0"));
-  } 
-  // 楠岃瘉閫氳繃锛堝厑璁�0锛�
-  else {
-    callback();
-  }
-};
-
 // 鏂欑鍙峰け鐒﹀鐞�
 const handleBoxNoBlur = () => {
   if (formData.boxNo.trim() && boxNoInputRef.value?.input) {
@@ -365,39 +256,29 @@
   }
 };
 
-// 鏂欑鍙锋壂鎻忛獙璇侊紙鍚庣鎺ュ彛锛�
-const validateBoxNoApi = async (boxNo) => {
+// 鏂欑鍙锋壂鎻忓鐞嗭細绉婚櫎鍓嶇鏍¢獙锛岀洿鎺ヨ皟鐢ㄦ帴鍙�
+const handleBoxNoScan = async () => {
+  const boxNo = formData.boxNo.trim();
+  if (!boxNo) {
+    ElMessage.warning("璇疯緭鍏ユ枡绠卞彿");
+    return;
+  }
+
   try {
+    loading.value = true;
+    // 鐩存帴璋冪敤鎺ュ彛锛屼笉鍋氬墠绔牎楠�
     const res = await http.post(
-      `/api/TakeStockOrder/ValidateBoxNo?orderNo=${encodeURIComponent(
-        orderNo.value
-      )}&boxNo=${encodeURIComponent(boxNo)}`,
+      `/api/TakeStockOrder/ValidateBoxNo?orderNo=${encodeURIComponent(orderNo.value)}&boxNo=${encodeURIComponent(boxNo)}`,
       "楠岃瘉鏂欑鍙蜂腑..."
     );
 
     if (!res.status) {
       throw new Error(res.message || "鏂欑鍙烽獙璇佸け璐�");
     }
-    return res.data;
-  } catch (error) {
-    throw error;
-  }
-};
-
-// 鏂欑鍙锋壂鎻忓鐞�
-const handleBoxNoScan = async () => {
-  if (!formRef.value) return;
-  // 鎵嬪姩瑙﹀彂楠岃瘉锛堜粎楠岃瘉褰撳墠瀛楁锛�
-  const valid = await formRef.value.validateField("boxNo");
-  if (valid !== true) return;
-
-  const boxNo = formData.boxNo.trim();
-  if (!boxNo) return;
-
-  try {
-    loading.value = true;
-    await validateBoxNoApi(boxNo);
-    ElMessage.success(`鏂欑鍙� ${boxNo} 楠岃瘉閫氳繃`);
+    if (res.data?.takeStockOrder) {
+      orderNo.value = res.data.takeStockOrder;
+    }
+    ElMessage.success(`鏂欑鍙� ${boxNo} 楠岃瘉閫氳繃锛屽崟鎹彿锛�${orderNo.value}`);
     nextTick(() => {
       barcodeInputRef.value?.focus();
     });
@@ -413,13 +294,20 @@
   }
 };
 
-// 鏉$爜鎵弿楠岃瘉锛堝悗绔帴鍙o級
-const validateBarcodeApi = async (boxNo, barcode) => {
+// 鏉$爜鎵弿澶勭悊锛氱Щ闄ゅ墠绔牎楠岋紝鐩存帴璋冪敤鎺ュ彛
+const handleBarcodeScan = async () => {
+  const boxNo = formData.boxNo.trim();
+  const barcode = formData.barcode.trim();
+  if (!boxNo || !barcode) {
+    ElMessage.warning("璇疯緭鍏ユ枡绠卞彿鍜屾潯鐮�");
+    return;
+  }
+
   try {
+    loading.value = true;
+    // 鐩存帴璋冪敤鎺ュ彛锛屼笉鍋氬墠绔牎楠�
     const res = await http.post(
-      `/api/TakeStockOrder/ValidateBarcode?boxNo=${encodeURIComponent(
-        boxNo
-      )}&barcode=${encodeURIComponent(barcode)}`,
+      `/api/TakeStockOrder/ValidateBarcode?boxNo=${encodeURIComponent(boxNo)}&barcode=${encodeURIComponent(barcode)}`,
       "楠岃瘉鏉$爜涓�..."
     );
 
@@ -427,41 +315,13 @@
       throw new Error(res.message || "鏉$爜楠岃瘉澶辫触");
     }
 
-    if (
-      res.data?.stockQuantity === undefined ||
-      res.data?.stockQuantity === null
-    ) {
-      throw new Error("鏈煡璇㈠埌璇ユ潯鐮佺殑搴撳瓨鏁伴噺");
+    if (res.data?.stockQuantity !== undefined && res.data?.stockQuantity !== null) {
+      formData.stockQuantity = res.data.stockQuantity;
     }
-
-    return res.data;
-  } catch (error) {
-    throw error;
-  }
-};
-
-// 鏉$爜鎵弿澶勭悊
-const handleBarcodeScan = async () => {
-  if (!formRef.value) return;
-  const valid = await formRef.value.validateField("barcode");
-  if (valid !== true) return;
-
-  const boxNo = formData.boxNo.trim();
-  const barcode = formData.barcode.trim();
-  if (!boxNo || !barcode) return;
-
-  try {
-    loading.value = true;
-    const result = await validateBarcodeApi(boxNo, barcode);
-    formData.stockQuantity = result.stockQuantity;
-    ElMessage.success(
-      `鏉$爜 ${barcode} 楠岃瘉閫氳繃锛屽簱瀛樻暟閲忥細${result.stockQuantity}`
-    );
+    ElMessage.success(`鏉$爜 ${barcode} 楠岃瘉閫氳繃锛屽簱瀛樻暟閲忥細${formData.stockQuantity}`);
     nextTick(() => {
-      const actualQuantityInput = document.querySelector(
-        ".form-item:last-child .el-input__inner"
-      );
-      actualQuantityInput?.focus();
+      const actualQuantityInput = document.querySelector(".form-item:last-child .el-input__inner");
+      actualQuantityInput?.blur();
     });
   } catch (error) {
     ElMessage.error(error.message);
@@ -475,32 +335,33 @@
   }
 };
 
-// 鐩樼偣瀹屾垚鎻愪氦
+// 鐩樼偣瀹屾垚鎻愪氦锛氬畬鍏ㄧЩ闄ゅ墠绔牎楠岋紝鐩存帴浼犲�肩粰鍚庣
 const handleStockTakeComplete = async () => {
-  if (!formRef.value) return;
-  // 鍏ㄨ〃鍗曢獙璇�
-  const valid = await formRef.value.validate();
-  if (!valid) return;
-
-  // 棰濆妫�鏌ュ疄闄呯洏鐐规暟閲忔槸鍚﹀皬浜�0
-  if (formData.actualQuantity < 0) {
-    ElMessage.error("瀹為檯鐩樼偣鏁伴噺涓嶈兘灏忎簬0");
+  // 浠呭仛鏈�鍩虹鐨勭┖鎻愮ず锛堝彲閫夛紝涔熷彲浠ュ幓鎺夛級
+  if (!formData.boxNo.trim()) {
+    ElMessage.warning("璇疯緭鍏ユ枡绠卞彿");
+    return;
+  }
+  if (!formData.barcode.trim()) {
+    ElMessage.warning("璇疯緭鍏ユ潯鐮�");
     return;
   }
 
+  // 鐩存帴鑾峰彇鎵�鏈夊�硷紝涓嶅仛浠讳綍鏍¢獙
   const { boxNo, barcode, actualQuantity, stockQuantity } = formData;
   const receiptNo = orderNo.value;
 
   try {
     loading.value = true;
 
+    // 鐩存帴浼犲�肩粰鍚庣锛屼笉鍋氫换浣曞墠绔牎楠�
     const res = await http.post(
       "/api/TakeStockOrder/CompleteStockTake",
       {
         orderNo: receiptNo,
         boxNo,
         barcode,
-        actualQuantity,
+        actualQuantity, // 鍥哄畾浼�0
         stockQuantity,
       },
       {
@@ -512,7 +373,7 @@
       ElMessage.success("鐩樼偣瀹屾垚锛屾彁浜ゆ垚鍔燂紒");
       formData.barcode = "";
       formData.stockQuantity = "";
-      formData.actualQuantity = "";
+      formData.actualQuantity = 0;
       nextTick(() => {
         barcodeInputRef.value?.focus();
       });
@@ -527,16 +388,11 @@
   }
 };
 
-// 鏂欑鍥炲簱鍔熻兘锛堟牳蹇冧慨鏀癸細澧炲姞绔欏彴楠岃瘉 + 浼犲叆sourceAddress鍙傛暟锛�
+// 鏂欑鍥炲簱鍔熻兘锛氱畝鍖栨牎楠岋紝鐩存帴浼犲��
 const handleBoxReturn = async () => {
   const boxNo = formData.boxNo.trim();
-  // 鏂板锛氶獙璇佺珯鍙版槸鍚﹂�夋嫨
   if (!boxNo) {
-    ElMessage.warning("璇峰厛杈撳叆鎴栨壂鎻忔枡绠卞彿");
-    return;
-  }
-  if (!selectedStation.value) {
-    ElMessage.warning("璇烽�夋嫨鍥炲簱绔欏彴");
+    ElMessage.warning("璇疯緭鍏ユ枡绠卞彿");
     return;
   }
 
@@ -552,11 +408,9 @@
 
     loading.value = true;
 
-    // 鏂板锛氭嫾鎺ourceAddress鍙傛暟锛堢珯鍙版暟鎹級鍒版帴鍙h姹備腑
+    // 鐩存帴浼犲�肩粰鍚庣锛屼笉鍋氫弗鏍兼牎楠�
     const res = await http.post(
-      `/api/TakeStockOrder/ReturnBox?boxNo=${encodeURIComponent(boxNo)}&orderNo=${encodeURIComponent(
-        orderNo.value
-      )}&sourceAddress=${encodeURIComponent(selectedStation.value)}`, // 鏂板sourceAddress鍙傛暟
+      `/api/TakeStockOrder/ReturnBox?boxNo=${encodeURIComponent(boxNo)}&orderNo=${encodeURIComponent(orderNo.value)}&sourceAddress=${encodeURIComponent(selectedStation.value)}`,
       "鏂欑鍥炲簱涓�..."
     );
 
@@ -565,8 +419,9 @@
       formData.boxNo = "";
       formData.barcode = "";
       formData.stockQuantity = "";
-      formData.actualQuantity = "";
-      selectedStation.value = stationManager.getStation() || ""; // 閲嶇疆绔欏彴閫夋嫨
+      formData.actualQuantity = 0;
+      selectedStation.value = stationManager.getStation() || "";
+      orderNo.value = "";
       nextTick(() => {
         boxNoInputRef.value?.focus();
       });
@@ -603,7 +458,7 @@
 </script>
 
 <style scoped>
-/* 涓诲鍣ㄦ牱寮� - 浼樺寲闂磋窛鍜屽搷搴斿紡 */
+/* 鏍峰紡瀹屽叏淇濈暀锛屾棤淇敼 */
 .stock-take-container {
   width: 100%;
   display: flex;
@@ -612,7 +467,6 @@
   padding: 8px 0;
 }
 
-/* 鍗曟嵁淇℃伅鏍峰紡 - 浼樺寲瑙嗚灞傜骇 */
 .receipt-info {
   margin-bottom: 4px;
 }
@@ -633,7 +487,6 @@
   margin-left: 6px;
 }
 
-/* 琛ㄥ崟鏍峰紡 - 浼樺寲闃村奖鍜屽唴杈硅窛 */
 .stock-take-form {
   width: 100%;
   background-color: #ffffff;
@@ -647,17 +500,15 @@
   margin-bottom: 16px;
 }
 
-/* 杈撳叆妗嗘牳蹇冩牱寮� - 浼樺寲鐘舵�佹樉绀� */
 .custom-input {
   width: 100%;
   position: relative;
 }
 
-/* 鏈夊�兼椂闅愯棌鍗犱綅绗� + 浼樺寲杈规 */
 .custom-input.has-value :deep(.el-input__inner),
 .custom-input.has-value :deep(.el-select__wrapper) {
-  --el-input-placeholder-color: transparent; /* 闅愯棌鍗犱綅绗� */
-  border-color: #8cc5ff; /* 娴呰摑杈规锛屽尯鍒嗘棤鍊肩姸鎬� */
+  --el-input-placeholder-color: transparent;
+  border-color: #8cc5ff;
   background-color: #ffffff;
 }
 
@@ -673,7 +524,6 @@
   padding: 0 12px;
 }
 
-/* 鑱氱劍鏍峰紡浼樺寲 */
 .custom-input :deep(.el-input__inner:focus),
 .custom-input :deep(.el-select__wrapper:focus) {
   border-color: #409eff;
@@ -682,7 +532,6 @@
   outline: none;
 }
 
-/* 娓呴櫎鎸夐挳鏍峰紡浼樺寲 */
 .custom-input :deep(.el-input__clear) {
   color: #91c9f7;
   width: 18px;
@@ -693,7 +542,6 @@
   color: #409eff;
 }
 
-/* 鍙杈撳叆妗嗘牱寮� - 澧炲己鍖哄垎搴� */
 .custom-readonly-input :deep(.el-input__inner) {
   background-color: #f0f8fb;
   color: #1989fa;
@@ -703,7 +551,6 @@
   padding-right: 12px;
 }
 
-/* 杈撳叆妗嗘寜閽牱寮� - 浼樺寲灏哄鍜宧over鏁堟灉 */
 .input-btn {
   border-radius: 0 8px 8px 0 !important;
   height: 42px;
@@ -720,28 +567,23 @@
   transform: translateY(-1px);
 }
 
-/* 琛ㄥ崟楠岃瘉閿欒鏍峰紡 - 鍏抽敭锛氭湁鍊兼椂涓嶆樉绀洪敊璇竟妗� */
 .form-item :deep(.el-form-item__error) {
   font-size: 12px;
   color: #f56c6c;
   margin-top: 4px;
-  /* 浠呭湪杈撳叆妗嗕负绌轰笖楠岃瘉澶辫触鏃舵樉绀� */
   display: none;
 }
 
-/* 鍙湁杈撳叆妗嗕负绌� + 楠岃瘉澶辫触鏃舵樉绀洪敊璇彁绀� */
 .form-item:deep(.el-form-item--error) .custom-input:not(.has-value) + .el-form-item__error {
   display: block;
 }
 
-/* 鏈夊�兼椂鍗充娇楠岃瘉澶辫触锛屼篃涓嶆樉绀洪敊璇竟妗� */
 .custom-input.has-value :deep(.el-input__inner.el-input__inner--error),
 .custom-input.has-value :deep(.el-select__wrapper.el-select__wrapper--error) {
   border-color: #8cc5ff;
   box-shadow: none;
 }
 
-/* 鎿嶄綔鎸夐挳鍖哄煙 - 浼樺寲闂磋窛鍜屽搷搴斿紡 */
 .action-buttons {
   display: flex;
   justify-content: flex-end;
@@ -750,7 +592,6 @@
   flex-wrap: wrap;
 }
 
-/* 鍥炲簱鎸夐挳鏍峰紡 - 浼樺寲浜や簰 */
 .return-btn {
   border-radius: 8px;
   padding: 9px 20px;
@@ -779,7 +620,6 @@
   box-shadow: none;
 }
 
-/* 鐩樼偣瀹屾垚鎸夐挳鏍峰紡 - 浼樺寲浜や簰 */
 .complete-btn {
   border-radius: 8px;
   padding: 9px 20px;
@@ -806,7 +646,6 @@
   box-shadow: none;
 }
 
-/* 鍙栨秷鎸夐挳鏍峰紡 - 浼樺寲鐐瑰嚮鍖哄煙 */
 .cancel-btn {
   color: #666666;
   font-size: 14px;
@@ -821,7 +660,6 @@
   background-color: #f0f8fb !important;
 }
 
-/* 寮圭獥鏁翠綋鏍峰紡 - 浼樺寲鍦嗚鍜岄槾褰� */
 .custom-vol-box {
   border-radius: 16px !important;
   overflow: hidden;
@@ -844,7 +682,6 @@
   padding: 16px 24px;
 }
 
-/* 鍝嶅簲寮忛�傞厤 - 灏忓睆骞曚紭鍖� */
 @media (max-width: 768px) {
   .stock-take-form {
     padding: 16px;
@@ -869,14 +706,12 @@
 </style>
 
 <style>
-/* 鍏ㄥ眬琛ュ厖鏍峰紡 - 缁熶竴涓婚 */
 .el-tag--primary {
   --el-tag-bg-color: #e8f4f8;
   --el-tag-border-color: #409eff;
   --el-tag-text-color: #1989fa;
 }
 
-/* 鍗犱綅绗︽牱寮� - 缁熶竴棰滆壊 */
 .el-input__inner::-webkit-input-placeholder,
 .el-select__placeholder {
   color: #b3d8ff;
@@ -901,7 +736,6 @@
   font-size: 13px;
 }
 
-/* 淇℃伅鎸夐挳鍏ㄥ眬鏍峰紡 */
 .el-button--info {
   --el-button-bg-color: #e8f4f8;
   --el-button-border-color: #409eff;
@@ -911,7 +745,6 @@
   --el-button-hover-text-color: #1989fa;
 }
 
-/* 纭寮圭獥鏍峰紡浼樺寲 */
 .el-message-box {
   border-radius: 12px !important;
   box-shadow: 0 4px 20px rgba(64, 158, 255, 0.15);

--
Gitblit v1.9.3