b1f036fdc6
将文件管理区从单目录文件表格修正为多根目录常驻的文件夹总览, 点击目录时仅展开和聚焦,不再切换为单独目录列表。 同时修复快捷指令右键菜单的透明背景与粘贴语义, 统一为“粘贴到命令输入框”且不自动发送,并同步多语言文案。 顺带收紧快捷指令编辑弹窗的最小尺寸、初始尺寸与视口上限, 降低小分辨率下的弹窗溢出概率。
5.1 KiB
5.1 KiB
变更提案: quickcommands-context-menu-polish
元信息
类型: 优化
方案类型: implementation
优先级: P1
状态: 草稿
创建: 2026-03-26
1. 需求
背景
上一轮已经为快捷命令补上右键菜单,但用户进一步确认了三个运行态问题:菜单背景出现透明效果;不再需要“粘贴到终端”单独菜单项;原“粘贴到快捷输入框”应改成“粘贴到命令输入框”的语义和位置,即点击后写入底部终端命令输入框但不发送。
目标
- 将快捷命令右键菜单改为实底不透明菜单。
- 移除“粘贴到终端”菜单项。
- 将原“粘贴到快捷输入框”改为“粘贴到命令输入框”,并执行写入底部命令输入框但不发送的行为。
约束条件
时间约束: 本轮内完成右键菜单修正与前端验证
性能约束: 不新增依赖,仅调整现有菜单结构和前端逻辑
兼容性约束: 保留立即执行、复制命令、发送到全部服务器、编辑、删除等动作
业务约束: 粘贴到命令输入框必须只写入底部命令输入框,不自动发送
验收标准
- 右键菜单背景为实底不透明,不再出现透明感
- 菜单中不再显示“粘贴到终端”
- “粘贴到命令输入框”点击后写入底部命令输入框,但不发送
- locale 文案同步更新
packages/frontend构建通过
2. 方案
技术方案
继续在 QuickCommandsView.vue 上做最小修正。菜单容器改为显式深色背景与更强边框/阴影;删除“粘贴到终端” DOM 项与对应 action;把原 pasteToQuickInput 动作重命名并直接复用现有“写入底部命令输入框”的逻辑。同步三套 locale 文案与成功提示。
影响范围
涉及模块:
- frontend: `QuickCommandsView.vue` 右键菜单结构、样式和动作映射
- frontend: 快捷命令相关 locale 文案
预计变更文件: 3-4
风险评估
| 风险 | 等级 | 应对 |
|---|---|---|
| 菜单背景样式修正后与现有主题变量冲突 | 低 | 使用更明确的深色背景与现有边框/阴影组合,避免透明变量色 |
| 删除菜单项后动作顺序与用户预期不一致 | 低 | 让“粘贴到命令输入框”顶替原位置 |
| 文案与实际行为再次不一致 | 中 | 同时修改菜单文案、动作枚举和成功提示 |
3. 技术设计(可选)
架构设计
flowchart LR
A[QuickCommandsView menu] --> B[runNow]
A --> C[pasteToCommandInput]
A --> D[copy/edit/delete]
A --> E[sendToAllSessions]
数据模型
| 字段 | 类型 | 说明 |
|---|---|---|
quickCommandContextMenuVisible |
boolean |
右键菜单显示状态 |
quickCommandContextTargetCommand |
QuickCommandFE | null |
当前菜单目标命令 |
activeSessionId |
string | undefined |
当前活动会话,用于写入底部命令输入框 |
4. 核心场景
场景: 从右键菜单回填到底部命令输入框
模块: frontend 条件: 用户右键某条快捷命令,当前存在活动 SSH 会话。 行为: 点击“粘贴到命令输入框”后,把处理后的命令写入底部终端输入框,但不触发发送。 结果: 用户可以继续手改命令,再决定是否发送。
场景: 右键菜单视觉贴近普通实底菜单
模块: frontend 条件: 用户在快捷命令列表中打开右键菜单。 行为: 菜单以实底、边框和阴影显示,不透出底层列表内容。 结果: 菜单可读性和层级感更接近常规上下文菜单。
5. 技术决策
quickcommands-context-menu-polish#D001: 让“粘贴到命令输入框”直接复用已有底部命令输入框写入逻辑
日期: 2026-03-26 状态: ✅采纳 背景: 用户明确要求去掉“粘贴到终端”,并让替代项承担“写入底部命令输入框但不发送”的职责。 选项分析:
| 选项 | 优点 | 缺点 |
|---|---|---|
| A: 复用现有写入底部命令输入框逻辑 | 最小改动,行为清晰,和现有命令输入条一致 | 需要同步改菜单文案 |
| B: 保留原搜索框回填逻辑,只改文案 | 代码更少 | 行为与用户要求不符 |
| 决策: 选择方案A | ||
| 理由: 用户语义已经非常明确,应以实际行为一致性优先,而不是保留旧实现。 | ||
| 影响: frontend |
6. 成果设计
设计方向
- 美学基调: 延续深色工具菜单,但强调实底层级感
- 记忆点: 菜单不再发虚透底,操作文案与行为完全一致
- 参考: 用户上一轮反馈的运行态问题
视觉要素
- 配色: 使用稳定深色背景 + 边框 + 阴影,删除项继续使用错误色
- 字体: 沿用现有菜单字体体系
- 布局: 删除一项后保持紧凑垂直列表
- 动效: 保留现有 hover 过渡
- 氛围: 以可读性和稳定感为主,不做多余装饰
技术约束
- 可访问性: 文案必须直接说明“命令输入框”,避免再混淆
- 响应式: 保持现有防越界定位逻辑