2.0 KiB
2.0 KiB
前端组件化 Phase 2 – 侧栏与文件面板
交付内容
-
对话侧栏组件化
- 新增
static/src/components/ConversationSidebar.vue,集成 PiniauseConversationStore,提供对话列表、搜索、新建、复制、删除、加载更多等操作。 useConversationStore(static/src/stores/conversation.ts)负责对话分页、当前对话、调用/api/conversations系列接口;App.vue显示当前选中对话的概要。
- 新增
-
左侧文件/面板骨架
static/src/components/LeftPanel.vue+components/atoms/FileNode.vue渲染项目文件树,并预留待办/子智能体 Tab。useFileStore(static/src/stores/files.ts)封装/api/files加载逻辑并构建递归节点;FileNode 支持展开/收起与快捷下载。
-
页面布局重构
App.vue替换临时占位,组装ConversationSidebar + LeftPanel + MainArea布局;base.css补充基础样式。static/index.html中的新入口逻辑不变,依旧可通过localStorage.useNewFrontend切换。
-
实用工具
static/src/utils/api.ts提供统一 fetch 包装,简化 CSRF/错误处理。
使用说明
npm install # 如未安装依赖
npm run build # 生成 static/dist 供 Flask 加载
# 或 npm run dev 以 watch 方式重建
在浏览器执行 localStorage.setItem('useNewFrontend','1') 后刷新即可体验组件化侧栏;删除该键即可回退 legacy UI。
回归清单
- 登录后启用新前端,确认:
- 对话列表可加载/搜索/分页,新建/复制/删除接口有反馈;
- 选中某个对话后,主区域显示标题与元数据;
localStorage清除后回到旧版 UI。
- 左侧面板刷新文件树成功,点击文件的“下载”按钮可触发下载。
npm run build通过(已验证),构建产物位于static/dist/assets/。
Phase 3 将把聊天区、消息流和快捷菜单迁移到组件化架构中。