- 替换 antd 为 tdesign-react 作为主要 UI 组件库 - 引入 Recharts 替代 @ant-design/charts 实现图表功能 - 移除主题系统相关代码(ThemeContext、themes 目录) - 更新所有组件以适配 TDesign 组件 API - 更新测试用例以匹配新的组件实现 - 新增 TDesign 和 Recharts 集成规范文档
3.8 KiB
3.8 KiB
Recharts Integration
Purpose
TBD - 集成Recharts图表库,实现数据可视化功能,替代@ant-design/charts。
Requirements
Requirement: Recharts依赖集成
系统SHALL正确集成Recharts图表库,作为数据可视化的基础依赖。
Scenario: 安装Recharts依赖
- WHEN 依赖安装完成
- THEN package.json中SHALL存在recharts依赖
- AND recharts版本SHALL为2.x最新稳定版
- AND Recharts组件SHALL可正常导入使用
Requirement: UsageChart图表重写
系统SHALL使用Recharts重新实现UsageChart组件,保持原有功能。
Scenario: 折线图渲染
- WHEN UsageChart组件接收统计数据
- THEN SHALL使用Recharts的LineChart组件渲染
- AND X轴SHALL显示日期数据
- AND Y轴SHALL显示请求数据
- AND 图表SHALL支持鼠标悬停显示详情(Tooltip)
- AND 图表SHALL包含网格线(CartesianGrid)
Scenario: 响应式图表容器
- WHEN 图表渲染
- THEN SHALL使用ResponsiveContainer包裹
- AND 图表宽度SHALL自适应容器宽度
- AND 图表高度SHALL为固定300px
Scenario: 空数据状态处理
- WHEN 统计数据为空数组
- THEN SHALL显示"暂无数据"提示
- AND 不SHALL渲染图表组件
Scenario: 数据格式转换
- WHEN 接收UsageStats数组数据
- THEN SHALL按日期聚合计数
- AND 数据SHALL按日期升序排序
- AND 数据格式SHALL适配Recharts要求
Requirement: 图表样式配置
系统SHALL配置Recharts图表样式,确保视觉一致性。
Scenario: 图表颜色配置
- WHEN 图表渲染
- THEN 折线颜色SHALL为TDesign主色(#0052D9)
- AND 线条宽度SHALL为2px
- AND 数据点样式SHALL正常显示
Scenario: 网格线配置
- WHEN 图表渲染
- THEN 网格线SHALL使用虚线样式(strokeDasharray="3 3")
- AND 网格线SHALL不遮挡数据线
Requirement: 移除Ant Design Charts
系统SHALL完全移除@ant-design/charts的使用。
Scenario: 移除Line组件
- WHEN 迁移完成
- THEN UsageChart中SHALL不存在@ant-design/charts的Line组件
- AND UsageChart中SHALL不存在任何@ant-design/charts导入
Scenario: 移除配置对象模式
- WHEN 图表实现
- THEN SHALL使用Recharts声明式组件模式
- AND 不SHALL使用Ant Design Charts的配置对象模式(xField、yField等)
Requirement: 图表交互功能
系统SHALL保持图表的基本交互功能。
Scenario: 鼠标悬停提示
- WHEN 用户鼠标悬停在数据点上
- THEN SHALL显示Tooltip提示框
- AND 提示框SHALL显示日期和请求数
- AND 提示框SHALL不遮挡图表内容
Scenario: 平滑曲线效果
- WHEN 折线渲染
- THEN SHALL使用monotone类型平滑曲线
- AND 曲线SHALL自然流畅
- AND 数据点SHALL准确对应
Requirement: 图表性能
系统SHALL确保图表渲染性能满足要求。
Scenario: 大数据量渲染
- WHEN 统计数据包含大量数据点(>100)
- THEN 图表SHALL在1秒内完成渲染
- AND 交互响应SHALL流畅无卡顿
Scenario: 组件重渲染优化
- WHEN 父组件重新渲染
- THEN 图表组件SHALL避免不必要的重渲染
- AND 数据未变化时SHALL保持稳定
Requirement: 图表测试覆盖
系统SHALL为Recharts图表组件提供完整的测试覆盖。
Scenario: 组件渲染测试
- WHEN 运行单元测试
- THEN UsageChart测试SHALL验证正常渲染
- AND UsageChart测试SHALL验证空数据状态
- AND UsageChart测试SHALL验证数据格式转换
Scenario: 数据处理测试
- WHEN 运行单元测试
- THEN 测试SHALL覆盖日期聚合逻辑
- AND 测试SHALL覆盖数据排序逻辑
- AND 测试SHALL验证边界情况