9.4 KiB
DR04 — 全局 Chat-First(WorkBuddy 风格)改造方案
版本:V1.1 日期:2026-09-14 状态:已完成主要收敛——统一工作台已落地,后续进入对象化深化阶段 目标对齐:
eai_agentplatform/frontend/src/views/tools/CHAT_UI_PREVIEW.html
2026-09-16 当前口径说明: 本文档记录的是 Chat-First 收敛阶段方案,保留历史实施细节。 当前正式产品命名与一级导航已统一为:
新建任务 / 项目 / 专员·技能·APP·连接器 / 长程APP / 知识库 / 后台管理 / 我的文中出现的助理 / 定时任务 / 资料库 / 更多等导航词,均属于阶段性方案,不再作为当前 canonical 名称;最新导航口径以SY22_Role_Skill_App_Unified_Task_Architecture.md为准。 同时,当前实现已将路由命名拆分为ai_route_* / object_entry_route / page_route三类,避免 AI 路由、对象入口与普通页面导航混同。
0. 命名统一(改造前置要求)
本项目为 数字员工平台 / AI Agent 平台(eai_agentplatform),不再是旧培训平台。 改造过程中,必须移除 / 替换所有旧培训平台命名与标题:
| 旧命名(需移除/替换) | 统一替换为 |
|---|---|
eaisalestrain_app / eai_ap_app / pj0231 |
eai_agentplatform / 数字员工平台 |
| 博昇内部培训平台 | 数字员工平台 / EAI Agent 平台 |
| 培训平台定位(知识库+考试+素材审批) | AI 数字员工平台定位 |
- 涉及范围:
CLAUDE.md、TOP_CODING_RULES.md、全部views/**与共享组件中的标题/文案、docs相关文档。 CHAT_UI_PREVIEW.html中的旧标题一并替换。
1. 改造目标(对齐 CHAT_UI_PREVIEW.html)
| 视觉元素 | 定义 |
|---|---|
| 主动能区背景 | #f0f2f5 浅灰 |
| 侧边栏 | 窄 220px,可折叠至 60px;背景 #f7f8fa;含「新建任务」+ 主导航 + 任务列表 + 用户信息 |
| 顶栏 | 极简 48px:选择工作空间 ▾ / 默认权限 ▾ + 🔔 |
| 主色 | 按钮渐变 #409eff→#2b63d9;激活高亮 #e1effe |
| 欢迎态 | 大标题 + 分类胶囊 + 模式胶囊 + 大输入框(文件/语音/引用)+ 圆形发送钮 + 最佳实践卡片 |
| 聊天态 | 用户右对齐深蓝 #2b63d9,AI 左对齐白底卡片,消息操作钮(复制/下载/追问) |
| 圆角 / 描边 / 阴影 | 10-16px、#e8ecf1、柔和阴影 |
2. 改造范围与策略
2.1 全局外壳(MainLayout.vue → WorkBuddy Shell)
- 移除:深蓝渐变顶栏(72px)、应用卡片左栏、底部运行面板。
- 新增:极简顶栏 + 窄侧边栏(新建任务 / 助理 / 项目 / 专员·技能·APP·连接器 / 定时任务 / 资料库 / 更多 / 任务列表 / 用户信息)。
- 内容区承载 Welcome 态 / Chat 态两种容器。
- 保留全部路由与业务跳转,仅改外观与信息架构。
2.2 AI 工具页(统一挂载到 /home)
| 页面 | 落地 |
|---|---|
智能助手 SmartAssistantPage.vue |
完整 Chat 优先 |
| 文档翻译 / 文案校对 / 语音转写 / 批量提取 | 已退出独立执行页,后续以对象化工具接入 |
| 合同审查 | 已退出独立执行页,后续以对象化配置面板接入 |
| 报告生成 | 已退出独立执行页,后续以对象化执行链接入 |
复用已有组件并统一到预览标准:ChatLayout.vue / ChatInputBar.vue / ChatMessage.vue / HistorySidebar.vue。
新增共享组件:全局顶栏、Welcome 欢迎态、分类/模式胶囊、最佳实践卡片。
2.3 业务页面(保留功能,统一视觉)
首页、工作台(专员/市场/工坊/知识库/控制台)、考试、系统管理、产品、课程等页面: 保留现有内容与交互逻辑,仅统一采用 WorkBuddy 视觉语言,并嵌入全局外壳容器。
3. 分阶段实施
- 外壳:重写
MainLayout.vue为 WorkBuddy Shell + 极简顶栏。 - 基建:统一
ChatLayout等共享组件到预览标准。 - AI 技能:继续从页面模型推进到
src/skills/*对象化实现。 - 业务页:逐页统一视觉,接入新外壳。
- 命名替换:按第 0 节替换旧培训标题/文案。
- 回归:全部路由可达、登录/权限、交互不被破坏。
4. 影响与风险
- 改动面大:
MainLayout.vue、全部views/**、共享组件、global.css。 - 业务逻辑不变,仅视觉与信息架构变化。
- 建议分批提交、可回滚。
5. 实施记录
5.1 已拍板决策
| 议题 | 决定 |
|---|---|
| 入口模型 | Chat-First 为主入口,/apps/* 业务工作台页面退役 |
| 推进顺序 | 先接路由导航,再改视觉 |
5.2 关键发现:Chat-First 页面此前「不可达」
阶段 1 之前,grep -rn "tools/" src/ --include=*.vue --include=*.js | grep -v "views/tools/" 无任何输出——
即没有任何 router.push / <router-link> / 配置项指向 /tools/* 或 /report-gen。
commit 5c0870a 的 Chat 界面并非损坏,而是入口全部指向 /apps/*(渲染 BusinessAppPage.vue,内含 0 个聊天组件)。
用户只能手动敲 URL 才能看到新界面。这不是旧代码问题,是路由未接入。
5.3 阶段完成情况
| 阶段 | 状态 | 说明 |
|---|---|---|
| 1. 路由接入 | ✅ 完成 | 新增 chat-tools 面;7 个 AI 工具入口;/ 与登录后均落到 /tools/smart-assistant |
| 2. 外壳重写 | ✅ 完成 | MainLayout.vue 重写为 WorkBuddy Shell |
| 3. AI 工具逐页 | ⏳ 进行中 | 智能助手页面结构仍与预览有差异(大输入框未居中为主视觉) |
| 4. 业务页统一视觉 | ⏳ 未开始 | |
| 5. 命名替换 | ⏳ 部分 | CLAUDE.md / global.css / Login.vue 已改;views/** 存量待清 |
| 6. 回归 | ⏳ 未开始 |
5.4 外壳落地细节(阶段 2)
- 单一侧边栏
220px(折叠60px),背景#f7f8fa,含「新建任务」渐变按钮 / 分组导航 / 底部用户信息。 - 极简顶栏
48px移入主列,含标题 / 搜索 / 通知 / 账号菜单。 - 已移除:深蓝渐变顶栏、应用卡片左栏、底部运行面板(
bottomTabs)。 - 保留工作区页签(不在移除清单内)。
- 侧边栏导航项按
router.resolve()校验可达性后再渲染,避免配置项变成死链。
5.5 侧边栏去重(重要)
ChatLayout.vue 内部自带一份与预览稿几乎一致的工作台侧边栏(220px / #f7f8fa,含新建任务、助理、项目、专员·技能·APP·连接器、定时任务、资料库、更多、任务列表)。
外壳重写后,AI 工具页会叠出两条 220px 侧边栏(共 440px)。
核查其后端支撑:
- 导航项(助理/项目/定时任务/资料库/更多)仅
emit事件,无任何路由,纯装饰。 - 任务列表来自硬编码数组(
SmartAssistantPage.vue中taskItems = ref([...]),:history-count="5"为字面量),系统内无会话存储。 - 唯一真实功能是「新建任务」→
handleNewChat重置消息。
处置: 全局外壳是唯一侧边栏。ChatLayout 新增 showSidebar 属性,默认 false;浮动折叠把手同样受控。
外壳「新建任务」通过 window 事件 wb:new-task 广播,ChatLayout 监听后转 newChat 事件,
使 6 个 AI 工具页无需各自改造即可保留重置行为。
5.6 与预览稿的有意偏离
预览稿顶栏含 选择工作空间 ▾ / 默认权限 ▾,侧边栏含「定时任务」「项目」。
本系统无对应数据与路由,故不照搬,改用真实可达路由填充导航——不制造无功能的装饰元素。
5.7 资料库降为一级入口 + 二级页签
需求: 资料库作为「AI 工具」下的一级菜单;其下二级菜单改为页签(不再占用侧边栏)。
实现:
- 侧边栏「AI 工具」组新增单一入口「资料库」,指向
knowledgeLinks[0]; 该入口带match: libraryRoutes,在五个子路由任意一个下均保持高亮。 - 原独立「资料库」分组移除(
knowledgeLinks五项不再逐条占位)。 - 新增
src/components/LibraryTabs.vue:下划线式二级页签,位于内容区顶部、固定不随页面滚动; 可见子项 ≤1 时不渲染;知识库管理沿用adminOnly过滤(非管理员看不到该页签)。
路由不变: 五个子路由(/knowledge-hub、/knowledge-management、/products、/courses、/company-train)
保持原路径,深链与站内既有跳转不受影响——本次仅调整信息架构,未改路由表。
内容区调整: .wb-content 由 overflow:auto 改为 flex 列 + 内层 .wb-content-scroll 承担滚动,
使二级页签固定。页面自身滚动行为不变。
5.8 待处理
/apps/*退役:涉及BusinessAppPage.vue、businessApps配置、workbenchstore 持久化的openTabs(默认值仍为/home)。- 配置与路由不一致(既有缺陷):
businessApps有 10 项,路由仅定义 7 条/apps/*。logistics-fulfillment、hr-email-sorter、resume-processor三项无路由,且旧左栏(getBusinessAppsByTier('industry'),5 项中 3 项无路由)本就在渲染死链。 当前已在渲染层过滤;配置层清理随/apps/*退役一并处理。 guards.js非管理员回退仍指向/home(5.3阶段 4 一并处理)。