|
|
@@ -197,24 +197,70 @@ const loadData = async () => {
|
|
|
const res = await api.getOrder(id);
|
|
|
Object.assign(order, res);
|
|
|
|
|
|
- // mock detail data
|
|
|
- order.receiver = 'Olivia Zhang';
|
|
|
- order.phone = '+1 213 **** 4401';
|
|
|
- order.address = '1234 Main St, Apt 5B, Los Angeles, CA 90001, US';
|
|
|
- order.payMethod = '信用卡';
|
|
|
- order.payTime = '2026-04-19 20:43';
|
|
|
- order.remark = '地址楼栋不清晰,需要客服复核后再提交仓库。';
|
|
|
-
|
|
|
- lineItems.value = [
|
|
|
- { sku: 'SKU-LUGG-20-BLK', title: 'TravelFlex Expandable Carry-On / Black', qty: 1, splitQty: 0, unitPrice: '$89.00', subtotal: '$89.00' },
|
|
|
- { sku: 'SKU-TAG-SET-GRY', title: 'Travel Tag Set / Gray', qty: 2, splitQty: 0, unitPrice: '$19.50', subtotal: '$39.00' }
|
|
|
+ // Dynamic mock detail data based on order number
|
|
|
+ const details: Record<string, Partial<typeof order>> = {
|
|
|
+ 'OMS-20260419-0012': { receiver: 'Olivia Zhang', phone: '+1 213-555-4401', address: '1234 Main St, Apt 5B, Los Angeles, CA 90001, US', payMethod: '信用卡', payTime: '2026-04-19 20:43', remark: '地址楼栋不清晰,需要客服复核后再提交仓库。' },
|
|
|
+ 'OMS-20260419-0017': { receiver: 'Noah Smith', phone: '+44 20-7946-0958', address: '45 Kensington High St, London, W8 5NP, UK', payMethod: 'TikTok Pay', payTime: '2026-04-19 21:09', remark: '' },
|
|
|
+ 'OMS-20260419-0022': { receiver: 'Liam Chen', phone: '+81 3-1234-5678', address: '東京都渋谷区神宮前1-2-3, 150-0001', payMethod: '信用卡', payTime: '2026-04-19 21:32', remark: '' },
|
|
|
+ 'OMS-20260418-0008': { receiver: 'Emma Wilson', phone: '+1 310-555-8899', address: '5678 Ocean Ave, Santa Monica, CA 90401, US', payMethod: 'PayPal', payTime: '-', remark: '' },
|
|
|
+ 'OMS-20260418-0015': { receiver: 'Sophie Brown', phone: '+44 7911-123456', address: '12 Baker St, Manchester, M1 1AA, UK', payMethod: 'TikTok Pay', payTime: '2026-04-18 10:46', remark: '' },
|
|
|
+ };
|
|
|
+ const detail = details[order.orderNo || ''] || { receiver: '-', phone: '-', address: '-', payMethod: '-', payTime: '-', remark: '' };
|
|
|
+ Object.assign(order, detail);
|
|
|
+
|
|
|
+ // Dynamic line items based on order
|
|
|
+ const lineItemsMap: Record<string, typeof lineItems.value> = {
|
|
|
+ 'OMS-20260419-0012': [
|
|
|
+ { sku: 'SKU-LUGG-20-BLK', title: 'TravelFlex Expandable Carry-On / Black', qty: 1, splitQty: 0, unitPrice: '$89.00', subtotal: '$89.00' },
|
|
|
+ { sku: 'SKU-TAG-SET-GRY', title: 'Travel Tag Set / Gray', qty: 2, splitQty: 0, unitPrice: '$19.50', subtotal: '$39.00' }
|
|
|
+ ],
|
|
|
+ 'OMS-20260419-0017': [
|
|
|
+ { sku: 'SKU-BAG-ML-BRW', title: 'Classic Leather Tote / Brown', qty: 1, splitQty: 0, unitPrice: '£65.00', subtotal: '£65.00' }
|
|
|
+ ],
|
|
|
+ 'OMS-20260419-0022': [
|
|
|
+ { sku: 'SKU-SPRT-YGA-BLU', title: 'Yoga Mat Pro / Blue', qty: 1, splitQty: 0, unitPrice: '¥4,200', subtotal: '¥4,200' },
|
|
|
+ { sku: 'SKU-SPRT-BTL-GRN', title: 'Sports Bottle 750ml / Green', qty: 3, splitQty: 0, unitPrice: '¥1,500', subtotal: '¥4,500' }
|
|
|
+ ],
|
|
|
+ 'OMS-20260418-0008': [
|
|
|
+ { sku: 'SKU-LUGG-28-NVY', title: 'TravelFlex Large Check-In / Navy', qty: 1, splitQty: 0, unitPrice: '$129.00', subtotal: '$129.00' }
|
|
|
+ ],
|
|
|
+ 'OMS-20260418-0015': [
|
|
|
+ { sku: 'SKU-BAG-BPK-OLV', title: 'Urban Backpack / Olive', qty: 2, splitQty: 0, unitPrice: '£45.00', subtotal: '£90.00' }
|
|
|
+ ],
|
|
|
+ };
|
|
|
+ lineItems.value = lineItemsMap[order.orderNo || ''] || [
|
|
|
+ { sku: 'SKU-GEN-001', title: '通用商品 / Default', qty: 1, splitQty: 0, unitPrice: '-', subtotal: '-' }
|
|
|
];
|
|
|
|
|
|
- timeline.value = [
|
|
|
- { time: '2026-04-19 21:16', title: '地址校验告警', summary: '地址楼栋信息不完整,标记为"地址需复核"', type: 'warning' },
|
|
|
- { time: '2026-04-19 21:10', title: '库存锁定完成', summary: '系统自动锁定 SKU-LUGG-20-BLK × 1, SKU-TAG-SET-GRY × 2', type: 'success' },
|
|
|
- { time: '2026-04-19 20:43', title: '支付确认', summary: '状态 created → paid,金额 $128.00', type: 'primary' },
|
|
|
- { time: '2026-04-19 20:42', title: '订单接入 OMS', summary: `来自 ${order.channel} 的订单推送`, type: 'primary' }
|
|
|
+ // Dynamic timeline based on order
|
|
|
+ const timelineMap: Record<string, typeof timeline.value> = {
|
|
|
+ 'OMS-20260419-0012': [
|
|
|
+ { time: '2026-04-19 21:16', title: '地址校验告警', summary: '地址楼栋信息不完整,标记为"地址需复核"', type: 'warning' },
|
|
|
+ { time: '2026-04-19 21:10', title: '库存锁定完成', summary: '系统自动锁定 SKU-LUGG-20-BLK × 1, SKU-TAG-SET-GRY × 2', type: 'success' },
|
|
|
+ { time: '2026-04-19 20:43', title: '支付确认', summary: '状态 created → paid,金额 $128.00', type: 'primary' },
|
|
|
+ { time: '2026-04-19 20:42', title: '订单接入 OMS', summary: `来自 ${order.channel} 的订单推送`, type: 'primary' }
|
|
|
+ ],
|
|
|
+ 'OMS-20260419-0017': [
|
|
|
+ { time: '2026-04-19 21:12', title: '库存锁定完成', summary: '系统自动锁定 SKU-BAG-ML-BRW × 1', type: 'success' },
|
|
|
+ { time: '2026-04-19 21:09', title: '支付确认', summary: '状态 created → paid,金额 £65.00', type: 'primary' },
|
|
|
+ { time: '2026-04-19 21:08', title: '订单接入 OMS', summary: `来自 ${order.channel} 的订单推送`, type: 'primary' }
|
|
|
+ ],
|
|
|
+ 'OMS-20260419-0022': [
|
|
|
+ { time: '2026-04-19 21:35', title: '库存锁定完成', summary: '系统自动锁定 SKU-SPRT-YGA-BLU × 1, SKU-SPRT-BTL-GRN × 3', type: 'success' },
|
|
|
+ { time: '2026-04-19 21:32', title: '支付确认', summary: '状态 created → paid,金额 ¥8,700', type: 'primary' },
|
|
|
+ { time: '2026-04-19 21:31', title: '订单接入 OMS', summary: `来自 ${order.channel} 的订单推送`, type: 'primary' }
|
|
|
+ ],
|
|
|
+ 'OMS-20260418-0008': [
|
|
|
+ { time: '2026-04-18 09:15', title: '订单接入 OMS', summary: `来自 ${order.channel} 的订单推送`, type: 'primary' }
|
|
|
+ ],
|
|
|
+ 'OMS-20260418-0015': [
|
|
|
+ { time: '2026-04-18 10:48', title: '库存锁定完成', summary: '系统自动锁定 SKU-BAG-BPK-OLV × 2', type: 'success' },
|
|
|
+ { time: '2026-04-18 10:46', title: '支付确认', summary: '状态 created → paid,金额 £90.00', type: 'primary' },
|
|
|
+ { time: '2026-04-18 10:45', title: '订单接入 OMS', summary: `来自 ${order.channel} 的订单推送`, type: 'primary' }
|
|
|
+ ],
|
|
|
+ };
|
|
|
+ timeline.value = timelineMap[order.orderNo || ''] || [
|
|
|
+ { time: order.createdAt || '-', title: '订单接入 OMS', summary: `来自 ${order.channel} 的订单推送`, type: 'primary' }
|
|
|
];
|
|
|
};
|
|
|
|