162 lines
10 KiB
Markdown
162 lines
10 KiB
Markdown
# 需求文档 · 问答中心左侧栏改造(0616)
|
||
|
||
> 整理自 2026-06-16 需求草稿。本批需求统一围绕「问答中心」菜单下 5 个页面入口的**左侧侧边栏**进行改造,目标是让每个业务页面的左栏从「通用导航」变为「贴合该业务场景的快捷入口 + 历史记录」。
|
||
>
|
||
> 菜单结构参考:`frontend-web/src/core/page-layout/sidebar-menu.ts` 中 `qa-center`(问答中心)分组,含 5 个子项,正好对应下文 5 条需求。
|
||
|
||
## 0. 背景与共性约定
|
||
|
||
| 需求 | 菜单项 | id | 现有路由 | 对应页面/组件 |
|
||
|------|--------|----|----------|--------------|
|
||
| 1 | 通用问答 | `general-qa` | `/page/workspace/chats/new` | Workspace Chat + 左栏(`recent-chat-list.tsx` 等) |
|
||
| 2 | 多智能体会商 | `multi-agent-roundtable` | `/page/strategy/qa/multi-agent-roundtable` | `roundtable-planning/pages/RoundtablePlanningPage.tsx` |
|
||
| 3 | zzJC支持 | `qa-zzjc` | `/page/strategy/agents/6bf/chats/new` | `pages/AgentChatPage.tsx` |
|
||
| 4 | zzXD应用 | `qa-zzxd` | `/page/strategy/agents/10d69686718349688e58a8790cb61024/chats/new` | `pages/AgentChatPage.tsx` |
|
||
| 5 | 课题研究 | `qa-research` | `/page/canvas/ai-writing` | `open-canvas/pages/AIWritingPage.tsx` |
|
||
|
||
**共性约定(适用于全部 5 条,除非单条另有说明):**
|
||
|
||
- 「更多」一律为可点击入口;点击后跳转到对应的完整列表/管理页(具体目标见各条「待确认」)。
|
||
- 列表为空时的兜底:参考各条「现状」中的级联/空态规则;无内容时该区块整体隐藏或显示占位文案(待 UI 设计确认,默认隐藏,与现有 `recent-chat-list.tsx` 一致)。
|
||
- 左栏宽度、折叠交互沿用现有侧边栏体系(`SidebarGroup` 系列组件)。
|
||
- 所有「智能体」相关数据复用 `core/agents`(`Agent` 类型已含 `is_pinned` / `is_favorite` / `featured_order`,scope 支持 `mine` / `square` / `builtin`)。
|
||
|
||
---
|
||
|
||
## 1. 通用问答 — 左侧栏改造
|
||
|
||
**页面**:`/page/workspace/chats/new`
|
||
|
||
### 1.1 现状
|
||
当前左栏主要展示「最近会话」列表(`recent-chat-list.tsx`,已过滤 `scheduler` / `bootstrap` / `roundtable` 类型线程,置顶会话优先)。
|
||
|
||
### 1.2 目标布局(自上而下)
|
||
左栏从上到下依次为三块:**新建回答按钮 → 常用智能体 → 聊天记录**。
|
||
|
||
#### ① 顶部:新建回答
|
||
- 左栏最顶部放置「**新建回答**」按钮(主操作)。
|
||
- 点击 = 开启一次全新的通用问答会话(等价于跳转 `/page/workspace/chats/new`)。
|
||
|
||
#### ② 常用智能体(最多 3 个 + 更多)
|
||
- 展示「常用智能体」卡片/列表项,**最多 3 个**。
|
||
- 数据来源采用**级联兜底**逻辑(取到即用,不足再降级):
|
||
1. 若用户有**置顶智能体**(`is_pinned = true`)→ 展示置顶的;
|
||
2. 否则展示**用户自己的智能体**(`scope = "mine"`);
|
||
3. 仍没有 → 展示**默认广场智能体**(`scope = "square"` / `builtin`,即广场默认推荐)。
|
||
- 三者按上述优先级取,最终最多取 3 个。
|
||
- 下方显示「**更多**」入口。
|
||
- 点击某个常用智能体 → 进入该智能体的对话(待确认:是否为该智能体新建会话)。
|
||
|
||
#### ③ 聊天记录(最多 10 条 + 更多)
|
||
- 展示用户的问答聊天记录,**最多 10 条**(沿用现有 `useThreads` + 过滤规则)。
|
||
- 下方显示「**更多**」入口。
|
||
- 点击「更多」→ **跳转到问答记录页面**(完整聊天记录列表页)。
|
||
|
||
### 1.3
|
||
- 「常用智能体」点击后「打开该智能体主页」
|
||
- 「常用智能体」的「更多」跳转目标页 智能体管理 `/page/strategy/agents`。
|
||
- 「聊天记录」的「问答记录页面」具体路由http://localhost:5173/#/page/workspace/chats。
|
||
- 级联兜底是(置顶组够 3 个就完全不展示我的/广场)如果不够「补足到 3 个
|
||
|
||
---
|
||
|
||
## 2. 多智能体会商 — 左侧栏重做
|
||
|
||
**页面**:`/page/strategy/qa/multi-agent-roundtable`(`RoundtablePlanningPage`)
|
||
|
||
### 2.1 现状
|
||
圆桌会商页已有业务链选择、分析草稿等能力(`roundtable-planning/api/chains.ts`、`hooks/useRoundtableDrafts.ts`)。需求要求**左栏整体重做**。
|
||
|
||
### 2.2 目标布局(自上而下)
|
||
|
||
#### ① 顶部:业务链(公共,前 3 个)
|
||
- 顶部展示**业务链**,仅取**公共**链条(`listChains("public")`,即所有已发布 `is_public = true` 的链条)。
|
||
- 仅展示**前 3 个**。
|
||
- 点击某条业务链 → 以该业务链启动一次会商(沿用现有"会商自动串联圆桌"流程,见记忆 `business-chain-mapping`)。
|
||
|
||
#### ② 下方:分析记录
|
||
- 业务链下方展示「**分析记录**」列表。
|
||
- 数据来源:圆桌分析草稿/历史(`useRoundtableDrafts` / `listDrafts`)。
|
||
- 点击某条分析记录 → 打开对应的历史会商分析。
|
||
|
||
### 2.3 待确认
|
||
- 「业务链」是否需要「更多」入口跳转到业务链条配置页(`/page/strategy/business-chains`)?需求未提及,默认仅展示前 3 个、无更多。 需要更多入口
|
||
- 「分析记录」是否需要分页/「更多」?需求未提及,默认展示全部或合理上限 分析记录默认全部吧。
|
||
- 公共业务链「前 3 个」的排序口径(创建时间倒序?已有 `listChains` 默认 newest first) 按照现在默认的显示来吧,然后要支持用户单选,如果用户选择后,点击进入多智能体研讨按钮时,直接按照选择的业务链进去执行,如果用户取消勾选,或没有勾选就还是打开弹窗。
|
||
|
||
---
|
||
|
||
## 3. zzJC支持 — 左侧栏改造(按类型聚合智能体)
|
||
|
||
**页面**:`/page/strategy/agents/6bf/chats/new`(当前为单一智能体 `6bf` 的对话页)
|
||
|
||
### 3.1 现状
|
||
当前 zzJC支持直接进入某个固定智能体(id=`6bf`)的对话页(`AgentChatPage`)。
|
||
|
||
### 3.2 目标布局
|
||
- **左栏按「类型」分组**,展示该类型下的智能体列表("类型"待确认,推测为智能体 `tags` / 分类)。
|
||
- 智能体分组**下方**展示**聊天记录**。
|
||
- 左栏**宽度与通用问答(需求 1)保持一致**("左侧是问答宽")。
|
||
|
||
### 3.3 Admin 设置入口
|
||
- 在 **admin 账号权限下**,页面**右侧顶部显示「设置」图标按钮**(齿轮图标)。
|
||
- 点击设置按钮 → 打开设置面板,可对该模块进行配置。
|
||
- 非 admin 账号不显示设置按钮(沿用 `sidebar-menu.ts` 中 `adminOnly` 同款角色判断)。
|
||
|
||
### 3.4 待确认
|
||
- 「类型」的确切含义:是智能体的 `tags`,还是 zzJC 业务自定义的一组分类?
|
||
- 现 zzJC 入口是单个智能体 `6bf`;改为「按类型展示多个智能体」后,**进入该菜单时默认落地页是什么**(智能体列表?还是仍默认进 `6bf` 对话)?是否需要新建一个 zzJC 聚合页。
|
||
- Admin「设置」具体可配置项:配置「该模块纳入哪些类型/哪些智能体」?还是其他(如默认智能体、欢迎语)?需明确设置项清单。
|
||
- 「聊天记录」过滤范围:仅 zzJC 相关会话,还是全部会话?
|
||
|
||
---
|
||
|
||
## 4. zzXD应用 — 左侧栏改造
|
||
|
||
**页面**:`/page/strategy/agents/10d69686718349688e58a8790cb61024/chats/new`
|
||
|
||
### 4.1 需求
|
||
**与需求 3(zzJC支持)完全一致**:
|
||
- 左栏按类型展示该类型下的智能体 + 下方聊天记录;
|
||
- 左栏宽度同通用问答;
|
||
- admin 账号下右侧顶部显示设置图标按钮,可设置。
|
||
|
||
### 4.2 待确认
|
||
- 同需求 3 全部待确认项。
|
||
- zzXD 与 zzJC 是否共用同一套「按类型 + 设置」组件(仅数据源/默认智能体不同),还是各自独立配置?建议**抽象为同一可复用组件**,通过参数区分。
|
||
|
||
---
|
||
|
||
## 5. 课题研究 — 左侧栏改造(研究模板 + 笔记本)
|
||
|
||
**页面**:`/page/canvas/ai-writing`(`AIWritingPage`)
|
||
|
||
### 5.1 目标布局(自上而下)
|
||
|
||
#### ① 上半部分:研究模板
|
||
- 左栏上半部分展示「**研究模板**」。
|
||
- 研究模板 = **原来的「文章类型」**(`open-canvas/hooks/useArticleTypes.ts` 的 `articleTypes`,即 AI 写作表单里的「文章类型」选择项)。
|
||
- 点击某个研究模板 → 以该模板/文章类型发起课题研究(沿用现有 `articleType` 设置逻辑)。
|
||
|
||
#### ② 下半部分:笔记本
|
||
- 左栏下半部分展示「**笔记本**」。
|
||
- 笔记本内容 = **「简洁模式」左侧菜单下方展示的笔记本内容**(`useStudioNotebooks`,即 `workspace-nav-studio.tsx` 中渲染的 studio notebooks 列表)。
|
||
- 点击某个笔记本 → 打开该笔记本(沿用现有 `/page/workspace/studio/notebooks/{id}` 行为,或作为课题研究的素材来源 `materialSource = 'notebook'`,待确认)。
|
||
|
||
> 备注:草稿原文写作「简介模式」,结合代码应为「**简洁模式**」(`appearance-settings-page.tsx` 中的全局界面模式:全量 / 简洁;简洁模式下笔记本在左栏菜单展示)。
|
||
|
||
### 5.2 待确认
|
||
- 「研究模板」点击行为:仅预填表单 `articleType`,还是直接开始生成?
|
||
- 「笔记本」点击行为:跳转笔记本详情页,还是将笔记本设为当前课题研究的素材来源(`materialSource='notebook'`)?
|
||
- 上/下两部分是否各自可折叠、是否需要「更多」入口与数量上限?需求未提及。
|
||
|
||
---
|
||
|
||
## 6. 整体待确认与建议
|
||
|
||
1. **复用性**:需求 3 / 4(zzJC / zzXD)布局完全相同,建议实现为同一套「按类型分组 + 聊天记录 + admin 设置」可复用组件,通过配置区分模块。
|
||
2. **左栏宽度统一**:需求 1 / 3 / 4 都要求"问答宽",建议统一左栏宽度常量,避免各页面各写一套。
|
||
3. **「更多」目标页**:需求 1 涉及「智能体更多」「聊天记录更多→问答记录页」两个跳转目标需先确定路由是否已存在。
|
||
4. **Admin 设置项清单**:需求 3 / 4 的设置面板具体能配置什么,需要产品给出字段清单后才能落地。
|
||
5. **入口语义变更**:需求 3 / 4 把原「单一智能体对话」入口改为「按类型聚合」,菜单 `path` 与默认落地页可能需要调整,需同步确认。
|