2026-08-13-oa-pending-batch-approve-return-design.md 2.8 KB

待办中心 · 批量通过 / 打回

项 内容
状态 已确认
日期 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. 非管理态点卡片仍进审批详情