dcdc8deab8
文件区改为固定 `/` 根节点的单栏资源管理器树, 在同一树中同时展示目录和文件,并移除文件夹总览区块 同时收紧快捷指令编辑弹窗尺寸并优化窄屏为上下布局, 降低小分辨率下的溢出概率,并同步更新中英文 README 及 `.helloagents` 方案记录
2.2 KiB
2.2 KiB
变更提案: workbench-file-root-tree
元信息
类型: 功能调整
方案类型: implementation
优先级: P1
状态: 已完成
状态说明: 已改为固定 / 根节点的单栏资源管理器树,并通过前端构建验证
创建: 2026-03-26
1. 需求
背景
上一轮虽然去掉了单目录文件表格,但仍保留了“文件夹总览”区块,而且根目录会随当前路径变化,不符合实际想要的资源管理器体验。
目标
- 文件区只保留一个资源管理器树。
- 根节点始终固定显示
/。 - 目录展开时同时显示子目录和文件,文件作为叶子节点显示。
约束条件
范围约束: 优先只改 FileManager.vue,不改后端接口与 SFTP 协议
状态约束: 继续复用 useSftpActions 的 fileTree 和 loadDirectory(path)
交互约束: 点击目录只展开和聚焦,点击文件按现有逻辑打开
兼容约束: 顶部工具栏、路径栏、上传与新建动作保持可用
验收标准
- 文件区只保留单栏资源管理器树
- 根节点始终固定显示
/ - 目录下同时展示子目录和文件
- 前端构建通过
2. 方案
技术方案
在 FileManager.vue 中去掉多根目录和文件夹总览派生结构,改为以 / 为唯一 explorer root,树节点直接基于 fileTree 递归渲染所有已加载的目录和文件,按“目录在前、文件在后”排序。主内容区改成单栏树视图,点击目录只负责展开与调用 loadDirectory(path) 以懒加载子节点,点击文件则继续复用现有 openFileInWorkspace。
影响范围
涉及模块:
- frontend: FileManager.vue
预计变更文件: 1-4
风险评估
| 风险 | 等级 | 应对 |
|---|---|---|
/ 下初次只会显示已加载到 fileTree 的节点 |
中 | 在组件中确保优先加载 /,展开目录时继续复用现有懒加载 |
| 右侧总览移除后,拖拽与右键的作用区域缩小 | 低 | 保留主容器和现有上下文菜单、上传入口,不改后端动作 |
| 树节点数量增多后单栏滚动深度增加 | 低 | 保留当前滚动容器与层级缩进,先满足准确交互 |