1
0

refactor: 整理 openspec/specs 规范,删除冗余 spec 并消除重叠

- 删除 target-detail-modal(已被 target-detail-drawer 完整替代)
- 删除 card-dashboard(已被 target-table 完整替代)
- 将 card-dashboard 的容器宽度和分组间距约束迁入 target-table
- 改写 probe-dashboard,移除与下层 spec 重复的描述,仅保留页面级关注点
This commit is contained in:
2026-05-12 13:10:54 +08:00
parent c677b4f756
commit 696db6ffb5
4 changed files with 15 additions and 214 deletions

View File

@@ -1,6 +1,6 @@
## Purpose
定义拨测系统的 React 前端 DashboardTDesign Statistic 统计卡片、按分组表格布局、目标详情 Drawer、TanStack Query 数据轮询和页面加载/错误状态
定义拨测系统前端 Dashboard 页面:总览统计卡片、页面标题、加载和错误状态处理。分组表格布局见 `target-table`,目标详情 Drawer 见 `target-detail-drawer`,数据轮询和缓存见 `tanstack-query-data-layer`
## Requirements
@@ -15,34 +15,15 @@ Dashboard SHALL 在页面顶部使用 TDesign Statistic 组件展示总览统计
- **WHEN** 页面处于打开状态
- **THEN** 统计卡片 SHALL 通过 TanStack Query 的 refetchInterval=8000 自动刷新数据
### Requirement: 卡片式分组布局
Dashboard SHALL 使用按分组展示的表格布局,每个分组包含带统计的分组标题和独立 TDesign PrimaryTable
### Requirement: 页面标题
Dashboard 页面 SHALL 使用 TDesign Typography 组件渲染标题和副标题
> 表格列定义、排序、筛选、行交互的详细规范见 `target-table`。
#### Scenario: 按分组渲染表格
- **WHEN** 用户打开 Dashboard 页面
- **THEN** 页面 SHALL 按 group 字段将目标分组展示,每组一个 PrimaryTable"default" 分组排在最上面
#### Scenario: 无分组时的展示
- **WHEN** 所有目标均属于 "default" 分组
- **THEN** 页面 SHALL 显示一个 "默认分组" 区域,表格正常展示
### Requirement: 目标详情 Drawer
Dashboard SHALL 使用 TDesign Drawer 展示目标详情包含时间范围筛选、Tabs 组织的统计图表和分页检查记录列表。
> Drawer 的时间范围筛选、Tabs 面板内容、检查结果列表的详细规范见 `target-detail-drawer`。
#### Scenario: 打开 Drawer
- **WHEN** 用户点击某个目标表格行
- **THEN** 系统 SHALL 从右侧滑出 Drawerplacement="right", size="60%"),展示该目标的详情
#### Scenario: 关闭 Drawer
- **WHEN** 用户点击 Drawer 关闭按钮、ESC 键或遮罩层
- **THEN** Drawer SHALL 关闭
#### Scenario: 页面标题渲染
- **WHEN** Dashboard 页面渲染
- **THEN** 页面标题 SHALL 使用 TDesign Typography.Title 组件level="h1")渲染"DiAL",副标题 SHALL 使用 Typography.Text 组件theme="secondary")渲染"统一拨测平台"
### Requirement: 页面加载与错误状态
Dashboard SHALL 使用 TDesign 组件正确处理加载状态和 API 错误。页面标题使用 TDesign Typography 组件渲染。
Dashboard SHALL 使用 TDesign 组件正确处理加载状态和 API 错误。
#### Scenario: 首次加载
- **WHEN** 页面首次加载且数据尚未返回
@@ -51,11 +32,3 @@ Dashboard SHALL 使用 TDesign 组件正确处理加载状态和 API 错误。
#### Scenario: API 请求失败
- **WHEN** 前端 API 请求失败
- **THEN** 页面 SHALL 使用 TDesign Alert 组件theme=error显示错误提示
#### Scenario: Drawer 内部加载状态
- **WHEN** Drawer 内趋势数据或历史记录正在加载
- **THEN** 概览面板的"趋势"区域 SHALL 显示 TDesign Skeleton 加载占位,记录表格 SHALL 显示 loading 状态
#### Scenario: 页面标题
- **WHEN** Dashboard 页面渲染
- **THEN** 页面标题 SHALL 使用 TDesign Typography.Title 组件level="h1")渲染"DiAL",副标题 SHALL 使用 Typography.Text 组件theme="secondary")渲染"统一拨测平台",不使用原生 h1/p 标签和内联 style