# 变更提案: connections-tree-toolbar-menu-polish ## 元信息 ```yaml 类型: 功能增强 方案类型: implementation 优先级: P1 状态: 已完成 状态说明: 已完成连接管理页树工具栏与行内更多菜单整理,并完成构建及启动验证 创建: 2026-03-25 ``` --- ## 1. 需求 ### 背景 连接管理页上一轮已经补上多级标签树、列头排序和基础版“更多”菜单,但和参考图相比,左侧树仍缺少操作性工具栏,展开/折叠控制也不够直接;右侧列表的行内操作区仍显得偏拥挤,没有真正形成“连接主按钮 + 次级动作入菜单”的层次。 ### 目标 - 为左侧标签树补充更接近管理面板的树工具栏。 - 提供明确的展开全部 / 收起全部控制。 - 保留“连接”为主按钮,将编辑、测试、克隆、删除等操作整合进更完整的“更多”菜单。 ### 约束条件 ```yaml 范围约束: 优先限制在 ConnectionsView.vue,不改后端接口和 store 结构 兼容约束: 保留现有连接、编辑、测试、批量编辑和批量删除能力 交互约束: 行内主操作只保留“连接”,其余动作进入更多菜单 视觉约束: 延续当前黑绿主题和现有双栏管理台风格 ``` ### 验收标准 - [ ] 左侧树区域出现工具栏,并提供至少展开全部、收起全部两个控制 - [ ] 行内主按钮只保留“连接”,编辑、测试、克隆、删除统一纳入更多菜单 - [ ] 更多菜单在 SSH / 非 SSH 连接上都保持合理动作集合与禁用状态 - [ ] 前端构建通过 --- ## 2. 方案 ### 技术方案 在 `ConnectionsView.vue` 中补充树工具栏状态与辅助函数,基于现有 `tagTreeNodes` 统一派生全部可展开节点,实现展开全部/收起全部和范围清理;右侧结果区压缩主操作区,仅保留连接按钮,将测试、编辑、克隆、删除以受控下拉菜单方式集中呈现,并根据连接类型和批量模式控制可用性。 ### 影响范围 ```yaml 涉及模块: - frontend: ConnectionsView.vue 预计变更文件: 1 ``` ### 风险评估 | 风险 | 等级 | 应对 | |------|------|------| | 树工具栏和现有折叠按钮语义重叠 | 低 | 保留面板级收起,新增树级展开/收起,职责区分为“区域显隐”与“树层级控制” | | 菜单动作收拢后可发现性下降 | 中 | 保留醒目的“更多”按钮文案和图标,并把最常用动作排在菜单前部 | | 批量模式下菜单误触发行选择 | 低 | 菜单按钮和菜单项统一 stopPropagation,并在批量模式下明确禁用 | ### 实施结果 - `ConnectionsView.vue` 已新增树工具栏,提供展开全部、收起全部和重置范围控制,并在工具栏中回显当前范围标题。 - 左侧树继续复用现有多级标签路径推导,同时把“区域显隐”和“层级展开控制”分开处理。 - 右侧行内操作区已压缩为“连接”主按钮加“更多”菜单;编辑、测试、克隆、删除均移入菜单,SSH 测试项按连接类型显示。 - `npm run build --workspace @nexus-terminal/frontend` 通过。 - 运行态验证已完成前端预览启动,应用可进入登录页;但当前本地环境的 `/api/v1/*` 接口均返回 500,无法进入已登录的连接管理页做带数据目视验收。