feat(storefront): 新增 PC 订单中心与订单操作

This commit is contained in:
yml2213
2026-10-30 13:56:44 +08:00
parent 55e914edd1
commit e13eda20a2
13 changed files with 1668 additions and 101 deletions
+2 -2
View File
@@ -193,7 +193,7 @@ dist/assets/AdminLayout-*.js 36.87 kB │ gzip 13.02 kB
## 5. 已知限制
1. 移动端商品详情、下单确认、订单列表、详情、支付、交接、确认收号、结账、还价与申诉已接入真实接口;PC 商品详情与下单已接通,移动端实名认证入口、PC 订单中心与 PC 订单操作仍待迁移。
1. 移动端商品详情、下单确认、订单列表、详情、支付、交接、确认收号、结账、还价与申诉已接入真实接口;PC 商品详情、下单、订单中心与订单操作已接通,移动端实名认证入口、订单群聊与证据上传仍待迁移。
2. 后台导航已完成仪表盘、订单列表/详情、退款审核、提现审核、商品列表/详情与审核、用户列表/详情与人工操作、申诉仲裁、财务看板、资金出款、运营开支、公告管理、审计日志、系统配置、分销站点,长尾能力仍待迁移。
3. 分销后台已完成主题、Logo、登录页与 Shell 轻改,页面结构未重写。
4. 后台菜单权限码按后端逐个核对:订单 `order:list` / `order:view` / `order:close`,商品 `listing:view` / `listing:approve` / `listing:reject` / `listing:offline`,用户 `user:view` / `user:freeze` / `user:unfreeze` / `user:deposit_free` / `user:growth_points` / `user:manual_realname` / `user:revoke_realname` / `user:wallet_adjust`,提现 `withdrawal:list` / `withdrawal:detail` / `withdrawal:review` / `withdrawal:pay`,申诉 `dispute:view` / `dispute:arbitrate`,财务 `wallet:view`(资金出款列表)与 `finance:manual_disbursement` / `finance:operating_expense`,公告 `announcement:view` / `announcement:manage`,审计日志 `audit_log:view`,系统配置 `system_config:view` / `system_config:update`,分销站点 `distribution:site_view` / `distribution:site_manage`(列表也接受 `qrcode:view`);当前菜单权限码已全部对照后端。
@@ -205,7 +205,7 @@ dist/assets/AdminLayout-*.js 36.87 kB │ gzip 13.02 kB
## 6. 建议下一批次
1. PC 订单中心与订单操作页、移动端实名认证入口、证据上传与订单群聊入口。
1. 订单群聊、证据上传与聊天 SSE、移动端实名认证入口。
2. 后台列表页原型:DataTable、FilterBar、详情 Drawer、批量操作。
3. 先迁移后台订单列表与商品审核列表。
4. 分销后台主题轻改。
@@ -0,0 +1,85 @@
# Phase 2 验收报告(PC 订单中心与操作)
> 日期:2026-10-30
> 项目:解忧商行(hfb_jysh)
> 范围:`/orders`、`/orders/:id`
> 结论:**本切片通过,PC 订单列表、详情、支付、交接、收号、结账、还价与申诉已接通**
---
## 1. 页面与路由
| 路径 | 页面 |
| --- | --- |
| `/orders` | `frontend/src/features/orders/OrderListPage.tsx` |
| `/orders/:id` | `frontend/src/features/orders/OrderDetailPage.tsx` |
- 顶部导航新增「我的订单」,用户菜单也新增入口
- PC 下单成功后改为跳转 `/orders/:id`
- 订单详情操作区使用 `frontend/src/features/orders/OrderActionPanel.tsx`
## 2. 我的订单
- 登录守卫,未登录跳转 `/login?redirect=/orders`
- 状态筛选:待支付、待交接、使用中、逾期、待确认结账、待接受结账、争议中、已完成、已取消、已关闭、异常
- 列:订单/角色、商品区服、金额/押金、状态/交接、时间、详情
- 分页每页 20 条
- 空态引导去首页柜选
## 3. 订单详情
- 订单顶部:订单号、标题、订单状态、交接状态、结算状态、金额与押金
- 商品信息、金额明细、时间、结账单、申诉、交接/结账记录
- 结账单展示协商轮次、当前轮到、消耗品、哈夫币、押金扣除、可退金额、号主到手、押金缺口与结账备注
- 交接记录展示说明、时间、租客/号主确认状态
- 右侧吸顶订单操作区
## 4. 操作能力
桌面端与移动端共用 `frontend/src/features/orders/orderActions.ts` 的动作可用性判断:
- 支付:微信 / 支付宝,创建支付单后打开支付页面链接,支持检查支付状态
- 提交交接说明
- 确认收号
- 发起结账
- 确认结账 / 同意结账
- 修改结账方案(最多 6 轮)
- 发起申诉 / 结账争议
- 取消申诉
- 取消订单(待交接取消需客服审核退款)
金额前端按元输入,提交前转换为分;所有写操作二次确认并提示资金影响。
## 5. 共享逻辑
- `getOrderActionAvailability(order, userId)`:统一角色与状态判断
- `DISPUTE_TYPES`:申诉类型选项
- `splitEvidenceLines` / `yuanToCent` / `toPositiveNumber`:表单值转换
- 移动端 `MobileOrderActionPanel` 已改为复用同一套判断,避免两端规则漂移
## 6. 验证结果
```text
npx tsc --noEmit 通过
npm run build 通过(入口 500.19 kB,gzip 162.01 kB)
GET /orders 200
GET /orders/1 200
GET /api/orders?status=pending_payment ok,返回空列表
```
开发库当前无订单,未执行下单、支付、交接或结账写操作。
## 7. 已知限制
1. 证据仍只支持链接,未接图片上传。
2. 未展示订单群聊入口。
3. PC 端没有隐藏订单、实名认证与客服入口。
4. 结账未接资源使用量快照与试算。
5. 订单列表没有关键字搜索与时间范围筛选。
## 8. 下一步建议
1. 订单群聊入口与证据上传。
2. 移动端实名认证与客服入口。
3. 聊天 SSE 与附件上传。
4. 结账资源快照与金额试算。
+1 -1
View File
@@ -381,7 +381,7 @@ hfb_jysh/
### Phase 3:C 端 PC + 移动端(3 周)
> 状态:**进行中(2026-10-30)**。移动端已完成首页、商品列表/详情、下单确认、登录、个人中心、订单列表/详情、消息中心与聊天,并接入支付、交接、确认收号、结账、还价与申诉;PC 商品详情与下单已接通,移动端实名认证入口、PC 订单中心与操作页待迁移。
> 状态:**进行中(2026-10-30)**。移动端已完成首页、商品列表/详情、下单确认、登录、个人中心、订单列表/详情、消息中心与聊天,并接入支付、交接、确认收号、结账、还价与申诉;PC 商品详情、下单、订单中心与操作页已接通,移动端实名入口、订单群聊与证据上传待迁移。
- 首页、商品列表、商品详情、撞车商品。
- 登录、注册、找回密码、实名认证。