This commit is contained in:
2026-11-06 10:42:39 +08:00
parent 8d80074266
commit f5f62af4a7
16 changed files with 184 additions and 30 deletions
@@ -124,6 +124,18 @@ describe('dispatch workflow native layout', () => {
expect(api.updateDispatch).toHaveBeenCalledWith('PC/1', expect.objectContaining({ maintenance: saved }))
expect(vi.mocked(api.updateDispatch).mock.calls[0]![1]).not.toHaveProperty('departedAt')
})
it('shows the server grouped looseboard orders and their aggregated pallet and volume totals', async () => {
const base = detail().orderDetails[0]!
const orderDetails = [{ ...base, orderNo: 'LB202611050003', inboundCode: null, palletCount: 2, volumeCbm: 10, containerNo: null, sourceBusinessType: 'LOCAL_LOOSEBOARD', sourceBusinessNo: 'LB202611050003', sourceKeys: ['PLAN:11', 'PLAN:12'] },
{ ...base, sourceKey: 'PLAN:13', orderNo: 'LB202611050002', inboundCode: null, palletCount: 1, volumeCbm: 4, containerNo: null, sourceBusinessType: 'LOCAL_LOOSEBOARD', sourceBusinessNo: 'LB202611050002', sourceKeys: ['PLAN:13'] }]
const { dialog } = await render('EDIT', undefined, false, { orderDetails })
expect(dialog.text()).toContain('关联订单 (2)')
await dialog.findAll('[role="tab"]').find(tab => tab.text().includes('关联订单'))!.trigger('click')
const rows = dialog.get('.maintenance-orders').findAll('tbody tr')
expect(rows).toHaveLength(2)
expect(rows[0]!.findAll('td').map(cell => cell.text())).toEqual(['客户甲', 'LB202611050003', '—', '—', '2', 'ONT8', '10', '—'])
expect(rows[1]!.text()).toContain('LB202611050002')
})
it('edits one number per destination and can save an incomplete second destination', async () => {
const destinations = ['ONT8', 'LGB8'].map(code => ({ batchKey: null, batchNo: null, customerId: null, appointmentNo: null, destinationKey: `FBA:${code}`, destinationWarehouseCode: code, status: 'PENDING', confirmedAt: null, blockReason: null, shipmentNumbers: [] }))
const initial = detail()