Skip to content

[approvals] 转签审计默认 comment 落裸用户 ID("<from_id> → <to_id>"),审批动态里看不出谁转给谁 #4365

Description

@baozhoutao

现象

console 审批中心(/_console/apps/setup/system/approvals)打开一条审批请求,「审批动态」里的转签条目长这样:

转签 · Dev Admin
"Jfyo0owBk90dmVCRfYfJNp9CErER6GqC → ajrUFxCjpjvl1VYMACCWDTsPsgTJHWFG"

条目头的操作者(Dev Admin)是解析过显示名的,但「谁转给谁」这条最关键的信息是两个裸 user id,业务用户完全看不懂。

根因

  1. 服务端把裸 ID 当人类可读注释写库:packages/plugins/plugin-approvals/src/approval-service.tsreassign(),审计行默认注释:

    comment: input.comment??`${from}${to}`,// from/to 都是 user id
  2. sys_approval_action 没有结构化的 from/to 字段,转签双方只存在于这条自由文本 comment 里。

  3. console 只能原样渲染:apps/console/src/pages/system/ApprovalsInboxPage.tsx(~L1907)把 a.comment 直接斜体引用输出。comment 是不透明文本,客户端既没法可靠解析也没法补救——下游项目无任何覆盖通道。

建议

倾向结构化方案:

  • sys_approval_action 增加 reassign_from / reassign_to(或 payload 字段),getRequest/listRequests 返回时随 actor_name 一并解析显示名;
  • console 转签条目渲染成「从 A 转给 B」,comment 回归纯用户输入(用户没填就不显示);
  • 最低成本兜底:写默认 comment 前先解析两个 id 的显示名(但 comment 承载结构化语义仍不理想,且存量行已坏)。

版本 / 下游

  • @objectstack/*@17.0.0-rc.0
  • 下游项目 steedos-labs/os-project-titanwind-ehr#664(有截图)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions