From a6baad20258a61d9ce9a786029ca4cb63a7c992e Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期二, 21 四月 2026 17:31:33 +0800
Subject: [PATCH] 优化出入库功能,新增对未完全入库和出库商品的检查,更新相关API接口以支持审批人字段的统一命名

---
 src/pages/inventoryManagement/scanOut/index.vue |   44 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/src/pages/inventoryManagement/scanOut/index.vue b/src/pages/inventoryManagement/scanOut/index.vue
index e5ef746..8359451 100644
--- a/src/pages/inventoryManagement/scanOut/index.vue
+++ b/src/pages/inventoryManagement/scanOut/index.vue
@@ -188,8 +188,7 @@
 
         </view>
 
-        <view
-
+        <view v-if="!isFullyOutbound(item)"
               class="stocked-qty-block">
 
           <view class="kv-row stocked-qty-row">
@@ -512,6 +511,43 @@
 
   };
 
+  const parseUnqualifiedInboundQty = item => {
+    return (
+      parseOptionalNumber(
+        item?.unqualifiedStockedQuantity ??
+          item?.unQualifiedStockedQuantity ??
+          item?.unqualifiedStockedQty ??
+          item?.unqualifiedInboundQuantity
+      ) ?? 0
+    );
+  };
+
+  const parseUnqualifiedOutboundQty = item => {
+    return (
+      parseOptionalNumber(
+        item?.unqualifiedShippedQuantity ??
+          item?.unQualifiedShippedQuantity ??
+          item?.unqualifiedShippedQty ??
+          item?.unqualifiedOutboundQuantity
+      ) ?? 0
+    );
+  };
+
+  const isFullyOutbound = item => {
+    if (type.value === QUALITY_TYPE.unqualified) {
+      return parseUnqualifiedInboundQty(item) - parseUnqualifiedOutboundQty(item) <= 0;
+    }
+    const remaining = parseOptionalNumber(item?.remainingShippedQuantity);
+    if (remaining !== null) return remaining <= 0;
+    const fallback = parseOptionalNumber(defaultStockedQuantityFromRow(item, "outbound"));
+    return fallback !== null ? fallback <= 0 : false;
+  };
+
+  const hasEditableOutboundItems = computed(() => {
+    if (!recordList.value?.length) return false;
+    return recordList.value.some(item => !isFullyOutbound(item));
+  });
+
 
 
   const formatCell = (item, row, idx) => {
@@ -634,6 +670,10 @@
       return;
 
     }
+    if (!hasEditableOutboundItems.value) {
+      modal.msgError("璇ヤ骇鍝佸凡缁忓叏閮ㄥ嚭搴�");
+      return;
+    }
 
     const salesLedgerProductList = buildSalesLedgerProductList(recordList.value);
 

--
Gitblit v1.9.3