2.6 KiB
2.6 KiB
服务器添加/编辑表单重设计
日期: 2026-06-02
状态: 已批准,实施中
背景
Vuetify 迁移后的 ServersPage 对话框与产品文档/后端 ServerCreate 严重偏离:
| 文档要求 | 当前 SPA | 后端 |
|---|---|---|
| 认证方式(密码 / SSH 密钥) | ❌ 缺失,仅密码框 | auth_method |
| 密码预设下拉,选后隐藏密码框 | ❌ | preset_id |
| SSH 密钥预设 + 路径 + 私钥粘贴 | ❌ | ssh_key_preset_id 等 |
目标路径必填,默认 /www/wwwroot |
❌ | target_path |
| Agent 端口隐藏 8601 | ❌ | agent_port |
| 分类 combobox(可选已有/自定义) | 纯文本 | category |
| 平台 / 节点(可选) | 仅平台 | platform_id / node_id |
目标
单对话框分区块,与 web/app/servers.html(2026-05-25/26 定稿)及 ServerCreate 对齐。
UI 结构
┌─ 添加服务器 ─────────────────────────────┐
│ 【基本信息】 │
│ 名称 * 域名/IP * SSH 端口 │
│ SSH 用户名 *(默认 root) │
│ 【认证方式】 ( ) 密码 ( ) SSH 密钥 │
│ [密码] 密码预设 ▼ (选预设则隐藏密码) │
│ [密钥] 密钥预设 ▼ 密钥路径 私钥 PEM │
│ 【部署】 │
│ 目标路径 * 默认 /www/wwwroot │
│ 分类 ▼(combobox,可自定义) │
│ 【高级 ▼】 │
│ 平台 节点 文件管理提权 │
│ [取消] [保存] │
└──────────────────────────────────────────┘
数据流
- 打开对话框:
GET /presets/、GET /ssh-key-presets/、GET /servers/categories、GET /assets/platforms、GET /assets/nodes - 保存:
POST/PUT /api/servers/发送完整ServerCreate/ServerUpdate字段;preset_id/ssh_key_preset_id仅传 ID,密码/私钥由后端解密预设 - 新建校验:目标路径非空;密码模式需
preset_id或手动密码;密钥模式需ssh_key_preset_id或私钥内容
验收标准
- 添加服务器可见认证切换、预设下拉、目标路径默认值
- 选密码预设后密码输入框隐藏
- 保存后 API 请求含
auth_method、target_path、preset_id等正确字段 - 编辑时回填
auth_method、preset_id、target_path、分类