feat(frontend): 将文件管理器改为固定根树视图
文件区改为固定 `/` 根节点的单栏资源管理器树, 在同一树中同时展示目录和文件,并移除文件夹总览区块 同时收紧快捷指令编辑弹窗尺寸并优化窄屏为上下布局, 降低小分辨率下的溢出概率,并同步更新中英文 README 及 `.helloagents` 方案记录
This commit is contained in:
@@ -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` 的节点 | 中 | 在组件中确保优先加载 `/`,展开目录时继续复用现有懒加载 |
|
||||
| 右侧总览移除后,拖拽与右键的作用区域缩小 | 低 | 保留主容器和现有上下文菜单、上传入口,不改后端动作 |
|
||||
| 树节点数量增多后单栏滚动深度增加 | 低 | 保留当前滚动容器与层级缩进,先满足准确交互 |
|
||||
Reference in New Issue
Block a user