# 实施计划 — 服务器全选筛选 + 脚本失败分组/CSV **日期**: 2026-06-08 **设计**: `docs/design/specs/2026-06-08-servers-select-all-script-exec-export-design.md` ## 涉及文件 | 文件 | 变更 | |------|------| | `frontend/src/utils/csvExport.ts` | 新建:BOM CSV 构建与下载 | | `frontend/src/utils/execDetailGrouping.ts` | 新建:错误键归一化、失败分组 | | `frontend/src/pages/ServersPage.vue` | 全选筛选、全选本组、筛选变更清选择 | | `frontend/src/pages/ScriptsPage.vue` | 分组视图、导出 CSV | | `tests/test_exec_detail_grouping.py` | 可选:若纯 TS 则 `frontend` vitest 或 TS 单测脚本 | ## 步骤 1. 抽取 `csvExport.ts`,ServersPage 导出可后续复用(本 PR 仅 Scripts 必用)。 2. `ServersPage`:分类 Chip 行下增加「全选筛选结果」;批量栏保留;group 视图 panel 标题加 toggle。 3. `ScriptsPage`:详情区增加 列表|分组 toggle + 导出按钮;分组用 `v-expansion-panels`。 4. `watch` 筛选清空选择。 5. `bash scripts/local_verify.sh` + 前端 build。 6. changelog + audit。 ## 测试要点 - 本地 mock:分组函数单元测试(Node/ts 或 pytest 不适用 — 用 vitest 若已配置,否则 manual + local_verify)。 - 手动:`#/servers` 选分类 → 全选 → 数量;`#/scripts` 打开历史失败详情 → 分组 + CSV。 ## 回滚 - 纯前端:回滚 commit + `deploy/deploy-frontend.sh`,无需 DB 迁移。