From eae1e31c23d55e79c13c343806414ef11ae3b04c Mon Sep 17 00:00:00 2001 From: Yoga <1836051468@qq.com> Date: Sat, 8 Aug 2026 16:30:08 +0800 Subject: [PATCH] =?UTF-8?q?docs(plan):=20frontend=20=E9=A1=B6=E9=83=A8?= =?UTF-8?q?=E9=87=8D=E6=8E=92=20+=20=E6=90=9C=E7=B4=A2=E9=AB=98=E4=BA=AE?= =?UTF-8?q?=20+=20=E5=88=86=E7=BB=84=E9=BB=98=E8=AE=A4=E5=B1=95=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- .../2026-08-08-frontend-header-restructure.md | 542 ++++++++++++++++++ 1 file changed, 542 insertions(+) create mode 100644 docs/superpowers/plans/2026-08-08-frontend-header-restructure.md diff --git a/docs/superpowers/plans/2026-08-08-frontend-header-restructure.md b/docs/superpowers/plans/2026-08-08-frontend-header-restructure.md new file mode 100644 index 0000000..c62cd5b --- /dev/null +++ b/docs/superpowers/plans/2026-08-08-frontend-header-restructure.md @@ -0,0 +1,542 @@ +# Frontend 顶部重排 + 搜索高亮 + 分组默认展开 Implementation Plan + +> **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:** 把 ChatHeader 顶部右侧改为"清空 icon + 模型下拉 + 文件面板折叠 icon";标题前加 agentName 首字圆形 icon;文件面板默认展开;侧栏搜索框聚焦高亮;分组默认全部展开。 + +**Architecture:** 三个文件局部改动,不新增组件。ChatHeader 改为 props-driven(`modelOptions`、`modelValue`、`filePanelVisible`),通过 `update:modelValue` 与 `toggle-file-panel` 两个事件与父组件通讯。ConversationSidebar 调整 `syncExpandedWithCurrent` 默认行为并补充搜索框 `:focus` 样式。index.vue 默认 `filePanelVisible = true`、新增 `handleModelSelectChange` / `handleToggleFilePanel`、删除 `handleTabChange` 与 `setActiveTab` 调用。LlmModelModal 文件保留不引用。 + +**Tech Stack:** Vue 3.5 + Composition API + Element Plus 2.13(`el-select` / `el-option` / `Fold` / `Expand` / `Delete` 图标)+ Sass(sass-embedded 1.97)。无前端测试框架,沿用手动 dev 验证(Task 5)。 + +--- + +## File Structure + +| 文件 | 操作 | 职责 | +|---|---|---| +| `src/views/frontend/components/ChatHeader.vue` | 改 | 模板重排(avatar / clear icon / model select / sidebar fold icon);脚本替换(LlmModelModal 移除、新增 modelOptions 等 props、单一 update:modelValue 通道);样式新增(.agent-avatar / .icon-btn / .model-select) | +| `src/views/frontend/components/ConversationSidebar.vue` | 改 | `.sidebar-search` 追加 `:focus` 样式;`syncExpandedWithCurrent` 改为全部展开 | +| `src/views/frontend/index.vue` | 改 | `filePanelVisible` 默认 `true`;删除 `handleTabChange`;`handleFilePanelClose` 中移除 `setActiveTab` 调用;新增 `modelSelectOptions` computed、`handleModelSelectChange`、`handleToggleFilePanel`;模板 ChatHeader props 与事件调整 | +| `src/views/frontend/components/LlmModelModal.vue` | 保留 | 文件保留,未来如需"更多模型"入口再启用 | + +无新增文件;不新增组件抽象。 + +--- + +## Task 1: ChatHeader —— props 与事件契约改造 + +**Files:** +- Modify: `src/views/frontend/components/ChatHeader.vue:33-67`(`