feat(mobile): 接入订单支付交接结账与申诉操作

This commit is contained in:
yml2213
2026-10-30 13:47:58 +08:00
parent dd1d00227c
commit 52b6d439bf
8 changed files with 1122 additions and 39 deletions
+2 -2
View File
@@ -193,7 +193,7 @@ dist/assets/AdminLayout-*.js 36.87 kB │ gzip 13.02 kB
## 5. 已知限制
1. 移动端订单列表/详情与消息中心已接入真实接口;下单、支付、交接、归还、结账等操作仍待迁移。
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. 移动端订单列表、订单详情、消息与聊天。
1. 移动端下单创建、证据上传与订单群聊入口。
2. 后台列表页原型:DataTable、FilterBar、详情 Drawer、批量操作。
3. 先迁移后台订单列表与商品审核列表。
4. 分销后台主题轻改。
+103
View File
@@ -0,0 +1,103 @@
# Phase 2 验收报告(移动端订单操作)
> 日期:2026-10-30
> 项目:解忧商行(hfb_jysh)
> 范围:`/m/orders/:id`
> 结论:**本切片通过,移动端订单支付、交接、收号、结账、还价与申诉操作已接真实接口**
---
## 1. 接口与权限
所有接口都要求用户登录,并校验订单交易双方身份。
| 能力 | 接口 | 可操作角色与状态 |
| --- | --- | --- |
| 发起支付 | `POST /api/orders/:id/start-payment` | 租客,待支付 |
| 查询支付 | `GET /api/orders/:id/query-payment` | 租客,待支付 |
| 取消订单 | `POST /api/orders/:id/cancel` | 租客,待支付/待交接;待交接取消需客服审核退款 |
| 提交交接 | `POST /api/orders/:id/handoff` | 号主,待交接且轮到号主/号主超时 |
| 确认收号 | `POST /api/orders/:id/confirm-receive` | 租客,待租客确认收号 |
| 交接记录 | `GET /api/orders/:id/handoff-records` | 交易双方 |
| 发起结账 | `POST /api/orders/:id/checkout` | 租客,使用中/逾期且已收号 |
| 确认结账 | `POST /api/orders/:id/checkout/confirm` | 号主,轮到号主且押金无缺口 |
| 同意结账 | `POST /api/orders/:id/checkout/accept` | 租客,轮到租客且押金无缺口 |
| 修改方案 | `POST /api/orders/:id/checkout/counter` | 当前轮到的一方,未超过 6 轮 |
| 发起申诉 | `POST /api/orders/:id/dispute` | 交易双方,订单未终态且无进行中申诉 |
| 取消申诉 | `POST /api/orders/:id/dispute/cancel` | 申诉发起人,申诉处理中 |
## 2. 页面结构
`frontend/src/features/mobile/MobileOrderDetailPage.tsx`
- 保留订单概览、商品信息、金额、时间、结账单与申诉信息
- 新增「交接与结账记录」列表,展示交接说明、结账记录、确认状态与时间
- 底部新增订单操作区,由新组件 `MobileOrderActionPanel.tsx` 承载
- 操作按钮按角色、订单状态、交接状态与结账轮次动态显示
## 3. 支付
- 租客待支付时显示「去支付」「检查支付状态」
- 支付方式底部弹层:微信支付 / 支付宝
- 调用 `start-payment` 后优先打开 `jspay_url`、`td_code` 或 `jspay_info` 中的 HTTP 地址
- 支付单已支付或页面从支付渠道返回后,可点击「检查支付状态」查询并刷新订单
- 无支付链接时提示支付单已创建,避免误判支付成功
## 4. 交接与收号
- 号主提交交接说明:文本框必填,最多 1000 字,提交后进入待租客确认
- 租客确认收号:二次确认后订单进入使用中并开始计时
- 交接记录以列表展示,包含内容、创建时间、租客/号主确认时间
## 5. 结账
租客发起结账:
- 结账备注、消耗品金额、哈夫币消耗、押金扣除、证据链接
- 金额前端以元输入,提交前转换为分
- 提交前二次确认,明确提示结账会影响租金、押金与双方结算
号主/租客确认:
- 只有当前轮到的一方显示「确认结账」或「同意结账方案」
- 押金缺口大于 0 时禁止直接完结,提示修改方案或发起争议
修改方案:
- 回填当前结账单金额
- 消耗品金额、哈夫币消耗、押金扣除、修改原因、证据链接
- 展示当前协商轮次,最多 6 轮
## 6. 申诉
- 普通阶段可选:无法登录、账号异常、租金/押金争议、退款问题、其他
- 结账阶段自动提交 `checkout_dispute`,避免用户选错类型
- 申诉说明必填,证据链接按行拆分
- 提交前二次确认,明确进入仲裁流程
- 申诉发起人可取消申诉,取消后订单恢复到申诉前状态
## 7. 验证结果
```text
npx tsc --noEmit 通过
npm run build 通过(入口 498.51 kB,gzip 161.57 kB)
GET /m/orders/1 200
```
开发库当前没有订单数据,未执行支付、交接、结账或申诉写操作;接口路径、请求体与状态校验均按后端 handler/service 实现对齐。
## 8. 已知限制
1. 证据只支持填写链接,尚未接后台文件上传与图片预览。
2. 支付依赖渠道返回的 H5 地址或 App 内跳转,未内置二维码渲染。
3. 未展示订单群聊入口,聊天仍从消息中心进入。
4. 移动端下单创建流程尚未迁移,当前从商品详情直接下单仍待补齐。
5. 结账未接资源使用量快照,消耗品金额由租客手工填写。
## 9. 下一步建议
1. 移动端下单创建与支付前确认页。
2. 证据图片上传与订单群聊入口。
3. 结账资源使用量快照与金额试算。
4. PC 商品详情与下单链路。
5. 聊天 SSE 与附件上传。
+1 -1
View File
@@ -381,7 +381,7 @@ hfb_jysh/
### Phase 3:C 端 PC + 移动端(3 周)
> 状态:**进行中(2026-10-30)**。移动端已完成首页、商品列表/详情、登录、个人中心、订单列表/详情、消息中心与聊天;PC 端与下单/支付/交接/结账操作待迁移。
> 状态:**进行中(2026-10-30)**。移动端已完成首页、商品列表/详情、登录、个人中心、订单列表/详情、消息中心与聊天,并接入支付、交接、确认收号、结账、还价与申诉;移动端下单创建、PC 端完整链路待迁移。
- 首页、商品列表、商品详情、撞车商品。
- 登录、注册、找回密码、实名认证。