This commit is contained in:
2026-09-24 08:55:27 +08:00
parent bc5c56d0e4
commit 6926e99bd2
4 changed files with 21 additions and 5 deletions
@@ -12,7 +12,7 @@ import {
getTransferCartonLabel, submitTransfer, updateTransfer,
confirmRelabelCompletion, confirmTransferMeasurement, downloadRelabelCompletionPhoto, downloadTransferMeasurementPhoto, uploadRelabelShippingLabel,
uploadRelabelFile,
listDiscardCandidates, listDiscards, listRelabelInventoryCandidates, listRelabelHistoricalOrders, listRelabels, listTransfers, cancelDiscard,
listDiscards, listRelabelInventoryCandidates, listRelabelHistoricalOrders, listRelabels, listTransfers, cancelDiscard,
type RelabelInventoryCandidate,
type RelabelCreate,
type RelabelDetail,
@@ -369,8 +369,23 @@ async function selectDiscardWarehouse() {
if (!form.warehouse) return
discardCandidatesLoading.value = true
try {
const candidates = await listDiscardCandidates()
discardCandidates.value = candidates.filter((candidate) => String(candidate.overseasWarehouseId) === form.warehouse)
const inventory = await listRelabelInventoryCandidates(form.warehouse)
const grouped = new Map<string, import('../api/warehouseServices').DiscardCandidate>()
for (const candidate of inventory) {
const orderId = String(candidate.inboundOrderId || '')
if (!orderId) continue
const current = grouped.get(orderId) || { orderId, inboundCode: candidate.inboundCode || '', inboundOrderNo: candidate.inboundOrderNo || '', overseasWarehouseId: String(candidate.overseasWarehouseId || form.warehouse), overseasWarehouseName: candidate.overseasWarehouseName || '', availablePackages: 0, skus: [] }
const packages = inventoryQuantity(candidate.availablePackages)
current.availablePackages += packages
const skuCode = String(candidate.skuCode || '').trim()
if (skuCode) {
const sku = current.skus.find((item) => item.skuCode === skuCode)
if (sku) sku.availablePackages += packages
else current.skus.push({ skuCode, productName: candidate.productNameZh || '', availablePackages: packages })
}
grouped.set(orderId, current)
}
discardCandidates.value = [...grouped.values()].filter((candidate) => String(candidate.overseasWarehouseId) === form.warehouse)
} catch (error) { ElMessage.error(error instanceof Error ? error.message : '可废弃入库单加载失败') }
finally { discardCandidatesLoading.value = false }
}