Skip to content

fix(dashboard): 按代码评审修工作台 —— 步骤条不漏隐藏字段的人名 · 超时结论认对 · 数字用全量(#202) - #204

Merged
yilecoding merged 3 commits into
mainfrom
fix/dashboard-review
Nov 2, 2026
Merged

yilecoding merged 3 commits into
mainfrom
fix/dashboard-review

Conversation

@yilecoding

Copy link
Copy Markdown
Owner

改了什么、为什么

#203 合并前跑的独立代码评审(code-review high)报了 10 条 + 2 条存疑,按约定合并部署后另开这个 PR 修。

# 问题 修法
1 我发起的步骤条漏出隐藏字段里的审批人名字(详情页预告是 masked,工作台照样写人名) 「后面的步骤」先过和详情页同一个 _mask_forecast,遮住的只给节点名
2 超时自动驳回的单子,最后一句说成上一个人「同意」:认的是不存在的 auto_approve 前后端都认引擎实际记的 timeout_approve / timeout_reject(及 AI / 取不到人),没有办理人时说「超时自动同意 / 驳回」
3 应用删了,名下被停用的 Webhook「严重」提醒永远清不掉 联表过滤软删的应用,和投递侧口径一致
4 退回的那一步画成绿勾 新增 sent_back 状态,前端用退回图标
5 sort=attention 超过 500 条丢的是最老的那批,total 封顶 500 截断时保留加急和最老的;total 单独 count
6 大标题加急数、「退回给我」只数取回来的一页(50 条) 后端新增可选字段 urgent_total / returned_total,前端用全量数
7 常用入口可见项超过 12 个时,第 13 个起取消不掉 勾选按整份可见清单算,超了提示「请取消几个」
8 登录失败突增按服务器时区算「今天」,和同屏柱状图对不上 attention 收 tz,和 visits 同一种切法
9 A→B→C 时 C 看到「A 转交给你」;管理员改派也说「转交」 取最近一条转交 / 改派记录,新增 transfer_kind
10 待办每行重复遍历流程树;失败任务 traceback N+1 按快照缓存节点索引;一条窗口函数查询
存疑 权限码自己收集,casbin 模式下与 user_has_perm 不一致 改调 user_has_perm
存疑 「看记录」任务名为空时带 name=null,执行记录页校验不过整页报错 为空不带这个参数

新增字段都是可选的(1.0 兼容约定:/api/v1/* 只加字段)。前端纯逻辑挪进 dashboard/card-rules.ts 便于单测。

自查清单

  • pnpm typecheck --force / pnpm lint / pnpm build / pnpm i18n:check && pnpm i18n:jsx / pnpm ctx:check / pnpm arch:check / pnpm test:js 过
  • 后端全套(私有 PostgreSQL 库 + 一次性 Redis):1487 过 · 18 跳过 · 0 红;工作台 + 个人偏好 42 条在 PostgreSQL 16 / SQL Server 2022 / MySQL 8.4 都绿
  • E2E:dashboard-personalize · notice-reach · workflow 三个文件 31 条过(本地 PostgreSQL)
  • 新增测试:后端 9 条、改写 2 条,前端单测 7 条;变异 18 个全部当场红
  • 结论追加进 workflow / admin / dashboard 三份分册

没有 E2E 的:步骤条的退回样式、「X 改派给你」、常用入口超过 12 个时的提示(后端行为和纯逻辑有测试)。

关联 issue

#202

🤖 Generated with Claude Code

yilecoding and others added 3 commits November 1, 2026 16:44
审批插件(query_service)
- 我发起的「后面的步骤」先过 `_mask_forecast`:审批人取自发起人看不到的人员字段时只给节点名(原来写出人名,绕过字段遮罩)
- 「最后一步」认引擎实际记的 `timeout_approve` / `timeout_reject`(原来写的是不存在的 `auto_approve`,超时驳回显示成上一个人的同意)
- 步骤条里退回的那一步是 `sent_back`,不是绿勾
- `sort=attention` 超过 500 条时留加急的 + 最老的;`total` 单独 count;另给 `urgent_total` / `returned_total`(新增可选字段)
- 转交来源取最近一条 transfer / reassign 记录(A→B→C 时 C 看到 B),新增 `transfer_kind` 区分转交和改派
- 待办行按快照缓存节点索引(`timeout_of` / `due_time` 收 `nodes`),不再每行遍历两遍整棵树

系统运行(dashboard_service)
- 权限判据改用 `rbac.user_has_perm`(白名单 / casbin 模式下和接口守卫一致)
- 被删应用下的 Webhook 端点不再提醒
- 登录失败突增的「今天」按查看人时区切(`attention?tz=`),条目带 `day`
- 失败任务的最后一行报错一条窗口函数查完(原来 N+1)

前端
- 大标题加急数 / 分段的数用后端全量数;「最后一步」那句话、需要你留意的按钮挪进 `card-rules.ts` 并单测
- 「看记录」任务名为空时不带 `name`;「X 改派给你」;步骤条退回样式
- 常用入口编辑器:勾着的按整份可见清单算,超过 12 个时提示并允许取消

测试:后端新增 9 条(workflow 7 · admin 4,含改写的 2 条)· 前端单测 7 条;变异 18 个各自当场红。
工作台两份后端测试在 PG 16 / SQL Server 2022 / MySQL 8.4 私有库上全绿;后端全量 1487 通过;
E2E dashboard-personalize / notice-reach / workflow 31 条通过。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@yilecoding
yilecoding merged commit f2968f1 into main Nov 2, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant