yyb
2 天以前 1bd1061c60c286e3b2216a67090c4976c9c7b35f
src/pages/inventoryManagement/scanOut/index.vue
@@ -188,7 +188,7 @@
        </view>
        <view v-if="!isFullyStocked(item)"
        <view
              class="stocked-qty-block">
@@ -200,7 +200,7 @@
              <up-input :key="'stocked-' + idx"
                        v-model="item.stockedQuantity"
                        v-model="item.operateQuantity"
                        type="number"
@@ -322,7 +322,22 @@
  const { detailFieldRows, summaryFieldRows } = useScanOutFieldRows(contractKind);
  const { detailFieldRows: rawDetailFieldRows, summaryFieldRows: rawSummaryFieldRows } = useScanOutFieldRows(
    contractKind,
    "outbound"
  );
  const shouldShowOutboundQuantityField = key => {
    if (type.value === QUALITY_TYPE.qualified)
      return key !== "unqualifiedShippedQuantity" && key !== "unqualifiedStockedQuantity";
    if (type.value === QUALITY_TYPE.unqualified) return key !== "shippedQuantity" && key !== "remainingShippedQuantity";
    return true;
  };
  const detailFieldRows = computed(() =>
    rawDetailFieldRows.value.filter(row => shouldShowOutboundQuantityField(row.key))
  );
  const summaryFieldRows = computed(() =>
    rawSummaryFieldRows.value.filter(row => shouldShowOutboundQuantityField(row.key))
  );
@@ -412,16 +427,6 @@
  const isFullyStocked = item => {
    const s = item?.productStockStatus;
    return s == 2 || s === "2";
  };
  const parseOptionalNumberLocal = raw => {
    if (raw === null || raw === undefined || raw === "") return null;
@@ -478,13 +483,11 @@
  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;
@@ -493,14 +496,19 @@
    const n = Number(String(raw).trim());
    if (Number.isNaN(n)) {
      item.stockedQuantity = defaultStockedQuantityFromRow(item);
      if (type.value === QUALITY_TYPE.unqualified) {
        const unqualifiedInbound = parseOptionalNumber(item.unqualifiedStockedQuantity) ?? 0;
        const unqualifiedOutbound = parseOptionalNumber(item.unqualifiedShippedQuantity) ?? 0;
        item.operateQuantity = String(Math.max(0, unqualifiedInbound - unqualifiedOutbound));
      } else {
        item.operateQuantity = defaultStockedQuantityFromRow(item, "outbound");
      }
      return;
    }
    item.stockedQuantity = String(Math.max(0, n));
    item.operateQuantity = String(Math.max(0, n));
  };
@@ -528,18 +536,34 @@
    if (row.key === "remainingQuantity") {
      const v =
        item.remainingQuantity ??
        item.remaining_quantity ??
        item.remainQuantity ??
        item.remain_quantity;
      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.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;
      return emptyDash(v);
    }
    if (row.key === "availableQuality") {
@@ -799,8 +823,36 @@
        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
              ? String(
                  Math.max(
                    0,
                    (parseOptionalNumber(
                      row.unqualifiedStockedQuantity ??
                        row.unQualifiedStockedQuantity ??
                        row.unqualifiedStockedQty ??
                        row.unqualifiedInboundQuantity
                    ) ?? 0) -
                      (parseOptionalNumber(
                        row.unqualifiedShippedQuantity ??
                          row.unQualifiedShippedQuantity ??
                          row.unqualifiedShippedQty ??
                          row.unqualifiedOutboundQuantity
                      ) ?? 0)
                  )
                )
              : defaultStockedQuantityFromRow(row, "outbound"),
        }));