From 38d723b6de39a6882a537a691159e40bd4c0e837 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期二, 12 五月 2026 09:25:27 +0800
Subject: [PATCH] 合格入库扫码发货

---
 src/pages/inventoryManagement/scanIn/index.vue |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/src/pages/inventoryManagement/scanIn/index.vue b/src/pages/inventoryManagement/scanIn/index.vue
index 889ceea..140a2fd 100644
--- a/src/pages/inventoryManagement/scanIn/index.vue
+++ b/src/pages/inventoryManagement/scanIn/index.vue
@@ -303,6 +303,11 @@
     item.operateQuantity = String(Math.max(0, n));
   };
 
+  const hasEditableInboundItems = computed(() => {
+    if (!recordList.value?.length) return false;
+    return recordList.value.some(item => !isFullyStocked(item));
+  });
+
   const formatCell = (item, row, idx) => {
     if (row.key === "index") {
       const v = item.index;
@@ -404,6 +409,7 @@
   };
 
   const handleSelectContact = data => {
+    if (data?.source === "scanShip") return;
     const { stepIndex, contact } = data || {};
     if (stepIndex === null || stepIndex === undefined) return;
     const idx = Number(stepIndex);
@@ -426,6 +432,10 @@
       modal.msgError("缂哄皯璁㈠崟淇℃伅锛岃閲嶆柊鎵爜");
       return;
     }
+    if (!hasEditableInboundItems.value) {
+      modal.msgError("璇ヤ骇鍝佸凡缁忓叏閮ㄥ叆搴�");
+      return;
+    }
     const salesLedgerProductList = buildSalesLedgerProductList(recordList.value);
     if (!hasAnyPositiveStockedQty(salesLedgerProductList)) {
       modal.msgError("璇疯嚦灏戝~鍐欎竴琛屽ぇ浜� 0 鐨勫叆搴撴暟閲�");
@@ -439,7 +449,10 @@
     }
     const runApi = currentSubmitConfig.runApi;
     const approveUserIds = stockApproverNodes.value.map(node => node.userId).join(",");
-    const payload = currentSubmitConfig.payloadBuilder(salesLedgerProductList, approveUserIds);
+    const payload = currentSubmitConfig.payloadBuilder(
+      salesLedgerProductList,
+      approveUserIds
+    );
     try {
       submitLoading.value = true;
       modal.loading("鎻愪氦涓�...");

--
Gitblit v1.9.3