Files
nexus-terminal/.helloagents/plan/202605012111_file-manager-ui-redesign/tasks.md
T
yinjianm 6975037414 feat(frontend): 在状态监控中显示 CPU 型号并启用网络图提示
在 CPU 卡片中增加型号文本展示,补充更完整的设备信息。
同时为紧凑模式下的网络历史图启用 tooltip,便于查看带宽细节。
2026-05-01 23:16:11 +08:00

105 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@feature: file-manager-ui-redesign
@created: 2026-05-01 21:11
@status: pending
@mode: implementation
## 进度概览
- 完成: 0 / 失败: 0 / 跳过: 0 / 总数: 9
## 任务列表
### 阶段1: 目录树与工具栏 UI 重设计
- [ ] 1.1 重设计目录树样式 — 紧凑树视图
- 文件: `packages/frontend/src/components/FileManager.vue` (模板 lines 2476-2530)
- 预期变更: 移除卡片边框和圆角,改为紧凑行布局;文件夹图标改为黄色;活动行改为绿色高亮;调整缩进和行高;优化树头部样式
- 完成标准: 目录树视觉匹配目标截图(紧凑行、黄色文件夹、绿色活动高亮、无卡片边框)
- 验证方式: 视觉对比目标截图
- depends_on: []
- [ ] 1.2 重设计工具栏 — 紧凑纯图标按钮
- 文件: `packages/frontend/src/components/FileManager.vue` (模板 lines 2371-2441)
- 预期变更: 移除按钮文字标签,保留纯图标;统一按钮尺寸 `w-7 h-7`;上传文件和上传文件夹合并为下拉菜单按钮
- 完成标准: 工具栏为纯图标按钮行,上传为下拉菜单
- 验证方式: 视觉对比目标截图,检查 tooltip 显示
- depends_on: []
### 阶段2: 传输管理面板
- [ ] 2.1 创建 TransferPanel.vue 组件
- 文件: `packages/frontend/src/components/TransferPanel.vue` (新建)
- 预期变更: 底部抽屉面板组件,含"全部/上传/下载"tab,统一展示上传和传输任务,空态"暂无传输任务"
- 完成标准: 组件独立运行,支持 tab 切换和空态展示
- 验证方式: 组件接收 props 正确渲染
- depends_on: []
- [ ] 2.2 集成 TransferPanel 到 FileManager
- 文件: `packages/frontend/src/components/FileManager.vue`
- 预期变更: 在文件管理器底部集成 TransferPanel,替代原 FileUploadPopup 的固定定位弹窗;添加传输面板展开/收起切换
- 完成标准: 传输面板在文件管理器底部正确展示,上传任务和传输任务统一显示
- 验证方式: 触发上传后传输面板展示任务
- depends_on: [2.1]
### 阶段3: 书签系统重构
- [ ] 3.1 后端数据库 migration — 添加 scope 字段
- 文件: `packages/backend/src/database/schema.ts`, `packages/backend/src/database/migrations/`
- 预期变更: `favorite_paths` 表新增 `scope` TEXT 字段(默认 'global')和 `connection_id` INTEGER 字段(nullable);编写 migration 脚本确保现有数据兼容
- 完成标准: 数据库表结构包含新字段,现有数据 scope 默认为 'global'
- 验证方式: 检查 schema 定义和 migration 逻辑
- depends_on: []
- [ ] 3.2 后端 API 扩展 — scope 查询支持
- 文件: `packages/backend/src/favorite-paths/favorite-paths.routes.ts`, `packages/backend/src/favorite-paths/favorite-paths.repository.ts`
- 预期变更: GET /favorite-paths 支持 `?scope=local&connectionId=X` 查询参数;POST/PUT 支持 scope 和 connection_id 字段
- 完成标准: API 正确按 scope 和 connectionId 过滤/保存书签
- 验证方式: API 请求测试
- depends_on: [3.1]
- [ ] 3.3 前端 store 扩展 — scope 支持
- 文件: `packages/frontend/src/stores/favoritePaths.store.ts`
- 预期变更: `FavoritePathItem` 类型添加 `scope``connectionId` 字段;CRUD 方法传递 scope 参数;新增 `activeTab` 状态和 `fetchByScope` 方法
- 完成标准: Store 支持按 scope 筛选和保存书签
- 验证方式: Store 方法调用正确传参
- depends_on: [3.2]
- [ ] 3.4 重设计 FavoritePathsModal — 书签列表 UI
- 文件: `packages/frontend/src/components/FavoritePathsModal.vue`
- 预期变更: 头部显示"书签列表 N";添加"本地"/"云端"tab 切换;每个书签卡片显示 scope 标签和操作按钮
- 完成标准: 书签列表 UI 匹配目标截图,支持 tab 切换筛选
- 验证方式: 视觉对比目标截图
- depends_on: [3.3]
- [ ] 3.5 重设计 AddEditFavoritePathForm — 添加 scope 选择器
- 文件: `packages/frontend/src/components/AddEditFavoritePathForm.vue`
- 预期变更: 在表单中新增"记录位置"scope 选择器(仅当前服务器/全局共享),保存时传递 scope 和 connectionId
- 完成标准: 表单支持选择书签 scope
- 验证方式: 创建书签时 scope 正确保存
- depends_on: [3.3]
### 阶段4: i18n 与收尾
- [ ] 4.1 添加 i18n 键
- 文件: `packages/frontend/src/locales/zh-CN.json`, `en-US.json`, `ja-JP.json`
- 预期变更: 添加传输面板、书签 scope、工具栏 tooltip 相关的所有新 i18n 键
- 完成标准: 所有新增 UI 文本均使用 i18n 键,三种语言文件同步更新
- 验证方式: 搜索硬编码字符串
- depends_on: [1.1, 1.2, 2.1, 3.4, 3.5]
## 执行日志
| 时间 | 事件 | 详情 |
|------|------|------|
| 2026-05-01 21:27:46 | 进度快照(自动) | 完成:0 失败:0 跳过:0 待做:10 (0%) |
| 2026-05-01 21:28:56 | 进度快照(自动) | 完成:0 失败:0 跳过:0 待做:10 (0%) |
| 2026-05-01 21:33:06 | 进度快照(自动) | 完成:0 失败:0 跳过:0 待做:10 (0%) |
| 2026-05-01 21:35:15 | 进度快照(自动) | 完成:0 失败:0 跳过:0 待做:10 (0%) |
| 2026-05-01 23:06:29 | PreCompact快照 | 完成:0 失败:0 跳过:0 待做:10 (0%) |
## 执行备注
- FileManager.vue 约 2570 行,修改时需精确定位模板区域避免副作用
- 数据库 migration 需确保 SQLite 兼容(ALTER TABLE ADD COLUMN
- 传输面板需同时消费 uploads(本地 ref)和 transferTasksAPI 轮询)两个数据源