优化
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import test from 'node:test'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import ts from 'typescript'
|
||||
const source = readFileSync(new URL('./orderProgress.ts', import.meta.url), 'utf8')
|
||||
const code = ts.transpileModule(source, { compilerOptions: { module: ts.ModuleKind.CommonJS } }).outputText
|
||||
const exports = {}
|
||||
new Function('exports', code)(exports)
|
||||
test('prototype queues preserve order and distinguish partial progress from completion', () => {
|
||||
assert.deepEqual(exports.ORDER_QUEUES.slice(0, 7).map(q => q.key), ['all','fee','loaded','declared','cleared','scheduled','delivering'])
|
||||
assert.equal(exports.orderProgressLabel({ stage: 'scheduled', partial: true }), '部分已排车')
|
||||
assert.equal(exports.orderProgressLabel({ stage: 'cleared', partial: false }), '已清关')
|
||||
assert.equal(exports.orderProgressLabel({ stage: 'none', partial: false }), '—')
|
||||
assert.equal(exports.orderProgressLabel(), '—')
|
||||
})
|
||||
@@ -0,0 +1,20 @@
|
||||
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}`
|
||||
}
|
||||
Reference in New Issue
Block a user