From f42211b9c3a7f416acf379353b0751501e2faf0a Mon Sep 17 00:00:00 2001 From: stevelliu Date: Wed, 25 Mar 2026 15:17:21 +0800 Subject: [PATCH 1/9] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=20UI=20=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E4=B8=8E=E9=87=8D=E6=9E=84=E8=AE=A1=E5=88=92=EF=BC=8C?= =?UTF-8?q?=E4=B8=A5=E6=A0=BC=E5=AF=B9=E9=BD=90=20design/ui=5Fdemo=20?= =?UTF-8?q?=E5=8E=9F=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 ui-sync-with-demo 计划文档,详细列出重构任务与目标。 - 重构 SessionToolbar、Sidebar、SessionCard、KnowledgeView 和 TopBar 组件,确保样式与功能符合设计稿。 - 优化按钮样式,调整布局,增强用户交互体验。 - 更新 AppLayout 和其他相关组件以支持新样式和功能。 --- .../plans/ui-sync-with-demo_7774ca21.plan.md | 59 ++ apps/desktop/src/App.vue | 12 + apps/desktop/src/components/AppLayout.vue | 2 +- apps/desktop/src/components/SessionCard.vue | 458 ++++------ .../desktop/src/components/SessionToolbar.vue | 185 +++-- apps/desktop/src/components/Sidebar.vue | 337 ++++---- apps/desktop/src/components/TopBar.vue | 92 ++- apps/desktop/src/views/KnowledgeView.vue | 313 ++++--- apps/desktop/src/views/SessionsView.vue | 195 +++-- design/ui_demo.html | 779 ++++++++++++++++++ ...30\350\256\244\346\240\267\345\274\217.md" | 75 ++ ...70\350\247\201\351\227\256\351\242\230.md" | 1 + 12 files changed, 1728 insertions(+), 780 deletions(-) create mode 100644 .cursor/plans/ui-sync-with-demo_7774ca21.plan.md create mode 100644 design/ui_demo.html create mode 100644 "docs/\350\270\251\345\235\221/\346\241\214\351\235\242\345\272\224\347\224\250-\345\210\206\346\256\265\346\216\247\344\273\266-WebView\345\216\237\347\224\237button\351\273\230\350\256\244\346\240\267\345\274\217.md" diff --git a/.cursor/plans/ui-sync-with-demo_7774ca21.plan.md b/.cursor/plans/ui-sync-with-demo_7774ca21.plan.md new file mode 100644 index 0000000..10c5768 --- /dev/null +++ b/.cursor/plans/ui-sync-with-demo_7774ca21.plan.md @@ -0,0 +1,59 @@ +--- +name: ui-sync-with-demo +overview: 完全按照 design/ui_demo.html 原型还原项目的顶部导航、左侧目录树、顶部搜索栏、会话列表以及知识库视图,消除现存的样式差异。 +todos: + - id: sync-session-toolbar + content: 重构 SessionToolbar.vue 搜索与分段过滤器的布局和胶囊样式 + status: completed + - id: sync-sidebar-tree + content: 定制 Sidebar.vue 目录树源/主机/项目层级的视觉渲染样式,并在会话整理模式下处理多选框的交互样式 + status: completed + - id: sync-session-card + content: 将 SessionCard.vue 会话卡片重写为原型的上下垂直布局结构 + status: completed + - id: sync-knowledge-view + content: 还原 KnowledgeView.vue 的顶部操作栏布局和视图切换器样式 + status: completed + - id: sync-topbar + content: 核对 TopBar.vue 中切换按钮的最终呈现细节 + status: completed +isProject: false +--- + +# UI 样式深度还原计划 + +根据您提供的对比图与 `design/ui_demo.html` 原型,发现当前的实现与设计稿在组件布局和细节上有较大偏离。接下来的工作将严格对齐原型,执行以下重构: + +## 1. 顶部搜索栏与过滤区域 (`SessionToolbar.vue`) + +- **布局重构**:将搜索栏和过滤操作从现有的平铺结构改为上下两行布局。 + - 第一行:宽大的搜索框 + 次级“刷新”按钮。 + - 第二行:左侧为“分段选择器(Segmented Control)”样式(全部会话 / 待分析 / 已分析),包含带数字徽标的“待分析”状态;右侧为记录总数与 Tooltip 提示收纳。 +- **视觉风格**:去除当前原生的 `n-button` 过滤组,采用原型中胶囊背景槽加悬浮滑块的无边框设计。 + +## 2. 侧边栏目录树 (`Sidebar.vue`) + +- **节点自定义渲染**:使用 `n-tree` 的自定义渲染(`renderLabel`, `renderPrefix`, `renderSuffix`)精确控制每级节点的 DOM。 +- **层级样式对齐**: + - 一级(来源):使用特定的品牌色图标(如蓝色 Cursor、橙色 Claude Code 等)配合加粗标题。 + - 二级(主机):增加层级缩进,图标换为 `lucide-server`。 + - 三级(项目):带 `lucide-corner-down-right` 拐角指引和不同状态的文件夹图标,鼠标悬停时节点增加圆角高亮。 + - 数量徽标:放置在最右侧,使用单色等宽字体对齐(`font-mono text-[10px]`)。 +- **会话整理模式处理**:特别处理点击「会话整理」进入多选状态(`checkable=true`)时的交互样式,确保左侧的复选框能优雅融入自定义渲染的节点,且选择高亮时背景和样式保持整洁,与设计稿多选风格对齐。 + +## 3. 会话卡片列表 (`SessionCard.vue`) + +- **回归垂直排版**:抛弃目前采用的横向左右分列设计,严格按照原型的上下两层布局重构。 + - **上层视线区**:先展示状态 Tag(如:待分析 / 高价值)与来源角标,下方为主标题和摘要文字;最右侧为 Hover 显现的操作按钮。 + - **下层元数据区**:用顶部细线分割(`border-t`),采用横向平铺展示所属项目文件夹(带浅灰底色块)、时间、对话数与大小数据。 + +## 4. 知识库 Tab 页 (`KnowledgeView.vue`) + +- **操作栏还原**:顶部操作栏左侧为标题与记录数,右侧为并排的操作按钮组。 +- **功能按钮整合**:将“全选当页”与“清除选择”逻辑整合为一个按钮,并在选中时变为文字按钮外观。 +- **视图切换组件**:深度覆写 `n-radio-group` 的样式,使用和对话页同源的“大胶囊底槽”设计,配合白底阴影块实现列表/卡片的平滑切换效果。 + +## 5. 顶栏细节兜底 (`TopBar.vue`) + +- 确保中间的“对话记录 / 知识库”切换器彻底还原 `bg-slate-100/80` 胶囊包裹的方案,消除由于历史残留导致的 UI 割裂。 + diff --git a/apps/desktop/src/App.vue b/apps/desktop/src/App.vue index f52b6b5..5d14ed8 100644 --- a/apps/desktop/src/App.vue +++ b/apps/desktop/src/App.vue @@ -61,4 +61,16 @@ body { .dark ::-webkit-scrollbar-thumb { background-color: rgba(75, 85, 99, 0.35); } + +/** + * 分段条内的原生