diff --git a/docs/superpowers/specs/2026-08-12-mobile-oa-detail-actions-fold-design.md b/docs/superpowers/specs/2026-08-12-mobile-oa-detail-actions-fold-design.md new file mode 100644 index 00000000..0492fa53 --- /dev/null +++ b/docs/superpowers/specs/2026-08-12-mobile-oa-detail-actions-fold-design.md @@ -0,0 +1,113 @@ +# 移动端 OA 待办详情 · 底栏操作折叠与默认备注 + +| 项 | 内容 | +|----|------| +| 日期 | 2026-08-12 | +| 范围 | `mobile-oa-h5` 审批详情底栏(待办中心 webview);意见 / 加签 / 转交默认备注 | +| 视觉 Demo | `mobile-ui/zkxw-mobile-oa-detail-actions-demo.html`(方案 A) | +| 关联 | `2026-08-12-mobile-oa-task-centers-design.md`(详情办理能力) | + +## 1. 背景 + +待办中心打开审批详情(`mode=approve`)时,底栏一次性展示关闭、打印、拒绝、打回、加签、转交、同意,按钮过多、字号被迫缩小,主路径不清晰。 + +产品要求: + +1. 默认只展示 **同意**、**打回**;其余收入 **⋯ 更多**。 +2. 点击同意等需要备注的操作时弹出意见输入,并 **预填默认备注**(可改)。 + +## 2. 目标与非目标 + +### 目标 + +- 审批态底栏:`⋯` + 打回(若允许)+ 同意。 +- 更多:底部 ActionSheet,含拒绝 / 加签(若允许) / 转交 / 打印 / 关闭。 +- 同意、打回、拒绝、加签说明、转交说明均预填默认备注。 + +### 非目标 + +- 不改 `mobile-h5` 列表页。 +- 不改后端 API / 意见必填引擎规则(打回仍前端必填校验)。 +- 不改非审批态底栏(只读关闭/打印、撤销、复制并重新发起)。 +- 不做 Web 管理端详情底栏同步(除非另开变更)。 + +## 3. 方案选择 + +采用 Demo **方案 A**: + +| 方案 | 说明 | 结论 | +|------|------|------| +| A | `⋯` + 打回 + 同意;更多 = ActionSheet | **采用** | +| B | 关闭常显 + `⋯` + 打回 + 同意 | 未采用 | +| C | 文字「更多」+ 气泡菜单 | 未采用 | + +## 4. UI 与交互 + +### 4.1 审批态底栏(`canApprove === true`) + +从左到右: + +1. **⋯**(更多):打开 ActionSheet。 +2. **打回**:仅当 `detail.allowReturn !== false`;否则不渲染,底栏为 `⋯` + 同意。 +3. **同意**:主色实心按钮;打开意见弹窗。 + +样式对齐现有 `oa-detail__btn*`:`⋯` 为固定宽度描边按钮(约 44px),打回 ghost,同意 primary。 + +### 4.2 更多 ActionSheet + +顺序固定: + +1. 拒绝 +2. 加签(仅 `detail.allowAddSign !== false`) +3. 转交 +4. 打印 +5. 关闭 + +- 使用 Vant `van-action-sheet`(或等价底部 Popup 列表)。 +- 点击某项后关闭 Sheet,再执行对应逻辑(意见弹窗 / 加签选人 / 转交选人 / `onPrint` / `onClose`)。 +- `acting` 或 `printing` 时底栏与更多项禁用。 + +### 4.3 非审批态 + +保持现状:关闭、打印、(条件)撤销、(条件)复制并重新发起。**不**引入「更多」。 + +## 5. 默认备注 + +打开对应输入时预填;用户可修改或清空;提交前 `trim`。 + +| 操作 | 默认备注 | 必填 | +|------|----------|------| +| 同意 | `同意` | 否 | +| 打回 | `请修改后重新提交` | 是(清空则 Toast「打回意见必填」,不关闭弹窗) | +| 拒绝 | `拒绝` | 否 | +| 加签说明 | `加签` | 否 | +| 转交说明 | `转交` | 否 | + +实现要点: + +- `openComment(kind)`:按 kind 写入 `commentText` 默认值(不再置 `''`)。 +- `openAddSign` / `openTransfer`:说明字段预填「加签」「转交」(不再置 `''`)。 +- 提交仍走现有 `fetchApproveOaTask` / `fetchRejectOaTask` / `fetchReturnOaTask` / `fetchAddSignOaTask` / `fetchTransferOaTask`;成功后 `closeToMini` 行为不变。 + +## 6. 实现落点 + +| 文件 | 变更 | +|------|------| +| `mobile-oa-h5/src/views/OaDetail.vue` | 审批态底栏折叠;ActionSheet;默认备注 | +| `mobile-ui/zkxw-mobile-oa-detail-actions-demo.html` | 已存在,作视觉权威 | + +无需新 API、无需改 `mobile-h5`。 + +## 7. 验收 + +1. 待办详情审批态默认只见 `⋯`、打回、同意(无打回权限时仅 `⋯`、同意)。 +2. 更多含拒绝、加签(若允许)、转交、打印、关闭,顺序正确。 +3. 同意 / 打回 / 拒绝弹窗预填默认备注;打回清空后无法提交。 +4. 加签 / 转交面板说明预填「加签」「转交」。 +5. 操作成功后仍通知宿主关闭并刷新列表(与现网一致)。 + +## 8. 决策记录 + +| 日期 | 决策 | +|------|------| +| 2026-08-12 | 采用方案 A;默认备注文案按 §5;关闭/打印进更多。 | diff --git a/mobile-ui/zkxw-mobile-oa-detail-actions-demo.html b/mobile-ui/zkxw-mobile-oa-detail-actions-demo.html new file mode 100644 index 00000000..ea94e7bb --- /dev/null +++ b/mobile-ui/zkxw-mobile-oa-detail-actions-demo.html @@ -0,0 +1,964 @@ + + +
+ + +
+ 对齐现网 mobile-oa-h5 审批详情底栏:默认只露出「同意 / 打回」,其余收入「更多」;
+ 需要意见的操作弹窗预填默认备注,用户可改。
+
| 操作 | 默认备注 | 说明 |
|---|---|---|
| 同意 | 同意 | 意见可选,预填后可直接确定 |
| 打回 | 请修改后重新提交 | 意见必填;预填满足必填,可改 |
| 拒绝 | 拒绝 | 意见可选 |
| 加签 | 加签 | 说明可选;选人后仍可改备注 |
| 转交 | 转交 | 说明可选;选人后仍可改备注 |
点右侧「同意 / 打回 / 拒绝」可看预填弹窗;加签 / 转交在本 Demo 仅 Toast 示意(真实页仍为选人面板 + 预填说明)。
+可修改默认备注后确定
+