feat(frontend): 将文件管理器改为固定根树视图

文件区改为固定 `/` 根节点的单栏资源管理器树,
在同一树中同时展示目录和文件,并移除文件夹总览区块

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