32 lines
1.2 KiB
Markdown
32 lines
1.2 KiB
Markdown
|
|
# 调度页目标服务器按分类选择
|
|||
|
|
|
|||
|
|
**日期**: 2026-06-08
|
|||
|
|
|
|||
|
|
## 变更摘要
|
|||
|
|
|
|||
|
|
调度新建/编辑表单中的「目标服务器」由 `v-select` 多选下拉,改为复用 `ServerCategoryPicker` 组件,支持按分类分组、分类全选、全选与搜索。
|
|||
|
|
|
|||
|
|
## 动机
|
|||
|
|
|
|||
|
|
与脚本页、推送等批量操作一致,2000+ 子机场景下按分类勾选比扁平下拉更易用。
|
|||
|
|
|
|||
|
|
## 涉及文件
|
|||
|
|
|
|||
|
|
- `frontend/src/pages/SchedulesPage.vue` — 接入 `ServerCategoryPicker`;`loadServers({ all: true })` 拉全量含 `category`
|
|||
|
|
|
|||
|
|
## 迁移 / 重启
|
|||
|
|
|
|||
|
|
- 仅前端静态资源,无需 DB 迁移或 API 重启
|
|||
|
|
|
|||
|
|
## 验证方式
|
|||
|
|
|
|||
|
|
1. `cd frontend && npm run build`
|
|||
|
|
2. 打开 `#/schedules` → 新建/编辑 → 确认分组卡片、全选、分类全选、搜索可用
|
|||
|
|
3. 保存后 `server_ids` JSON 与原先一致
|
|||
|
|
|
|||
|
|
## 2026-06-08 补充 — 保存失败无提示修复
|
|||
|
|
|
|||
|
|
- 目标服务器改用独立 `editorServerIds` ref(与脚本页一致),修复嵌套 `form.server_ids` v-model 不同步导致「已选 N 台」但提交为空
|
|||
|
|
- 对话框内增加红色 `saveError` 提示;全局 snackbar 提高 z-index,避免被 dialog 遮挡
|
|||
|
|
- `formatApiError` / `normalizeDetail` / `useSnackbar` 禁止空字符串提示
|