Files
eaiadmin 90031b75f3 docs: 重构仓库文档目录并迁移训练素材
按当前架构重组 docs 目录,统一中文命名与目录分层,并将训练原材料迁移到独立目录以保持架构文档边界清晰。
2026-09-22 23:23:16 +08:00

9.4 KiB
Raw Permalink Blame History

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. 分阶段实施

  1. 外壳:重写 MainLayout.vue 为 WorkBuddy Shell + 极简顶栏。
  2. 基建:统一 ChatLayout 等共享组件到预览标准。
  3. AI 技能:继续从页面模型推进到 src/skills/* 对象化实现。
  4. 业务页:逐页统一视觉,接入新外壳。
  5. 命名替换:按第 0 节替换旧培训标题/文案。
  6. 回归:全部路由可达、登录/权限、交互不被破坏。

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 配置、workbench store 持久化的 openTabs(默认值仍为 /home)。
  • 配置与路由不一致(既有缺陷):businessApps 有 10 项,路由仅定义 7 条 /apps/*。 logistics-fulfillment、hr-email-sorter、resume-processor 三项无路由,且旧左栏(getBusinessAppsByTier('industry'),5 项中 3 项无路由)本就在渲染死链。 当前已在渲染层过滤;配置层清理随 /apps/* 退役一并处理。
  • guards.js 非管理员回退仍指向 /home(5.3 阶段 4 一并处理)。