1
0
Files
DiAL/openspec/specs/target-grouping/spec.md
lanyuanxiaoyao 548b44d28e feat: 重构 Dashboard 为卡片式分组布局
表格布局替换为按分组展示的卡片式布局,新增 group 字段配置和 TargetBoard/TargetCard 等组件。模态框详情页支持时间范围筛选和分页,SummaryCards 减为 3 个。API 端点变更:trend/history 改用 from/to 参数,history 支持分页。recentSampleCount 硬编码为 30。
2026-05-11 08:54:21 +08:00

2.0 KiB
Raw Blame History

Purpose

定义 target 分组能力YAML 配置中的 group 字段、后端存储、API 传递和前端分组排序。

Requirements

Requirement: target 分组配置

系统 SHALL 支持在每个 target 上配置可选的 group 字段,用于将目标归类到不同分组。未指定 group 的 target SHALL 归入 "default" 分组。

Scenario: 配置分组名称

  • WHEN YAML 配置中某个 target 指定 group: "搜索引擎"
  • THEN 系统 SHALL 将该 target 归类到 "搜索引擎" 分组

Scenario: 不配置分组

  • WHEN YAML 配置中某个 target 未指定 group 字段
  • THEN 系统 SHALL 将该 target 归类到 "default" 分组

Scenario: group 字段类型校验

  • WHEN YAML 配置中某个 target 的 group 字段不是字符串
  • THEN 系统 SHALL 以错误退出并提示 group 字段类型错误

Requirement: 分组排序

系统 SHALL 保证 "default" 分组始终排在最前面,其余分组按配置文件中首次出现的顺序排列。

Scenario: default 分组排最前

  • WHEN 配置中存在多个分组(包括 "default" 和自定义分组)
  • THEN API 返回的目标列表中 "default" 分组的目标 SHALL 排在其他分组之前

Scenario: 自定义分组按出现顺序

  • WHEN 配置中 "搜索引擎" 分组在 "后端服务" 分组之前首次出现
  • THEN API 返回中 "搜索引擎" 分组 SHALL 排在 "后端服务" 分组之前

Requirement: 分组信息 API 传递

系统 SHALL 在 API 响应中返回每个 target 的分组信息。

Scenario: targets 列表包含分组

  • WHEN 客户端请求 GET /api/targets
  • THEN 响应中每个目标 SHALL 包含 group 字段,值为该目标所属的分组名称

Requirement: 分组存储

系统 SHALL 在数据库 targets 表中持久化每个 target 的分组信息。

Scenario: 持久化分组信息

  • WHEN 系统同步 targets 到数据库
  • THEN 每个 target 的 grp 列 SHALL 存储其分组名称,未配置分组的存储 "default"