diff --git a/src/modules/customers/pages/CustomerDetailView.test.ts b/src/modules/customers/pages/CustomerDetailView.test.ts index 2c9d27e6..3c5dcb7a 100644 --- a/src/modules/customers/pages/CustomerDetailView.test.ts +++ b/src/modules/customers/pages/CustomerDetailView.test.ts @@ -10,6 +10,7 @@ import { listTenantQualifications, type PlatformTenantResource, } from '@/modules/iam' +import { listPlatformFirstLegOrders, type PlatformFirstLegOrderResource } from '@/modules/first-leg-orders' import { useAccessPreviewStore } from '@/core/access/accessPreview' import { useAuthStore } from '@/core/auth/auth' import CustomerDetailView from './CustomerDetailView.vue' @@ -32,6 +33,10 @@ vi.mock('@/modules/iam', () => ({ qualificationFileName: vi.fn((documentUrl: string) => documentUrl.split('/').at(-1) || '资质文件'), })) +vi.mock('@/modules/first-leg-orders', () => ({ + listPlatformFirstLegOrders: vi.fn(), +})) + class ResizeObserverStub implements ResizeObserver { observe() {} unobserve() {} @@ -75,6 +80,17 @@ describe('CustomerDetailView', () => { phone: '13800138000', email: 'ops@example.com', memberType: 'OWNER', memberNo: null, status: 'ACTIVE', roleIds: [], roleNames: ['企业管理员'], }]) vi.mocked(listPlatformTenantOrderCounts).mockResolvedValue([{ tenantId: tenant.id, orderCount: 12 }]) + vi.mocked(listPlatformFirstLegOrders).mockResolvedValue({ + records: [{ + id: 'order-1', tenantId: tenant.id, orderNo: 'BY20260807001', customerId: null, customerName: tenant.tenantName, + status: 'PROCESSING', transportMode: 'SEA', tradeTerm: null, destinationCountryCode: 'US', destinationWarehouseId: null, + destinationWarehouseName: '洛杉矶', expectedShipDate: '2026-08-08', customerRemark: null, pickupMethod: 'WAREHOUSE', + receivingWarehouseId: 'warehouse-1', receivingWarehouseName: '深圳头程收货仓', receivingWarehouseAddress: '深圳市', receivingTime: null, + channelCode: 'SEA_FCL', channelName: '海运整箱', taxMode: 'DDP', containerMode: 'FULL_CONTAINER', customsInspection: false, + destinationType: 'FBA', amazonWarehouseCode: null, shipmentId: null, referenceId: null, expressCompany: null, expressTrackingNo: null, + createdAt: '2026-08-07T10:00:00', updatedAt: '2026-08-07T10:00:00', + } satisfies PlatformFirstLegOrderResource], page: 1, size: 10, total: 1, pages: 1, + }) vi.mocked(downloadTenantQualification).mockResolvedValue(new Blob(['image'], { type: 'image/png' })) }) @@ -93,6 +109,14 @@ describe('CustomerDetailView', () => { expect(document.body.textContent).toContain('已替换') expect(document.body.textContent).toContain('12票') + const ordersTab = [...document.querySelectorAll('.detail-tabs button')] + .find((button) => button.textContent?.trim() === '运单记录') + ordersTab?.click() + await flushPromises() + expect(document.body.textContent).toContain('BY20260807001') + expect(document.body.textContent).toContain('海运整箱 FCL') + expect(listPlatformFirstLegOrders).toHaveBeenCalledWith({ tenantId: tenant.id, page: 1, size: 10 }) + const billingTab = [...document.querySelectorAll('.detail-tabs button')] .find((button) => button.textContent?.trim() === '计费规则') billingTab?.click() diff --git a/src/modules/customers/pages/CustomerDetailView.vue b/src/modules/customers/pages/CustomerDetailView.vue index 675cc246..f6d2ef76 100644 --- a/src/modules/customers/pages/CustomerDetailView.vue +++ b/src/modules/customers/pages/CustomerDetailView.vue @@ -1,5 +1,5 @@