feat(frontend): 增强文件管理器上传与右键菜单

新增“上传文件夹”入口,选择目录后先在浏览器端打包为 zip,
上传完成后自动触发远端解压并尝试清理临时压缩包。
同时重排文件右键菜单,补齐终端子菜单、复制文件名与绝对路径等操作,
并扩展上传任务状态展示。

同步前后端包版本到 1.0.0,并将设置页版本显示规范为 1.0
This commit is contained in:
yinjianm
2026-03-26 02:56:19 +08:00
parent dcdc8deab8
commit 3d26bffc99
26 changed files with 1142 additions and 198 deletions
@@ -0,0 +1,60 @@
# 变更提案: file-context-menu-terminal-actions
## 元信息
```yaml
类型: 功能增强
方案类型: implementation
优先级: P1
状态: 已完成
状态说明: 已按参考图重排文件右键菜单并补终端子菜单动作,前端构建通过
创建: 2026-03-26
```
---
## 1. 需求
### 背景
当前文件区已有右键菜单基础能力,但结构、顺序和终端相关动作与参考图差距较大,尤其缺少“执行 cd 命令到终端 / 新建终端到当前目录”这类直接联动终端的入口。
### 目标
- 将文件右键菜单按参考图重排为更接近资源管理器的结构。
- 补齐终端子菜单,支持发送 `cd` 命令和新建终端到当前目录。
- 保留现有下载、权限、复制路径、删除、上传等文件动作。
### 约束条件
```yaml
范围约束: 优先限制在 FileManager.vue、FileManagerContextMenu.vue 和 useFileManagerContextMenu.ts
交互约束: 菜单结构接近参考图,但仍复用现有文件动作和上下文选择逻辑
兼容约束: 空白处右键、多选右键和单文件右键保持可用
后端约束: 不新增后端接口
```
### 验收标准
- [x] 单文件/目录右键菜单顺序与分组接近参考图
- [x] 终端子菜单支持“执行 cd 命令到终端 / 新建终端到当前目录”
- [x] 文件名和绝对路径可分别复制
- [x] 前端构建通过
---
## 2. 方案
### 技术方案
`useFileManagerContextMenu.ts` 中扩展菜单项模型,支持图标、危险态和更明确的子菜单结构;重排单项右键菜单为“刷新 / 新建 / 重命名 / 下载 / 权限 / 终端 / 复制 / 删除 / 上传”顺序,并将终端子菜单动作通过 `FileManager.vue` 暴露的现有终端发送逻辑与新建会话逻辑实现。`FileManagerContextMenu.vue` 同步渲染图标、危险态和二级菜单样式。
### 影响范围
```yaml
涉及模块:
- frontend: FileManager.vue
- frontend: FileManagerContextMenu.vue
- frontend: useFileManagerContextMenu.ts
预计变更文件: 3-6
```
### 风险评估
| 风险 | 等级 | 应对 |
|------|------|------|
| 新建终端后过早发送 `cd` 命令可能丢失 | 中 | 在新会话收到 `ssh:connected` 后再发送一次 `cd` |
| 单项菜单重排后与多选/空白处菜单的分组不一致 | 低 | 仅对单项菜单贴近参考图,多选和空白处菜单保留现有能力并做最小整理 |
| locale 新增文案可能与其他并行改动冲突 | 低 | 只做精确增量补丁,避免覆盖已有键 |