Skip to content

feat(web): 组织架构树(办公软件式,按 reports_to,可跨 owner) — #370 前端①#385

Merged
leeguooooo merged 1 commit into
mainfrom
feat/370-org-tree
Jul 12, 2026
Merged

feat(web): 组织架构树(办公软件式,按 reports_to,可跨 owner) — #370 前端①#385
leeguooooo merged 1 commit into
mainfrom
feat/370-org-tree

Conversation

@leeguooooo

Copy link
Copy Markdown
Owner

owner 定 #370 方案A + 组织架构走办公软件式管理层级组织树。这是前端①:组织树落地(后端 reports_to 已在 #378 合入)。

改动

  • OrgTree 组件:从 channel_roles.reports_to 建管理层级森林(buildOrgForest);防环/自引用/孤儿都兜底当 root(不无限递归、不丢节点)
  • 每节点:状态点(在线/可唤醒/离线)+ 名字(点开 AgentDetailModal)+ 角色徽章 + 跨 owner 归属徽章(归属账号 ≠ 上级账号时显示)+ moderator 就地设「向谁汇报」下拉
  • 接入分工面板顶部;setChannelRole web 端加 reportsTo 透传 + setReportsTo handler
  • i18n en+zh + CSS

验证

buildOrgForest 单测:跨 owner 挂靠 / 无 reports_to 为 root / 孤儿兜底 / 环路不无限递归 / 自引用当 root。web 655 全过(+5)、tsc/build 干净。

剩余(后续 PR)

分工/协调面板完整合并、任务详情/检索、#369 上传 UI。本 PR 落地 owner 最看重的组织树 + 跨 owner 汇报核心能力。

Refs #370
https://claude.ai/code/session_01PgxkZeqJmDge3dYe9W2tPZ

owner 定 #370 方案A:组织架构走办公软件式管理层级组织树。前端①落地组织树:

- 新增 OrgTree 组件:从 channel_roles.reports_to 建管理层级森林(buildOrgForest),
  防环/自引用/孤儿都当 root 兜底(不无限递归、不丢节点)
- 每节点:状态点(在线/可唤醒/离线)+ 名字(点开 AgentDetailModal)+ 角色徽章
  + **跨 owner 归属徽章**(归属账号 ≠ 上级账号时显示)+ moderator 可就地设「向谁汇报」下拉
- 接入分工面板顶部;web setChannelRole 加 reportsTo 透传;setReportsTo handler
- i18n en+zh;组织树 CSS

buildOrgForest 单测钉死:跨 owner 挂靠 / 无 reports_to 为 root / 孤儿兜底 /
环路不无限递归 / 自引用当 root。验证:web 655 全过(+5 OrgTree)、tsc/build 干净。

剩余(后续):分工/协调面板完整合并、任务详情/检索、#369 上传 UI。本 PR 落地
owner 最看重的组织树 + 跨 owner 汇报核心能力。

Refs #370

Claude-Session: https://claude.ai/code/session_01PgxkZeqJmDge3dYe9W2tPZ
@leeguooooo leeguooooo merged commit b4f3865 into main Jul 12, 2026
19 checks passed
leeguooooo added a commit that referenced this pull request Jul 12, 2026
owner 定 #370 方案A:把重叠的三个工具栏面板合成一个「团队」入口——组织架构、
分工、在线状态、协调一处看,解决「同一批信息拆到三个面板、来回跳」的认知负荷
(也是「协调很多用户用不明白」的根因)。

- 工具栏:分工/协调/Agent 三个按钮 → 单一「团队」按钮(分工数 + 在线数 + 协调
  活跃徽标)
- 团队面板:DivisionBoard(顶部 OrgTreePreview 组织树 + 分工编辑)+ Agent 状态板
  + 协调区,用分区标题让大信息量可扫读
- ChannelPanel 类型收敛 charter/team/tasks/search/settings;loadTaskLedger 覆盖 team
  (Agent 板需 task 数据);面板头 title/subtitle 走 team
- i18n en+zh + 分区 CSS

组织树核心(#385/#389)+ 本合并 = #370 方案A 落地。验证:web 661 全过(i18n 源
测试更新为团队按钮的在线态断言)、tsc/build 干净。

Refs #370

Claude-Session: https://claude.ai/code/session_01PgxkZeqJmDge3dYe9W2tPZ
leeguooooo added a commit that referenced this pull request Jul 12, 2026
#370 第 1 点:分工应在公告里单独一块展示、和其他内容分开。公告面板在 CharterBanner
下方加一条只读分工摘要(host=X · N worker · N reviewer),点「查看团队 →」跳到合并后
的团队面板看组织树/全貌。分工数据来自 channelRoles,不新造模型。

至此 #370 方案A 全部要点落地:①分工在公告单列(本 PR)②协调并入团队面板(#395)
③任务详情/检索(#271 + 附件 #369)④分工/协调/Agent/组织架构合并为团队面板(#385/#389/#395)。

验证:web 661 全过(i18n en/zh 对齐)、tsc/build 干净。

Refs #370

Claude-Session: https://claude.ai/code/session_01PgxkZeqJmDge3dYe9W2tPZ
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