|
@@ -4,7 +4,7 @@
|
|
|
|
|
|
|
|
## Status
|
|
## Status
|
|
|
|
|
|
|
|
-Approved
|
|
|
|
|
|
|
+Ready for Review
|
|
|
|
|
|
|
|
## Story
|
|
## Story
|
|
|
|
|
|
|
@@ -46,68 +46,68 @@ u-charts 原库需要手动管理 Canvas 上下文和事件处理,使用类组
|
|
|
|
|
|
|
|
## Tasks / Subtasks
|
|
## Tasks / Subtasks
|
|
|
|
|
|
|
|
-- [ ] Task 1: 创建 BaseChart 基础组件 (AC: 1, 5, 6)
|
|
|
|
|
- - [ ] 1.1 创建 `src/components/BaseChart.tsx` 基础组件
|
|
|
|
|
- - [ ] 1.2 实现 Canvas 创建和销毁逻辑(useEffect cleanup)
|
|
|
|
|
- - [ ] 1.3 实现响应式尺寸计算(useMemo + Taro.getSystemInfoSync)
|
|
|
|
|
- - [ ] 1.4 实现像素比适配逻辑
|
|
|
|
|
- - [ ] 1.5 定义 BaseChartProps 接口(canvasId, width, height, data, config等)
|
|
|
|
|
- - [ ] 1.6 使用 useRef 管理 uCharts 实例
|
|
|
|
|
-
|
|
|
|
|
-- [ ] Task 2: 创建 ColumnChart 柱状图组件 (AC: 2, 3, 4, 6)
|
|
|
|
|
- - [ ] 2.1 创建 `src/components/ColumnChart.tsx`
|
|
|
|
|
- - [ ] 2.2 定义 ColumnChartProps 接口
|
|
|
|
|
- - [ ] 2.3 实现柱状图数据配置
|
|
|
|
|
- - [ ] 2.4 实现 tooltip 事件处理(onTouchStart)
|
|
|
|
|
- - [ ] 2.5 添加类型注解
|
|
|
|
|
-
|
|
|
|
|
-- [ ] Task 3: 创建 LineChart 折线图组件 (AC: 2, 3, 4, 6)
|
|
|
|
|
- - [ ] 3.1 创建 `src/components/LineChart.tsx`
|
|
|
|
|
- - [ ] 3.2 定义 LineChartProps 接口
|
|
|
|
|
- - [ ] 3.3 实现折线图数据配置(支持 dataPointShape、enableScroll等)
|
|
|
|
|
- - [ ] 3.4 实现拖拽滚动事件处理(onTouchStart、onTouchMove、onTouchEnd)
|
|
|
|
|
- - [ ] 3.5 添加类型注解
|
|
|
|
|
-
|
|
|
|
|
-- [ ] Task 4: 创建 CandleChart K线图组件 (AC: 2, 3, 4, 6)
|
|
|
|
|
- - [ ] 4.1 创建 `src/components/CandleChart.tsx`
|
|
|
|
|
- - [ ] 4.2 定义 CandleChartProps 接口
|
|
|
|
|
- - [ ] 4.3 实现K线图数据配置(支持移动平均线 MA5/MA10/MA30)
|
|
|
|
|
- - [ ] 4.4 实现拖拽滚动和tooltip事件处理
|
|
|
|
|
- - [ ] 4.5 添加类型注解
|
|
|
|
|
-
|
|
|
|
|
-- [ ] Task 5: 创建 PieChart 饼图组件 (AC: 2, 3, 4, 6)
|
|
|
|
|
- - [ ] 5.1 创建 `src/components/PieChart.tsx`
|
|
|
|
|
- - [ ] 5.2 定义 PieChartProps 接口
|
|
|
|
|
- - [ ] 5.3 实现饼图数据配置
|
|
|
|
|
- - [ ] 5.4 实现tooltip事件处理
|
|
|
|
|
- - [ ] 5.5 添加类型注解
|
|
|
|
|
-
|
|
|
|
|
-- [ ] Task 6: 创建 RadarChart 雷达图组件 (AC: 2, 3, 4, 6)
|
|
|
|
|
- - [ ] 6.1 创建 `src/components/RadarChart.tsx`
|
|
|
|
|
- - [ ] 6.2 定义 RadarChartProps 接口
|
|
|
|
|
- - [ ] 6.3 实现雷达图数据配置
|
|
|
|
|
- - [ ] 6.4 实现tooltip事件处理
|
|
|
|
|
- - [ ] 6.5 添加类型注解
|
|
|
|
|
-
|
|
|
|
|
-- [ ] Task 7: 创建组件导出文件 (AC: 3, 6)
|
|
|
|
|
- - [ ] 7.1 创建 `src/components/index.ts`
|
|
|
|
|
- - [ ] 7.2 导出所有图表组件
|
|
|
|
|
- - [ ] 7.3 导出所有Props类型定义
|
|
|
|
|
-
|
|
|
|
|
-- [ ] Task 8: 更新 src/index.ts 主入口 (AC: 3, 6, 7)
|
|
|
|
|
- - [ ] 8.1 从 components 导出所有图表组件
|
|
|
|
|
- - [ ] 8.2 导出组件Props类型定义
|
|
|
|
|
- - [ ] 8.3 更新 package.json 的 exports 字段支持 components 导出
|
|
|
|
|
-
|
|
|
|
|
-- [ ] Task 9: 验证组件实现 (AC: 6, 7)
|
|
|
|
|
- - [ ] 9.1 运行类型检查验证类型注解正确(`pnpm typecheck`)
|
|
|
|
|
- - [ ] 9.2 运行构建验证生成 .d.ts 文件(`pnpm build`)
|
|
|
|
|
- - [ ] 9.3 检查生成的 .d.ts 文件正确导出组件类型
|
|
|
|
|
-
|
|
|
|
|
-- [ ] Task 10: 创建基础测试(可选) (AC: 3, 4)
|
|
|
|
|
- - [ ] 10.1 创建测试 Canvas mock
|
|
|
|
|
- - [ ] 10.2 为 BaseChart 创建基础渲染测试
|
|
|
|
|
- - [ ] 10.3 为一个图表组件创建基础测试
|
|
|
|
|
|
|
+- [x] Task 1: 创建 BaseChart 基础组件 (AC: 1, 5, 6)
|
|
|
|
|
+ - [x] 1.1 创建 `src/components/BaseChart.tsx` 基础组件
|
|
|
|
|
+ - [x] 1.2 实现 Canvas 创建和销毁逻辑(useEffect cleanup)
|
|
|
|
|
+ - [x] 1.3 实现响应式尺寸计算(useMemo + Taro.getSystemInfoSync)
|
|
|
|
|
+ - [x] 1.4 实现像素比适配逻辑
|
|
|
|
|
+ - [x] 1.5 定义 BaseChartProps 接口(canvasId, width, height, data, config等)
|
|
|
|
|
+ - [x] 1.6 使用 useRef 管理 uCharts 实例
|
|
|
|
|
+
|
|
|
|
|
+- [x] Task 2: 创建 ColumnChart 柱状图组件 (AC: 2, 3, 4, 6)
|
|
|
|
|
+ - [x] 2.1 创建 `src/components/ColumnChart.tsx`
|
|
|
|
|
+ - [x] 2.2 定义 ColumnChartProps 接口
|
|
|
|
|
+ - [x] 2.3 实现柱状图数据配置
|
|
|
|
|
+ - [x] 2.4 实现 tooltip 事件处理(onTouchStart)
|
|
|
|
|
+ - [x] 2.5 添加类型注解
|
|
|
|
|
+
|
|
|
|
|
+- [x] Task 3: 创建 LineChart 折线图组件 (AC: 2, 3, 4, 6)
|
|
|
|
|
+ - [x] 3.1 创建 `src/components/LineChart.tsx`
|
|
|
|
|
+ - [x] 3.2 定义 LineChartProps 接口
|
|
|
|
|
+ - [x] 3.3 实现折线图数据配置(支持 dataPointShape、enableScroll等)
|
|
|
|
|
+ - [x] 3.4 实现拖拽滚动事件处理(onTouchStart、onTouchMove、onTouchEnd)
|
|
|
|
|
+ - [x] 3.5 添加类型注解
|
|
|
|
|
+
|
|
|
|
|
+- [x] Task 4: 创建 CandleChart K线图组件 (AC: 2, 3, 4, 6)
|
|
|
|
|
+ - [x] 4.1 创建 `src/components/CandleChart.tsx`
|
|
|
|
|
+ - [x] 4.2 定义 CandleChartProps 接口
|
|
|
|
|
+ - [x] 4.3 实现K线图数据配置(支持移动平均线 MA5/MA10/MA30)
|
|
|
|
|
+ - [x] 4.4 实现拖拽滚动和tooltip事件处理
|
|
|
|
|
+ - [x] 4.5 添加类型注解
|
|
|
|
|
+
|
|
|
|
|
+- [x] Task 5: 创建 PieChart 饼图组件 (AC: 2, 3, 4, 6)
|
|
|
|
|
+ - [x] 5.1 创建 `src/components/PieChart.tsx`
|
|
|
|
|
+ - [x] 5.2 定义 PieChartProps 接口
|
|
|
|
|
+ - [x] 5.3 实现饼图数据配置
|
|
|
|
|
+ - [x] 5.4 实现tooltip事件处理
|
|
|
|
|
+ - [x] 5.5 添加类型注解
|
|
|
|
|
+
|
|
|
|
|
+- [x] Task 6: 创建 RadarChart 雷达图组件 (AC: 2, 3, 4, 6)
|
|
|
|
|
+ - [x] 6.1 创建 `src/components/RadarChart.tsx`
|
|
|
|
|
+ - [x] 6.2 定义 RadarChartProps 接口
|
|
|
|
|
+ - [x] 6.3 实现雷达图数据配置
|
|
|
|
|
+ - [x] 6.4 实现tooltip事件处理
|
|
|
|
|
+ - [x] 6.5 添加类型注解
|
|
|
|
|
+
|
|
|
|
|
+- [x] Task 7: 创建组件导出文件 (AC: 3, 6)
|
|
|
|
|
+ - [x] 7.1 创建 `src/components/index.ts`
|
|
|
|
|
+ - [x] 7.2 导出所有图表组件
|
|
|
|
|
+ - [x] 7.3 导出所有Props类型定义
|
|
|
|
|
+
|
|
|
|
|
+- [x] Task 8: 更新 src/index.ts 主入口 (AC: 3, 6, 7)
|
|
|
|
|
+ - [x] 8.1 从 components 导出所有图表组件
|
|
|
|
|
+ - [x] 8.2 导出组件Props类型定义
|
|
|
|
|
+ - [x] 8.3 更新 package.json 的 exports 字段支持 components 导出
|
|
|
|
|
+
|
|
|
|
|
+- [x] Task 9: 验证组件实现 (AC: 6, 7)
|
|
|
|
|
+ - [x] 9.1 运行类型检查验证类型注解正确(`pnpm typecheck`)
|
|
|
|
|
+ - [x] 9.2 运行构建验证生成 .d.ts 文件(`pnpm build`)
|
|
|
|
|
+ - [x] 9.3 检查生成的 .d.ts 文件正确导出组件类型
|
|
|
|
|
+
|
|
|
|
|
+- [x] Task 10: 创建基础测试(可选) (AC: 3, 4)
|
|
|
|
|
+ - [x] 10.1 创建测试 Canvas mock
|
|
|
|
|
+ - [x] 10.2 为 BaseChart 创建基础渲染测试
|
|
|
|
|
+ - [x] 10.3 为一个图表组件创建基础测试
|
|
|
|
|
|
|
|
## Dev Notes
|
|
## Dev Notes
|
|
|
|
|
|
|
@@ -548,6 +548,7 @@ pnpm test --testNamePattern "图表组件"
|
|
|
|------|---------|-------------|--------|
|
|
|------|---------|-------------|--------|
|
|
|
| 2025-12-24 | 1.0 | 创建故事文档 | Bob (Scrum Master) |
|
|
| 2025-12-24 | 1.0 | 创建故事文档 | Bob (Scrum Master) |
|
|
|
| 2025-12-24 | 1.1 | 更新状态为 Approved | Bob (Scrum Master) |
|
|
| 2025-12-24 | 1.1 | 更新状态为 Approved | Bob (Scrum Master) |
|
|
|
|
|
+| 2025-12-24 | 1.2 | 完成所有任务,状态更新为 Ready for Review | Dev Agent (claude-sonnet) |
|
|
|
|
|
|
|
|
## Dev Agent Record
|
|
## Dev Agent Record
|
|
|
|
|
|
|
@@ -555,12 +556,40 @@ pnpm test --testNamePattern "图表组件"
|
|
|
|
|
|
|
|
### Agent Model Used
|
|
### Agent Model Used
|
|
|
|
|
|
|
|
|
|
+claude-sonnet
|
|
|
|
|
+
|
|
|
### Debug Log References
|
|
### Debug Log References
|
|
|
|
|
|
|
|
|
|
+无重大调试问题。
|
|
|
|
|
+
|
|
|
### Completion Notes List
|
|
### Completion Notes List
|
|
|
|
|
|
|
|
|
|
+1. 创建了 `src/components/` 目录,包含所有图表组件
|
|
|
|
|
+2. 所有组件使用 React 函数式组件 + Hooks 实现
|
|
|
|
|
+3. 类型检查通过(`pnpm typecheck`)
|
|
|
|
|
+4. 构建成功(`pnpm build`),生成完整的 .d.ts 文件
|
|
|
|
|
+5. 创建了基础测试,测试通过
|
|
|
|
|
+6. 修复了 mini-testing-utils 的 taro-api-mock.ts,添加了 `createCanvasContext` mock
|
|
|
|
|
+7. 修复了 mini-testing-utils/package.json 的 exports 配置
|
|
|
|
|
+
|
|
|
### File List
|
|
### File List
|
|
|
|
|
|
|
|
|
|
+**新增文件**:
|
|
|
|
|
+- `mini-ui-packages/mini-charts/src/components/BaseChart.tsx`
|
|
|
|
|
+- `mini-ui-packages/mini-charts/src/components/ColumnChart.tsx`
|
|
|
|
|
+- `mini-ui-packages/mini-charts/src/components/LineChart.tsx`
|
|
|
|
|
+- `mini-ui-packages/mini-charts/src/components/CandleChart.tsx`
|
|
|
|
|
+- `mini-ui-packages/mini-charts/src/components/PieChart.tsx`
|
|
|
|
|
+- `mini-ui-packages/mini-charts/src/components/RadarChart.tsx`
|
|
|
|
|
+- `mini-ui-packages/mini-charts/src/components/index.ts`
|
|
|
|
|
+- `mini-ui-packages/mini-charts/tests/components/BaseChart.test.tsx`
|
|
|
|
|
+- `mini-ui-packages/mini-charts/tests/components/ColumnChart.test.tsx`
|
|
|
|
|
+
|
|
|
|
|
+**修改文件**:
|
|
|
|
|
+- `mini-ui-packages/mini-charts/src/index.ts` - 添加组件导出
|
|
|
|
|
+- `mini-ui-packages/mini-testing-utils/testing/taro-api-mock.ts` - 添加 createCanvasContext mock
|
|
|
|
|
+- `mini-ui-packages/mini-testing-utils/package.json` - 添加 exports 配置
|
|
|
|
|
+
|
|
|
## QA Results
|
|
## QA Results
|
|
|
|
|
|
|
|
*此部分由 QA 代理在审查完成后填写*
|
|
*此部分由 QA 代理在审查完成后填写*
|