# 数智 AI 聊天前端页面实现计划 > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** 在 `src/views/frontend` 目录下实现完整的数智 AI 聊天页面,包含左侧会话列表、聊天窗口、输入区(含@引用文件)、右侧文件列表面板。 **Architecture:** 采用 Vue 3 Composition API + Element Plus + SCSS,主页面 `index.vue` 整合各子组件,各组件职责单一,通过 props/emit 通信。 **Tech Stack:** Vue 3, Element Plus, SCSS --- ## 文件结构 ``` src/views/frontend/ ├── index.vue # 主页面 └── components/ ├── ConversationSidebar.vue # 左侧会话列表 ├── ChatHeader.vue # 顶部栏 ├── ChatWindow.vue # 聊天消息区 ├── InputArea.vue # 输入区域(含@引用) ├── FilePanel.vue # 右侧文件列表面板 ├── FileSelectModal.vue # @文件选择弹层 └── QuotedFiles.vue # 已引用文件区域 ``` --- ## Task 1: 创建目录结构 - [ ] **Step 1: 创建 components 目录** ```bash mkdir -p src/views/frontend/components ``` --- ## Task 2: 创建 ConversationSidebar.vue(左侧会话列表) **Files:** - Create: `src/views/frontend/components/ConversationSidebar.vue` - [ ] **Step 1: 创建组件文件** ```vue ``` --- ## Task 3: 创建 ChatHeader.vue(顶部栏) **Files:** - Create: `src/views/frontend/components/ChatHeader.vue` - [ ] **Step 1: 创建组件文件** ```vue ``` --- ## Task 4: 创建 ChatWindow.vue(聊天消息区) **Files:** - Create: `src/views/frontend/components/ChatWindow.vue` - [ ] **Step 1: 创建组件文件** ```vue ``` --- ## Task 5: 创建 QuotedFiles.vue(已引用文件区域) **Files:** - Create: `src/views/frontend/components/QuotedFiles.vue` - [ ] **Step 1: 创建组件文件** ```vue ``` --- ## Task 6: 创建 FileSelectModal.vue(@文件选择弹层) **Files:** - Create: `src/views/frontend/components/FileSelectModal.vue` - [ ] **Step 1: 创建组件文件** ```vue ``` --- ## Task 7: 创建 InputArea.vue(输入区域) **Files:** - Create: `src/views/frontend/components/InputArea.vue` - [ ] **Step 1: 创建组件文件** ```vue ``` --- ## Task 8: 创建 FilePanel.vue(右侧文件列表面板) **Files:** - Create: `src/views/frontend/components/FilePanel.vue` - [ ] **Step 1: 创建组件文件** ```vue ``` --- ## Task 9: 创建 index.vue(主页面整合) **Files:** - Create: `src/views/frontend/index.vue` - [ ] **Step 1: 创建主页面** ```vue ``` --- ## Task 10: 配置路由 **Files:** - Modify: `src/router/index.js` - [ ] **Step 1: 添加前端路由** 在 `dynamicRoutes` 中添加: ```javascript { path: '/frontend', component: Layout, children: [ { path: 'index', component: () => import('@/views/frontend/index'), name: 'Frontend', meta: { title: '数智 AI' } } ] } ``` --- ## Task 11: 测试验证 - [ ] **Step 1: 启动开发服务器验证** ```bash npm run dev ``` 访问 `/frontend/index` 验证: 1. 左侧会话列表可折叠/展开 2. 点击会话切换聊天窗口 3. 顶部栏智能体(默认选中)和文件按钮 4. 输入框 @ 触发文件选择弹层 5. 点击文件按钮展开右侧文件面板 6. 文件树可点击预览/编辑/保存 7. 布局自适应 --- ## 自检清单 - [ ] Spec 覆盖:每个设计功能都有对应实现 - [ ] 占位符检查:无 TBD/TODO/待实现 - [ ] 类型一致性:组件 props/emit 命名一致 - [ ] 组件独立:每个组件职责单一