# ChatHistory 侧边栏折叠功能迁移计划 ## 参考来源 - **源文件**: `ClawX/src/components/layout/Sidebar.tsx:234-247` - **目标文件**: `zn-ai/src/pages/home/ChatHistory.vue:6` ## 源实现思路分析 `Sidebar.tsx:234-247` 的核心实现逻辑: 1. **状态驱动**: 通过 `useSettingsStore` 获取 `sidebarCollapsed` 布尔值与 `setSidebarCollapsed` setter。 2. **图标切换**: 点击按钮时,根据当前状态切换图标: - 展开状态 → 显示 `PanelLeftClose`(提示可收起) - 收起状态 → 显示 `PanelLeft`(提示可展开) 3. **样式过渡**: 外层 `aside` 通过 `transition-all duration-300` 配合条件类名 `w-16` / `w-64` 实现宽度动画。 4. **内容显隐**: 内部文字/列表在收起时隐藏(`!sidebarCollapsed && ...`),只保留图标按钮可点。 ## 迁移目标 将上述折叠/展开交互迁移到 `ChatHistory.vue`,使其第 6 行的 `RiSideBarLine` 图标具备切换侧边栏宽度的能力,并保持与现有 `zn-ai` 项目风格一致。 ## 实现步骤 ### 1. 状态定义(ChatHistory.vue 本地状态) 在 `