diff --git a/src/modules/overseas-warehouse/components/WarehouseTransferReceiptPanel.test.ts b/src/modules/overseas-warehouse/components/WarehouseTransferReceiptPanel.test.ts index 7ad5d450..39de5ad9 100644 --- a/src/modules/overseas-warehouse/components/WarehouseTransferReceiptPanel.test.ts +++ b/src/modules/overseas-warehouse/components/WarehouseTransferReceiptPanel.test.ts @@ -121,3 +121,13 @@ describe('转运预报与实际签收明细', () => { expect(wrapper.emitted('summary')!.at(-1)![0]).toMatchObject({ forecastBoxes: 9 }) }) }) + +// 完成原因直接展示,多个箱保存同一原因时只显示一次。 +it('displays saved discrepancy reason once without opening box details', async () => { + const value = fixture() + value.cartons.forEach(box => { box.discrepancyReason = '短收一箱,客户漏发' }) + vi.mocked(getWarehouseTransfer).mockResolvedValue(value) + const wrapper = render(); await flushPromises() + expect(wrapper.findAll('.receipt-discrepancy-reason')).toHaveLength(1) + expect(wrapper.find('.receipt-discrepancy-reason').text()).toBe('实收差异原因:短收一箱,客户漏发') +}) diff --git a/src/modules/overseas-warehouse/components/WarehouseTransferReceiptPanel.vue b/src/modules/overseas-warehouse/components/WarehouseTransferReceiptPanel.vue index 57496409..131b9cb5 100644 --- a/src/modules/overseas-warehouse/components/WarehouseTransferReceiptPanel.vue +++ b/src/modules/overseas-warehouse/components/WarehouseTransferReceiptPanel.vue @@ -21,6 +21,8 @@ const selectedBox = ref(null) const boxOpen = ref(false) const cartonsOpen = ref(false) let generation = 0 +// 同一完成原因保存于箱记录,去重后在尾程详情直接展示。 +const discrepancyReasons = computed(() => [...new Set((detail.value?.cartons || []).map(box => box.discrepancyReason?.trim()).filter((reason): reason is string => Boolean(reason)))]) const cartons = computed(() => (detail.value?.cartons || []).filter(box => box.status === 'COUNTED')) function itemFor(box: WarehouseTransferCartonDto) { return detail.value?.items.find(item => box.transferItemId != null && String(item.id) === String(box.transferItemId)) } function boxLines(box: WarehouseTransferCartonDto) { @@ -119,6 +121,7 @@ onBeforeUnmount(() => { generation++ })