# 待办中心 · 批量通过 / 打回 | 项 | 内容 | |----|------| | 状态 | 已确认 | | 日期 | 2026-08-13 | | 范围 | `mobile-h5` 待办中心列表页批量审批 | | Demo | `mobile-ui/zkxw-mobile-oa-pending-batch-actions-demo.html` | | 对齐 | 草稿箱自定义顶栏「管理」;抄送多选 / 批量栏交互 | --- ## 1. 目标 在移动端「待办中心」支持勾选多条待办,**批量通过**与**批量打回**,减少逐条进入详情审批的操作成本。 ## 2. 非目标 - 不做批量拒绝(降低误操作风险) - 不新增后端批量 approve/return API(本期前端串行调用现有单条接口) - 不做跨页 / 全库全选 - 不改造 web-admin 待办页 ## 3. 交互(SHALL) ### 3.1 顶栏 - 待办页使用 **自定义导航栏**(`navigationStyle: custom`),结构对齐草稿箱: - 左侧返回、居中标题「待办中心」、右侧「管理」/「完成」 - 搜索区仅保留关键词检索,**不**再放管理按钮 ### 3.2 管理态 - 点「管理」进入多选;点「完成」退出并清空勾选 - 管理态卡片左侧圆形勾选;选中卡片描边高亮 - 管理态点卡片 = 切换勾选;非管理态点卡片 = 进入审批详情(现有 webview) - 已勾选时展示批量栏:「已选 N 项」+「批量打回」+「批量通过」 - 未勾选时批量按钮禁用或隐藏批量栏(与 Demo 一致:无勾选则不展示栏) ### 3.3 意见弹层 | 动作 | 标题 | 默认意见 | 校验 | |------|------|----------|------| | 批量通过 | 批量通过 | 「同意」 | 可改、可空(与单条同意一致) | | 批量打回 | 批量打回 | 空 | **必填**,否则 toast「打回意见必填」 | 弹层提示:将对 N 条待办执行操作。同一意见应用于本次选中的全部任务。 ### 3.4 提交与结果 - 对选中 `taskId` **串行**调用: - 通过:`POST /web/admin/oa-approval/tasks/{id}/approve` - 打回:`POST /web/admin/oa-approval/tasks/{id}/return` - 结束后 toast 汇总:`成功 n,失败 m`(若全部成功可用更短文案如「已通过 n 条」) - 成功后退出管理态、清空勾选、刷新列表 ## 4. 实现要点 - API 封装:`mobile-h5/utils/oa-api.js` 增加 `fetchApproveOaTask` / `fetchReturnOaTask` - 页面:`mobile-h5/pages/oa/pending/index.vue`(顶栏、多选、批量栏、意见弹层) - 路由:`mobile-h5/pages.json` 待办页 `navigationStyle: custom` - 视觉 Token:三墙绿 `#0a9f6d` 等,对齐现有草稿箱 / 抄送页 ## 5. 验收 1. 标题栏有「管理」,搜索区无管理按钮 2. 管理态可勾选多条,批量通过默认「同意」且可空提交 3. 批量打回空意见被拦截 4. 部分失败时提示成功/失败数,列表刷新 5. 非管理态点卡片仍进审批详情