import type { MerchantOrderProgress, OrderQueue } from '../api/unifiedOrders' export const ORDER_QUEUES: ReadonlyArray<{ key: OrderQueue; label: string; todo?: boolean }> = [ { key: 'all', label: '全部' }, { key: 'fee', label: '确认计费重', todo: true }, { key: 'loaded', label: '装柜完成' }, { key: 'declared', label: '已报关' }, { key: 'cleared', label: '已清关' }, { key: 'scheduled', label: '已排车' }, { key: 'delivering', label: '派送中' }, { key: 'delivered', label: '派送完成' }, { key: 'customs', label: '上传资料', todo: true }, { key: 'draft', label: '草稿' }, ] export function orderProgressLabel(progress?: MerchantOrderProgress) { if (!progress || progress.stage === 'none') return '—' const label = ORDER_QUEUES.find(q => q.key === progress.stage)?.label ?? '—' return `${progress.partial ? '部分' : ''}${label}` } export function requireOrderProgress(orderId: string, progress: MerchantOrderProgress) { if (!progress || String(progress.orderId) !== orderId || !['none', 'loaded', 'declared', 'cleared', 'scheduled', 'delivering', 'delivered'].includes(progress.stage) || typeof progress.partial !== 'boolean') { throw new Error('订单履约进度不完整,请重新加载') } return progress }