Skip to content

fix(app-shell): 通知中心「活动动态」条目空白 — sys_activity 原始行未映射成 ActivityItem #2781

Description

@baozhoutao

现象

顶栏消息中心(InboxPopover)的**「活动动态」** tab 每条只显示相对时间(如 47m ·),主行(操作人 + 摘要)和 · 后的对象名全空白。

站内信/活动的列表页在当前 main 渲染正常(数据本身也正确),此 issue 只针对弹窗。

根因

packages/app-shell/src/layout/AppHeader.tsxfetchPresenceAndActivitiessys_activity原始行直接 cast 成 ActivityItem,没有做字段改名:

  • 原始行(plugin-audit 列名):summary / actor_name / object_name / timestamp
  • ActivityItem 期望:description / user / objectName / timestamp

于是 InboxPopover 渲染 {a.user} {a.description}{timeAgo(a.timestamp)} · {a.objectName} 时,user/description/objectName 全为 undefined,只有 timestamp 有值 → 即 47m ·

旁边的 hooks/useHomeInbox.ts 做了正确映射,两者本应一致(注释里也这么写),AppHeader 漏了。

取证

  • framework showcase 后端 REST 返回的 sys_activity 数据完整非空(summary/object_name/type 都在,actor_name 视写入方可能为 null)。
  • 用 console 连该后端复现:「活动动态」一堆 1m ·/7m · 空条目;列表页正常。

修复

在 AppHeader 里按 useHomeInbox 的方式把原始行映射成 ActivityItem(字段改名 + type 归一化 + 时间戳兜底 + 过滤空 summary)。

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