From 3d73f1c82d82dbe166d12fc4bfd100a4c2d3f38c Mon Sep 17 00:00:00 2001 From: liuyihe <2513762445@qq.com> Date: Fri, 16 Oct 2026 14:22:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/WarehouseServiceView.vue | 32 +++++++++++++++---- .../views/inventoryTransferForm.test.mjs | 24 ++++++++++++++ .../views/warehouseTransferForm.test.mjs | 2 +- 3 files changed, 50 insertions(+), 8 deletions(-) diff --git a/src/modules/overseas-warehouse/views/WarehouseServiceView.vue b/src/modules/overseas-warehouse/views/WarehouseServiceView.vue index 773e3f9..21cccf8 100644 --- a/src/modules/overseas-warehouse/views/WarehouseServiceView.vue +++ b/src/modules/overseas-warehouse/views/WarehouseServiceView.vue @@ -305,6 +305,24 @@ async function loadTransferSourceCartons() { if (!inventoryTransfer.value) return transferSourceLoading.value = true try { + // 退货候选本身就是逐箱库存,使用与下拉一致的实物箱数据,不能按普通入仓快照回查。 + if (selectedTransferInventory.value.startsWith('RETURN_ORDER:')) { + const returnNo = selectedTransferInventory.value.slice('RETURN_ORDER:'.length) + transferSourceCartons.value = transferInventoryCandidates.value + .filter(item => (item.sourceType === 'RETURN_CARTON' || item.sourceType === 'RETURN_PARCEL') + && String(item.inboundOrderNo || '').trim() === returnNo && Number(item.cartonAvailablePackages || 0) > 0) + .filter(item => Boolean(item.cartonMark)) + .map(item => { + const contents = item.cartonSkuItems?.length ? item.cartonSkuItems : item.skuItems || [] + return { cartonMark: item.cartonMark!, productNameZh: item.productNameZh, + quantity: contents.reduce((total, sku) => total + Number(sku.quantity || 0), 0), + destinationWarehouseCode: item.destinationFbaWarehouseCode, + destinationWarehouseName: item.destinationFbaWarehouseName, + items: contents.map(sku => ({ skuCode: sku.skuCode, quantity: Number(sku.quantity || 0) })) } + }) + if (!transferSourceCartons.value.length) throw new Error('当前退货单没有可转运箱,请刷新库存后重试') + return + } const cartons = await getTransferSourceCartons(form.warehouse, selectedTransferInventory.value) if (request === transferSourceRequest) transferSourceCartons.value = cartons } catch (error) { if (request === transferSourceRequest) transferSourceError.value = error instanceof Error ? error.message : '原单箱明细加载失败' } @@ -1653,7 +1671,7 @@ function addReturnBoxBinding(source: RelabelInventoryCandidate) { - +
可只勾选本次需要换标的部分,也可以全选后一次导入。
| 选择 | 关系类型 | 客户箱唛号 | 旧 SKU | 新 SKU | 数量 | 新 FBA 箱唛 |
|---|---|---|---|---|---|---|
| {{ item.templateType === 'mixed' ? 'SKU 混箱换标' : item.templateType === 'carton' ? '箱号关联' : 'SKU 关联' }} | {{ item.cartonMark }} | {{ item.originalSku || '—' }} | {{ item.newSku || '—' }} | {{ item.quantity }} | {{ item.fbaCartonMark || '—' }} |
可只勾选本次需要换标的部分,也可以全选后一次导入。
| 选择 | 关系类型 | 仓库唛头 | 旧 SKU | 新 SKU | 数量 | 新 FBA 箱唛 |
|---|---|---|---|---|---|---|
| {{ item.templateType === 'mixed' ? 'SKU 混箱换标' : item.templateType === 'carton' ? '箱号关联' : 'SKU 关联' }} | {{ item.cartonMark }} | {{ item.originalSku || '—' }} | {{ item.newSku || '—' }} | {{ item.quantity }} | {{ item.fbaCartonMark || '—' }} |
| 客户箱唛号 * | 旧 SKU | 新 FBA 箱唛 * | 备注 | 操作 |
|---|---|---|---|---|
暂无绑定明细,请点击“添加换标明细” | ||||
| 客户箱唛号 * | 旧 SKU * | 新 SKU * | 换标数量(件)* | 备注 | 操作 |
|---|---|---|---|---|---|
暂无绑定明细,请点击“添加 SKU 明细” | |||||
| 客户箱唛号 * | 旧 SKU * | 新 SKU * | 换标数量(件)* | 新 FBA 箱唛 * | 备注 | 操作 |
|---|---|---|---|---|---|---|
暂无绑定明细,请点击“添加 SKU 明细” | ||||||
| 仓库唛头 * | 旧 SKU | 新 FBA 箱唛 * | 备注 | 操作 |
|---|---|---|---|---|
暂无绑定明细,请点击“添加换标明细” | ||||
| 仓库唛头 * | 旧 SKU * | 新 SKU * | 换标数量(件)* | 备注 | 操作 |
|---|---|---|---|---|---|
暂无绑定明细,请点击“添加 SKU 明细” | |||||
| 仓库唛头 * | 旧 SKU * | 新 SKU * | 换标数量(件)* | 新 FBA 箱唛 * | 备注 | 操作 |
|---|---|---|---|---|---|---|
暂无绑定明细,请点击“添加 SKU 明细” | ||||||
| 换标类型 | 客户箱唛号 | 旧 SKU | 新 SKU | 新 FBA 箱唛 | 实际 FBA 目的仓 | 数量 | 备注 |
|---|---|---|---|---|---|---|---|
| {{ binding.operationType === 'CARTON_AND_SKU' ? 'SKU 和箱唛都换' : binding.operationType === 'SKU_LABEL' ? '只换 SKU' : '只换箱唛' }} | {{ binding.customerCartonMark || '—' }} | {{ binding.originalSku || '—' }} | {{ binding.newSku || '—' }} | {{ binding.fbaCartonMark || '—' }} | {{ binding.operationType === 'SKU_LABEL' ? '沿用原箱去向' : warehouseDisplay(binding.destinationWarehouseCode) }} | {{ binding.quantity ?? '—' }} | {{ binding.remark || '—' }} |
暂无换标绑定明细 | |||||||
| 换标类型 | 仓库唛头 | 旧 SKU | 新 SKU | 新 FBA 箱唛 | 实际 FBA 目的仓 | 数量 | 备注 |
|---|---|---|---|---|---|---|---|
| {{ binding.operationType === 'CARTON_AND_SKU' ? 'SKU 和箱唛都换' : binding.operationType === 'SKU_LABEL' ? '只换 SKU' : '只换箱唛' }} | {{ binding.customerCartonMark || '—' }} | {{ binding.originalSku || '—' }} | {{ binding.newSku || '—' }} | {{ binding.fbaCartonMark || '—' }} | {{ binding.operationType === 'SKU_LABEL' ? '沿用原箱去向' : warehouseDisplay(binding.destinationWarehouseCode) }} | {{ binding.quantity ?? '—' }} | {{ binding.remark || '—' }} |
暂无换标绑定明细 | |||||||