refactor: 移除 success 字段,简化为 matched 单层判定模型
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: 卡片式分组布局
|
||||
Dashboard SHALL 使用按分组展示的卡片式布局替代表格布局,每个分组包含带统计的分组标题和响应式卡片网格。
|
||||
|
||||
#### Scenario: 按分组渲染卡片
|
||||
- **WHEN** 用户打开 Dashboard 页面
|
||||
- **THEN** 页面 SHALL 按 group 字段将目标分组展示,每组一个区域,"默认分组" 排在最上面
|
||||
|
||||
#### Scenario: 无分组时的展示
|
||||
- **WHEN** 所有目标均属于 "default" 分组
|
||||
- **THEN** 页面 SHALL 显示一个 "默认分组" 区域,卡片正常展示
|
||||
|
||||
### Requirement: 分组标题展示
|
||||
Dashboard SHALL 在每个分组区域上方显示带统计信息的分组标题。
|
||||
|
||||
#### Scenario: 显示分组统计
|
||||
- **WHEN** 渲染分组区域
|
||||
- **THEN** 分组标题 SHALL 显示格式为 `分组名 (N个, X UP / Y DOWN)` 的统计信息
|
||||
|
||||
#### Scenario: default 分组标题
|
||||
- **WHEN** 分组名为 "default"
|
||||
- **THEN** 标题 SHALL 显示 "默认分组"
|
||||
|
||||
### Requirement: 目标卡片交互
|
||||
Dashboard SHALL 支持点击卡片弹出模态框查看详情。
|
||||
|
||||
#### Scenario: 点击卡片打开模态框
|
||||
- **WHEN** 用户点击某个目标卡片
|
||||
- **THEN** 系统 SHALL 弹出目标详情模态框,展示该目标的统计图表和检查记录
|
||||
|
||||
### Requirement: 卡片状态条可视化
|
||||
Dashboard SHALL 在卡片中展示最近 N 次检查的状态条,每个采样点用色块表示 UP/DOWN 状态。
|
||||
|
||||
#### Scenario: 渲染状态条
|
||||
- **WHEN** 卡片的 recentSamples 数据可用
|
||||
- **THEN** 卡片 SHALL 展示一条由色块组成的状态条,UP 为绿色,DOWN 为红色,无数据为灰色
|
||||
|
||||
### Requirement: 卡片迷你耗时趋势线
|
||||
Dashboard SHALL 在卡片中展示基于 recentSamples 的迷你耗时折线图。
|
||||
|
||||
#### Scenario: 渲染迷你趋势线
|
||||
- **WHEN** 卡片的 recentSamples 中有 durationMs 数据
|
||||
- **THEN** 卡片 SHALL 展示基于 recharts 的迷你折线图,展示最近采样的耗时趋势
|
||||
|
||||
### Requirement: 目标详情模态框
|
||||
Dashboard SHALL 提供模态框展示目标详情,包含时间范围筛选、多维统计图和分页检查记录列表。
|
||||
|
||||
#### Scenario: 模态框布局
|
||||
- **WHEN** 模态框打开
|
||||
- **THEN** 模态框 SHALL 占据视口 80% 宽度,图表区在上方展示统计图,检查记录列表在下方展示
|
||||
|
||||
#### Scenario: 时间范围筛选
|
||||
- **WHEN** 模态框打开
|
||||
- **THEN** 筛选栏 SHALL 包含快捷按钮(1h/6h/24h/7d)和分钟精度的自定义日期时间选择器
|
||||
|
||||
#### Scenario: 统计图表
|
||||
- **WHEN** 模态框加载完成
|
||||
- **THEN** 左侧 SHALL 展示可用率趋势折线图、耗时趋势折线图和状态分布环形图
|
||||
|
||||
#### Scenario: 检查记录分页
|
||||
- **WHEN** 检查记录超过一页
|
||||
- **THEN** 右侧列表底部 SHALL 展示分页器
|
||||
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: 总览统计卡片
|
||||
Dashboard SHALL 在页面顶部展示总览统计卡片,包含总目标数、正常数和异常数(移除平均耗时)。
|
||||
|
||||
#### Scenario: 展示统计卡片
|
||||
- **WHEN** 用户打开 Dashboard 页面
|
||||
- **THEN** 页面顶部 SHALL 显示 3 个统计卡片:全部目标数、正常目标数、异常目标数
|
||||
|
||||
#### Scenario: 统计数据自动刷新
|
||||
- **WHEN** 页面处于打开状态
|
||||
- **THEN** 统计卡片 SHALL 每 5-10 秒自动刷新数据
|
||||
|
||||
### Requirement: 页面加载与错误状态
|
||||
Dashboard SHALL 正确处理加载状态和 API 错误,适配卡片式布局。
|
||||
|
||||
#### Scenario: 首次加载
|
||||
- **WHEN** 页面首次加载且数据尚未返回
|
||||
- **THEN** 页面 SHALL 显示加载状态指示
|
||||
|
||||
#### Scenario: API 请求失败
|
||||
- **WHEN** 前端轮询 API 请求失败
|
||||
- **THEN** 页面 SHALL 显示错误提示,并在下一次轮询周期自动重试
|
||||
|
||||
#### Scenario: 模态框内部加载状态
|
||||
- **WHEN** 模态框内趋势数据或历史记录正在加载
|
||||
- **THEN** 对应图表或列表区域 SHALL 显示加载指示
|
||||
|
||||
## REMOVED Requirements
|
||||
|
||||
### Requirement: 目标列表表格
|
||||
**Reason**: 替换为卡片式分组布局
|
||||
**Migration**: 使用 TargetBoard + TargetGroup + CardGrid + TargetCard 替代 TargetTable + TargetRow
|
||||
|
||||
### Requirement: 可展开的目标详情面板
|
||||
**Reason**: 替换为目标详情模态框
|
||||
**Migration**: 使用 TargetDetailModal 替代内联展开的 TargetDetail
|
||||
|
||||
### Requirement: 历史记录展示
|
||||
**Reason**: 合并到目标详情模态框的需求中
|
||||
**Migration**: 历史记录在模态框右侧展示,支持时间范围筛选和分页
|
||||
|
||||
### Requirement: 趋势图可视化
|
||||
**Reason**: 合并到目标详情模态框的需求中,卡片内的迷你图独立定义
|
||||
**Migration**: 模态框内的趋势图在 target-detail-modal spec 中定义,卡片内的迷你图在 card-dashboard spec 中定义
|
||||
|
||||
### Requirement: checker 类型展示
|
||||
**Reason**: 功能保留但合并到卡片内容需求中,无需独立 requirement
|
||||
**Migration**: 类型标签在卡片的行1中展示
|
||||
Reference in New Issue
Block a user