# 变更提案: 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 新增文案可能与其他并行改动冲突 | 低 | 只做精确增量补丁,避免覆盖已有键 |