Files
nexus-terminal/.helloagents/archive/2026-03/202603260228_file-context-menu-terminal-actions/proposal.md
T
yinjianm 3d26bffc99 feat(frontend): 增强文件管理器上传与右键菜单
新增“上传文件夹”入口,选择目录后先在浏览器端打包为 zip,
上传完成后自动触发远端解压并尝试清理临时压缩包。
同时重排文件右键菜单,补齐终端子菜单、复制文件名与绝对路径等操作,
并扩展上传任务状态展示。

同步前后端包版本到 1.0.0,并将设置页版本显示规范为 1.0
2026-03-26 02:56:19 +08:00

2.5 KiB

变更提案: file-context-menu-terminal-actions

元信息

类型: 功能增强
方案类型: implementation
优先级: P1
状态: 已完成
状态说明: 已按参考图重排文件右键菜单并补终端子菜单动作,前端构建通过
创建: 2026-03-26

1. 需求

背景

当前文件区已有右键菜单基础能力,但结构、顺序和终端相关动作与参考图差距较大,尤其缺少“执行 cd 命令到终端 / 新建终端到当前目录”这类直接联动终端的入口。

目标

  • 将文件右键菜单按参考图重排为更接近资源管理器的结构。
  • 补齐终端子菜单,支持发送 cd 命令和新建终端到当前目录。
  • 保留现有下载、权限、复制路径、删除、上传等文件动作。

约束条件

范围约束: 优先限制在 FileManager.vue、FileManagerContextMenu.vue 和 useFileManagerContextMenu.ts
交互约束: 菜单结构接近参考图,但仍复用现有文件动作和上下文选择逻辑
兼容约束: 空白处右键、多选右键和单文件右键保持可用
后端约束: 不新增后端接口

验收标准

  • 单文件/目录右键菜单顺序与分组接近参考图
  • 终端子菜单支持“执行 cd 命令到终端 / 新建终端到当前目录”
  • 文件名和绝对路径可分别复制
  • 前端构建通过

2. 方案

技术方案

useFileManagerContextMenu.ts 中扩展菜单项模型,支持图标、危险态和更明确的子菜单结构;重排单项右键菜单为“刷新 / 新建 / 重命名 / 下载 / 权限 / 终端 / 复制 / 删除 / 上传”顺序,并将终端子菜单动作通过 FileManager.vue 暴露的现有终端发送逻辑与新建会话逻辑实现。FileManagerContextMenu.vue 同步渲染图标、危险态和二级菜单样式。

影响范围

涉及模块:
  - frontend: FileManager.vue
  - frontend: FileManagerContextMenu.vue
  - frontend: useFileManagerContextMenu.ts
预计变更文件: 3-6

风险评估

风险 等级 应对
新建终端后过早发送 cd 命令可能丢失 在新会话收到 ssh:connected 后再发送一次 cd
单项菜单重排后与多选/空白处菜单的分组不一致 仅对单项菜单贴近参考图,多选和空白处菜单保留现有能力并做最小整理
locale 新增文案可能与其他并行改动冲突 只做精确增量补丁,避免覆盖已有键