diff --git a/src/modules/first-leg/api/customs.ts b/src/modules/first-leg/api/customs.ts index 59070f2..3c7d976 100644 --- a/src/modules/first-leg/api/customs.ts +++ b/src/modules/first-leg/api/customs.ts @@ -14,6 +14,13 @@ export interface MerchantCustomsFile { uploadedAt: string } +export interface MerchantCustomsReceiptVersion { + version: number + file: MerchantCustomsFile + operatorName: string | null + createdAt: string +} + export interface MerchantCustomsInbound { inboundId: string orderId: string @@ -36,6 +43,7 @@ export interface MerchantCustomsDocument { receiptStatus: 'PENDING' | 'CONFIRMED' | 'REJECTED' | null receiptRejectReason: string | null finalDocument: MerchantCustomsFile | null + receiptHistory?: MerchantCustomsReceiptVersion[] } export interface MerchantCustomsContainer { diff --git a/src/modules/first-leg/components/CustomsDocumentsDialog.vue b/src/modules/first-leg/components/CustomsDocumentsDialog.vue index 89ff1df..9ab6534 100644 --- a/src/modules/first-leg/components/CustomsDocumentsDialog.vue +++ b/src/modules/first-leg/components/CustomsDocumentsDialog.vue @@ -246,6 +246,10 @@ function formatDateTime(value: string | null | undefined) { return Number.isNaN(date.getTime()) ? value : date.toLocaleString('zh-CN', { hour12: false }) } +function receiptHistoryLabel(document: MerchantCustomsDocument) { + return (document.receiptHistory || []).map((item) => `V${item.version}`).join('、') || '—' +} + function formatSize(bytes: number) { if (bytes < 1024) return `${bytes} B` if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB` @@ -340,6 +344,7 @@ function clearanceResultStatusLabel(value: MerchantClearanceResult) {
{{ item.source.fileName }} 版本 V{{ item.source.version }} · {{ formatSize(item.source.sizeBytes) }} · {{ formatDateTime(item.source.uploadedAt) }} + 报关行回执历史:{{ receiptHistoryLabel(item) }} 关联入仓码:{{ item.inboundCodes.join('、') || '—' }}