From 1bd1061c60c286e3b2216a67090c4976c9c7b35f Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期六, 18 四月 2026 17:50:29 +0800
Subject: [PATCH] 出入库扫码
---
src/pages/inventoryManagement/scanIn/index.vue | 81 +++++++++++++++++++++++++++++++++++-----
1 files changed, 70 insertions(+), 11 deletions(-)
diff --git a/src/pages/inventoryManagement/scanIn/index.vue b/src/pages/inventoryManagement/scanIn/index.vue
index 8479acd..147a7f0 100644
--- a/src/pages/inventoryManagement/scanIn/index.vue
+++ b/src/pages/inventoryManagement/scanIn/index.vue
@@ -99,7 +99,7 @@
<text class="kv-label">鍏ュ簱鏁伴噺</text>
<view class="kv-value stocked-qty-input-wrap">
<up-input :key="'stocked-' + idx"
- v-model="item.stockedQuantity"
+ v-model="item.operateQuantity"
type="number"
placeholder="璇疯緭鍏ュ叆搴撴暟閲�"
clearable
@@ -166,7 +166,22 @@
};
};
- const { detailFieldRows, summaryFieldRows } = useScanOutFieldRows(contractKind);
+ const { detailFieldRows: rawDetailFieldRows, summaryFieldRows: rawSummaryFieldRows } = useScanOutFieldRows(
+ contractKind,
+ "inbound"
+ );
+ const shouldShowInboundQuantityField = key => {
+ if (type.value === QUALITY_TYPE.qualified) return key !== "unqualifiedStockedQuantity";
+ if (type.value === QUALITY_TYPE.unqualified)
+ return key !== "stockedQuantity" && key !== "remainingQuantity";
+ return true;
+ };
+ const detailFieldRows = computed(() =>
+ rawDetailFieldRows.value.filter(row => shouldShowInboundQuantityField(row.key))
+ );
+ const summaryFieldRows = computed(() =>
+ rawSummaryFieldRows.value.filter(row => shouldShowInboundQuantityField(row.key))
+ );
const emptyDash = v => {
if (v === null || v === undefined || v === "") return "-";
@@ -211,24 +226,33 @@
return emptyDash(v);
};
+ const shouldValidateStockStatus = computed(() => {
+ return (
+ contractKind.value === CONTRACT_KIND.sales &&
+ type.value === QUALITY_TYPE.qualified
+ );
+ });
+
const isFullyStocked = item => {
+ if (!shouldValidateStockStatus.value) return false;
const s = item?.productStockStatus;
return s == 2 || s === "2";
};
const onStockedQtyBlur = item => {
if (isFullyStocked(item)) return;
- const raw = item.stockedQuantity;
+ const raw = item.operateQuantity;
if (raw === null || raw === undefined || String(raw).trim() === "") {
- item.stockedQuantity = "0";
+ item.operateQuantity = "0";
return;
}
const n = Number(String(raw).trim());
if (Number.isNaN(n)) {
- item.stockedQuantity = defaultStockedQuantityFromRow(item);
+ item.operateQuantity =
+ type.value === QUALITY_TYPE.unqualified ? "0" : defaultStockedQuantityFromRow(item, "inbound");
return;
}
- item.stockedQuantity = String(Math.max(0, n));
+ item.operateQuantity = String(Math.max(0, n));
};
const formatCell = (item, row, idx) => {
@@ -242,11 +266,35 @@
return formatProductStockStatus(item.productStockStatus);
if (row.key === "heavyBox") return formatHeavyBox(item.heavyBox);
if (row.key === "remainingQuantity") {
+ const v = item.remainingQuantity;
+ return emptyDash(v);
+ }
+ if (row.key === "remainingShippedQuantity") {
+ const v = item.remainingShippedQuantity;
+ return emptyDash(v);
+ }
+ if (row.key === "shippedQuantity") {
+ const v = item.shippedQuantity;
+ return emptyDash(v);
+ }
+ if (row.key === "unqualifiedShippedQuantity") {
const v =
- item.remainingQuantity ??
- item.remaining_quantity ??
- item.remainQuantity ??
- item.remain_quantity;
+ item.unqualifiedShippedQuantity ??
+ item.unQualifiedShippedQuantity ??
+ item.unqualifiedShippedQty ??
+ item.unqualifiedOutboundQuantity;
+ return emptyDash(v);
+ }
+ if (row.key === "stockedQuantity") {
+ const v = item.stockedQuantity;
+ return emptyDash(v);
+ }
+ if (row.key === "unqualifiedStockedQuantity") {
+ const v =
+ item.unqualifiedStockedQuantity ??
+ item.unQualifiedStockedQuantity ??
+ item.unqualifiedStockedQty ??
+ item.unqualifiedInboundQuantity;
return emptyDash(v);
}
if (row.key === "availableQuality") {
@@ -351,7 +399,18 @@
if (res.code === 200 && res.data && res.data.length > 0) {
recordList.value = res.data.map(row => ({
...row,
- stockedQuantity: defaultStockedQuantityFromRow(row),
+ unqualifiedShippedQuantity:
+ row.unqualifiedShippedQuantity ??
+ row.unQualifiedShippedQuantity ??
+ row.unqualifiedShippedQty ??
+ row.unqualifiedOutboundQuantity,
+ unqualifiedStockedQuantity:
+ row.unqualifiedStockedQuantity ??
+ row.unQualifiedStockedQuantity ??
+ row.unqualifiedStockedQty ??
+ row.unqualifiedInboundQuantity,
+ operateQuantity:
+ type.value === QUALITY_TYPE.unqualified ? "0" : defaultStockedQuantityFromRow(row, "inbound"),
}));
expandedByIndex.value = {};
showForm.value = true;
--
Gitblit v1.9.3