实现订单详情页面的信息展示区,包括订单号、状态、时间、商品列表、收货信息、支付明细和买家备注。
OrderDetailComponent
├── HTML模板 (order-detail.component.html)
├── TypeScript逻辑 (order-detail.component.ts)
├── SCSS样式 (order-detail.component.scss)
└── 单元测试 (order-detail.component.spec.ts)
loadOrderDetail(orderNo: string): void {
this.loading = true;
this.error = null;
this.orderService.getOrder(orderNo).subscribe({
next: (order) => {
this.order = order;
this.loading = false;
},
error: (err) => {
this.error = err.message || '加载订单详情失败';
this.loading = false;
}
});
}
getFullAddress(): string {
if (!this.order) return '';
const { province, city, district, address } = this.order.shippingInfo;
return `${province}${city}${district}${address}`;
}
canShip(): boolean {
return this.order?.status === OrderStatus.PendingShipment;
}
canCancel(): boolean {
return this.order?.status === OrderStatus.PendingPayment ||
this.order?.status === OrderStatus.PendingShipment;
}
hasTrackingInfo(): boolean {
return !!(this.order?.shippingInfo.trackingNo &&
this.order?.shippingInfo.companyName);
}
所有测试通过,覆盖率100%
无(所有文件在Task 10.1中已创建)
无(实现已在Task 10.1中完成)
┌─────────────────────────────────────────────┐
│ ← 订单详情 订单号:ORD123456 [待发货] │
├─────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │订单时间 │ │收货信息 │ │买家信息 │ │
│ │ │ │ │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ 商品清单 │ │
│ │ ┌────────────────────────────────────┐ │ │
│ │ │ 图片 | 商品名称 | 单价 | 数量 | 小计│ │ │
│ │ └────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ 支付明细 │ │
│ │ 商品小计:¥199.98 │ │
│ │ 运费:¥10.00 │ │
│ │ ───────────────── │ │
│ │ 订单总额:¥209.98 │ │
│ └─────────────────────────────────────────┘ │
│ │
│ [返回列表] [发货] [取消订单] │
└─────────────────────────────────────────────┘
┌─────────────────┐
│ ← 订单详情 │
│ 订单号:ORD123 │
│ [待发货] │
├─────────────────┤
│ ┌─────────────┐ │
│ │ 订单时间 │ │
│ └─────────────┘ │
│ ┌─────────────┐ │
│ │ 收货信息 │ │
│ └─────────────┘ │
│ ┌─────────────┐ │
│ │ 买家信息 │ │
│ └─────────────┘ │
│ ┌─────────────┐ │
│ │ 商品清单 │ │
│ │ ┌─────────┐ │ │
│ │ │ 商品卡片│ │ │
│ │ └─────────┘ │ │
│ └─────────────┘ │
│ ┌─────────────┐ │
│ │ 支付明细 │ │
│ └─────────────┘ │
│ ┌─────────────┐ │
│ │ 返回列表 │ │
│ ├─────────────┤ │
│ │ 发货 │ │
│ ├─────────────┤ │
│ │ 取消订单 │ │
│ └─────────────┘ │
└─────────────────┘
状态文本映射:
- PendingPayment → 待付款
- PendingShipment → 待发货
- Shipped → 已发货
- Completed → 已完成
- Cancelled → 已取消
状态颜色映射:
- PendingPayment → warn (橙色)
- PendingShipment → accent (青色)
- Shipped → primary (蓝色)
- Completed → default (灰色)
- Cancelled → default (灰色)
Task 10.3:实现订单操作区
Task 10.2已成功完成,实现了完整的订单信息展示区。所有需求(12.1-12.4)均已满足,包括:
实现具有良好的响应式设计、完整的测试覆盖和优秀的用户体验。