docs: design presign detail bottom bar with order-level actions only

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-10-14 12:09:18 +08:00
1 parent e16afdee95
commit f040f579d1
1 file changed
+56
@@ -0,0 +1,56 @@
# 预签约详情底栏仅订单级三按钮 — 设计说明
**日期:** 2026-10-14
**状态:** 已确认(方案 1)
**范围:** `mobile-oa-h5` 市场专员 / 地区经理「预签约订单」详情底栏;`mobile-h5` 经 WebView 复用,无独立改动
**前置:** 意向金转账操作已在编辑页转账卡片完成
## 1. 目标
列表卡片进入详情后,底部操作栏**只展示**订单级按钮(在后端授权范围内):
- 编辑
- 转正式协议
- 删除
不再在详情底栏展示意向金相关动作(添加 / 编辑 / 删除意向金、提交财务确认、撤回等)。意向金仅在编辑页操作。
## 2. 决策摘要
| 项 | 决策 |
|----|------|
| 实现点 | 改 `collectAllowedActions` 的 `presign` 分支 |
| 详情可用动作 | 仅 `edit` / `convert` / `delete`(`PRESIGN_ORDER_ACTIONS`) |
| 权限 | 仍取详情 `allowedActions` / `actions`,再与上述白名单求交 |
| 意向金 | 编辑页转账卡片继续用各笔 `allowedActions` + `transferAllowedActions` |
| 端覆盖 | 专员、经理同一套;不改 `mobile-h5` 壳 |
## 3. 实现要点
### 3.1 `action-policy.js`
`collectAllowedActions('presign', …)`:
- **保留**:从 `detail.allowedActions`(或 `detail.actions`)过滤出 `edit` / `convert` / `delete`
- **移除**:拼装 `transfers[].allowedActions` → nested 转账动作;拼装 `transferAllowedActions` → `create-transfer`
`PRESIGN_ORDER_ACTIONS`、`MarketBottomBar` 标签(编辑 / 转正式协议 / 删除)已存在,无需改文案。
`MarketModuleDetail` 继续调用 `collectAllowedActions`,无需为预签再加一层过滤。
### 3.2 测试
更新 `module-actions.test.js`(及任何断言「详情含 submit-transfer / create-transfer」的用例):
- 有订单授权时详情动作仅为 `edit` / `convert` / `delete`(子集)
- 转账级 `allowedActions` / `transferAllowedActions` **不再**出现在 `collectAllowedActions` 返回值中
- 非预签模块(payment / freight 等)行为不变
可选:契约测试确认详情底栏不出现「添加意向金」「提交财务确认」等文案绑定(若已有详情契约则改之)。
## 4. 非目标
- 不改编辑页意向金卡片与保存自动提交财务确认逻辑
- 不改 Web 管理端
- 不改后端 `allowedActions` 字段结构(后端仍可下发转账动作;前端详情底栏不再消费)
- 不强制已转正式 / 无权限时仍显示三个按钮(无权限则不显示对应项)