|
@@ -47,13 +47,13 @@
|
|
|
4. 配置构建和测试脚本
|
|
4. 配置构建和测试脚本
|
|
|
5. 迁移 u-charts 核心库文件
|
|
5. 迁移 u-charts 核心库文件
|
|
|
|
|
|
|
|
-**阶段2:重构 u-charts 核心库模块化(故事016.002)**
|
|
|
|
|
|
|
+**阶段2:搬迁 u-charts 核心库到模块化结构并添加类型定义(故事016.002-016.006)**
|
|
|
1. 分析当前 u-charts.ts 文件结构(7719行)
|
|
1. 分析当前 u-charts.ts 文件结构(7719行)
|
|
|
-2. 按功能模块拆分为多个文件,并在拆分过程中添加 TypeScript 类型定义
|
|
|
|
|
-3. 保持向后兼容性
|
|
|
|
|
-4. 确保拆分后功能完整性
|
|
|
|
|
|
|
+2. 按功能模块**搬迁**代码到多个文件(分5个子故事完成),并在搬迁过程中添加 TypeScript 类型注解
|
|
|
|
|
+3. **重要**:搬迁时保持代码逻辑完全不变,只改变文件组织方式
|
|
|
|
|
+4. 确保搬迁后功能完整性
|
|
|
|
|
|
|
|
-**阶段3:创建 React 组件封装(故事016.003)**
|
|
|
|
|
|
|
+**阶段3:创建 React 图表组件封装(故事016.007)**
|
|
|
1. 创建现代函数式图表组件:
|
|
1. 创建现代函数式图表组件:
|
|
|
- ColumnChart(柱状图)
|
|
- ColumnChart(柱状图)
|
|
|
- LineChart(折线图)
|
|
- LineChart(折线图)
|
|
@@ -64,13 +64,13 @@
|
|
|
3. 支持触摸事件处理(tooltip、拖拽)
|
|
3. 支持触摸事件处理(tooltip、拖拽)
|
|
|
4. 支持响应式尺寸计算
|
|
4. 支持响应式尺寸计算
|
|
|
|
|
|
|
|
-**阶段4:创建使用示例和文档(故事016.004)**
|
|
|
|
|
|
|
+**阶段4:创建使用示例和文档(故事016.008)**
|
|
|
1. 在包内创建 examples 目录
|
|
1. 在包内创建 examples 目录
|
|
|
2. 提供完整的示例代码
|
|
2. 提供完整的示例代码
|
|
|
3. 创建 API 文档
|
|
3. 创建 API 文档
|
|
|
4. 更新使用示例.md
|
|
4. 更新使用示例.md
|
|
|
|
|
|
|
|
-**阶段5:创建测试套件(故事016.005)**
|
|
|
|
|
|
|
+**阶段5:创建测试套件(故事016.009)**
|
|
|
1. 设置 Jest 测试环境
|
|
1. 设置 Jest 测试环境
|
|
|
2. 创建图表组件单元测试
|
|
2. 创建图表组件单元测试
|
|
|
3. 创建 Canvas mock 用于测试
|
|
3. 创建 Canvas mock 用于测试
|
|
@@ -120,107 +120,213 @@
|
|
|
- [x] 包可以成功构建(tsc 编译通过)
|
|
- [x] 包可以成功构建(tsc 编译通过)
|
|
|
- [x] 类型检查通过(pnpm typecheck)
|
|
- [x] 类型检查通过(pnpm typecheck)
|
|
|
|
|
|
|
|
-### 故事016-002:重构 u-charts 核心库模块化并添加类型定义
|
|
|
|
|
-**背景:** 当前 u-charts.ts 文件包含7719行代码,所有功能都在一个文件中,包括42个绘制函数、约60个工具/数据处理函数以及2个类。这种结构不利于代码维护、测试和后续的开发。同时,原始库为纯JavaScript,缺少TypeScript类型支持。
|
|
|
|
|
|
|
+### 故事016-002:搬迁配置和工具函数到独立模块并添加类型定义
|
|
|
|
|
+**背景:** u-charts.ts 文件包含约60个工具/数据处理函数。首先将低依赖的配置常量和工具函数**搬迁**到独立模块,为后续模块化搬迁打好基础。
|
|
|
|
|
|
|
|
-**重要说明**:本故事将模块化拆分与类型定义合并进行。TypeScript 编译器会自动生成 .d.ts 声明文件(已在 tsconfig.json 中配置 `declaration: true`),因此只需在拆分模块时添加适当的类型注解即可,无需单独创建类型定义文件。
|
|
|
|
|
|
|
+**重要原则**:
|
|
|
|
|
+- **搬迁**而非重构:保持代码逻辑完全不变,只改变文件组织方式
|
|
|
|
|
+- 只在搬迁过程中添加 TypeScript 类型注解
|
|
|
|
|
+- 不修改代码的实现逻辑
|
|
|
|
|
|
|
|
**任务列表:**
|
|
**任务列表:**
|
|
|
-1. 分析当前 u-charts.ts 文件结构:
|
|
|
|
|
- - 识别所有函数和类的职责
|
|
|
|
|
- - 分析函数之间的依赖关系
|
|
|
|
|
- - 确定模块划分方案
|
|
|
|
|
- - 识别需要添加类型注解的关键位置
|
|
|
|
|
|
|
+1. 分析配置和工具函数:
|
|
|
|
|
+ - 识别 config、assign、util 等配置对象
|
|
|
|
|
+ - 识别颜色工具(hexToRgb等)
|
|
|
|
|
+ - 识别数学工具(findRange、normalInt等)
|
|
|
|
|
+ - 识别坐标转换工具(convertCoordinateOrigin等)
|
|
|
|
|
+ - 识别文本测量工具(measureText等)
|
|
|
|
|
+ - 识别碰撞检测工具(avoidCollision等)
|
|
|
2. 创建模块化目录结构:
|
|
2. 创建模块化目录结构:
|
|
|
- ```
|
|
|
|
|
- src/lib/
|
|
|
|
|
- ├── index.ts # 统一导出,保持向后兼容
|
|
|
|
|
- ├── config.ts # 配置常量(config、assign等)
|
|
|
|
|
- ├── utils/ # 工具函数模块
|
|
|
|
|
- │ ├── index.ts
|
|
|
|
|
- │ ├── color.ts # 颜色工具(hexToRgb等)
|
|
|
|
|
- │ ├── math.ts # 数学工具(findRange、normalInt等)
|
|
|
|
|
- │ ├── coordinate.ts # 坐标转换(convertCoordinateOrigin等)
|
|
|
|
|
- │ ├── text.ts # 文本测量(measureText等)
|
|
|
|
|
- │ └── collision.ts # 碰撞检测(avoidCollision等)
|
|
|
|
|
- ├── data-processing/ # 数据处理模块
|
|
|
|
|
- │ ├── index.ts
|
|
|
|
|
- │ ├── series-calculator.ts # 系列数据处理
|
|
|
|
|
- │ ├── axis-calculator.ts # 坐标轴计算
|
|
|
|
|
- │ ├── categories-calculator.ts # 分类数据处理
|
|
|
|
|
- │ └── tooltip-calculator.ts # 提示框数据计算
|
|
|
|
|
- ├── charts-data/ # 图表数据点计算
|
|
|
|
|
- │ ├── index.ts
|
|
|
|
|
- │ ├── basic-charts.ts # 基础图表数据点
|
|
|
|
|
- │ ├── pie-charts.ts # 饼图数据点
|
|
|
|
|
- │ ├── radar-charts.ts # 雷达图数据点
|
|
|
|
|
- │ ├── map-charts.ts # 地图数据点
|
|
|
|
|
- │ └── other-charts.ts # 其他图表数据点
|
|
|
|
|
- ├── renderers/ # 绘制函数模块
|
|
|
|
|
- │ ├── index.ts
|
|
|
|
|
- │ ├── common-renderer.ts # 通用绘制(drawPointShape、drawToolTip等)
|
|
|
|
|
- │ ├── axis-renderer.ts # 坐标轴绘制
|
|
|
|
|
- │ ├── column-renderer.ts # 柱状图绘制
|
|
|
|
|
- │ ├── line-renderer.ts # 折线图绘制
|
|
|
|
|
- │ ├── candle-renderer.ts # K线图绘制
|
|
|
|
|
- │ ├── pie-renderer.ts # 饼图绘制
|
|
|
|
|
- │ ├── radar-renderer.ts # 雷达图绘制
|
|
|
|
|
- │ ├── map-renderer.ts # 地图绘制
|
|
|
|
|
- │ └── special-renderer.ts # 特殊图表绘制(词云、漏斗等)
|
|
|
|
|
- └── charts/ # 核心类模块
|
|
|
|
|
- ├── index.ts
|
|
|
|
|
- ├── u-charts-event.ts # 事件类
|
|
|
|
|
- └── u-charts.ts # 主类(重构后)
|
|
|
|
|
- ```
|
|
|
|
|
-3. 拆分文件并添加类型注解(按优先级):
|
|
|
|
|
- - **第一批**:配置和工具函数(低依赖)
|
|
|
|
|
- - 创建 config.ts,导出 config、assign、util,添加类型注解
|
|
|
|
|
- - 创建 utils/ 目录下的文件,为工具函数添加参数和返回值类型
|
|
|
|
|
- - **第二批**:数据处理函数(中依赖)
|
|
|
|
|
- - 创建 data-processing/ 目录,添加数据流类型
|
|
|
|
|
- - 创建 charts-data/ 目录,添加数据点类型
|
|
|
|
|
- - **第三批**:绘制函数(高依赖)
|
|
|
|
|
- - 创建 renderers/ 目录,添加 Canvas 上下文和配置类型
|
|
|
|
|
- - **第四批**:核心类重构
|
|
|
|
|
- - 重构 u-charts.ts,导入所有模块,添加类方法类型
|
|
|
|
|
- - 移动 uChartsEvent 类到独立文件,添加事件类型
|
|
|
|
|
-4. 更新 src/index.ts:
|
|
|
|
|
|
|
+ - 创建 `src/lib/config.ts`
|
|
|
|
|
+ - 创建 `src/lib/utils/` 目录及子模块
|
|
|
|
|
+3. **搬迁**配置和工具函数:
|
|
|
|
|
+ - 将 config、assign、util 搬迁到 config.ts,添加类型注解
|
|
|
|
|
+ - 将颜色工具函数搬迁到 utils/color.ts,添加类型注解
|
|
|
|
|
+ - 将数学工具函数搬迁到 utils/math.ts,添加类型注解
|
|
|
|
|
+ - 将坐标转换工具函数搬迁到 utils/coordinate.ts,添加类型注解
|
|
|
|
|
+ - 将文本测量工具函数搬迁到 utils/text.ts,添加类型注解
|
|
|
|
|
+ - 将碰撞检测工具函数搬迁到 utils/collision.ts,添加类型注解
|
|
|
|
|
+ - 创建 utils/index.ts 统一导出
|
|
|
|
|
+4. 验证搬迁结果:
|
|
|
|
|
+ - 确保所有工具函数正确导出
|
|
|
|
|
+ - 运行类型检查验证类型注解正确
|
|
|
|
|
+ - 确认代码逻辑与原始文件完全一致
|
|
|
|
|
+
|
|
|
|
|
+**验收标准:**
|
|
|
|
|
+- [x] config.ts 创建完成,包含 config、assign、util 并有完整类型注解
|
|
|
|
|
+- [x] utils/ 目录下所有文件创建完成,每个函数都有类型注解
|
|
|
|
|
+- [x] 类型检查通过(pnpm typecheck),无 any 类型(除非必要)
|
|
|
|
|
+- [x] 每个文件控制在500行以内
|
|
|
|
|
+- [x] 代码逻辑与原始 u-charts.ts 完全一致
|
|
|
|
|
+
|
|
|
|
|
+**完成状态:** ✅ Ready for Review (2025-12-24)
|
|
|
|
|
+
|
|
|
|
|
+### 故事016-003:搬迁数据处理函数到独立模块并添加类型定义
|
|
|
|
|
+**背景:** 配置和工具函数模块化完成后,继续**搬迁**数据处理相关函数,包括系列数据处理、坐标轴计算、分类数据处理和提示框数据计算。
|
|
|
|
|
+
|
|
|
|
|
+**重要原则**:
|
|
|
|
|
+- **搬迁**而非重构:保持代码逻辑完全不变,只改变文件组织方式
|
|
|
|
|
+- 只在搬迁过程中添加 TypeScript 类型注解
|
|
|
|
|
+- 不修改代码的实现逻辑
|
|
|
|
|
+
|
|
|
|
|
+**任务列表:**
|
|
|
|
|
+1. 分析数据处理函数:
|
|
|
|
|
+ - 识别系列数据处理函数(fillSeries、fixPieSeries等)
|
|
|
|
|
+ - 识别坐标轴计算函数(calXAxisData、calYAxisData等)
|
|
|
|
|
+ - 识别分类数据处理函数(calCategoriesData等)
|
|
|
|
|
+ - 识别提示框数据计算函数(getToolTipData等)
|
|
|
|
|
+2. 创建 data-processing 模块:
|
|
|
|
|
+ - 创建 data-processing/series-calculator.ts
|
|
|
|
|
+ - 创建 data-processing/axis-calculator.ts
|
|
|
|
|
+ - 创建 data-processing/categories-calculator.ts
|
|
|
|
|
+ - 创建 data-processing/tooltip-calculator.ts
|
|
|
|
|
+ - 创建 data-processing/index.ts 统一导出
|
|
|
|
|
+3. **搬迁**数据处理函数并添加类型注解:
|
|
|
|
|
+ - 将系列数据处理函数搬迁到 series-calculator.ts,添加类型注解
|
|
|
|
|
+ - 将坐标轴计算函数搬迁到 axis-calculator.ts,添加类型注解
|
|
|
|
|
+ - 将分类数据处理函数搬迁到 categories-calculator.ts,添加类型注解
|
|
|
|
|
+ - 将提示框数据计算函数搬迁到 tooltip-calculator.ts,添加类型注解
|
|
|
|
|
+4. 验证搬迁结果:
|
|
|
|
|
+ - 确保所有数据处理函数正确导出
|
|
|
|
|
+ - 运行类型检查验证类型注解正确
|
|
|
|
|
+ - 确认代码逻辑与原始文件完全一致
|
|
|
|
|
+
|
|
|
|
|
+**验收标准:**
|
|
|
|
|
+- [ ] data-processing/ 目录下所有文件创建完成
|
|
|
|
|
+- [ ] 所有数据处理函数都有完整类型注解
|
|
|
|
|
+- [ ] 类型检查通过(pnpm typecheck),无 any 类型(除非必要)
|
|
|
|
|
+- [ ] 每个文件控制在500行以内
|
|
|
|
|
+- [ ] 代码逻辑与原始 u-charts.ts 完全一致
|
|
|
|
|
+
|
|
|
|
|
+### 故事016-004:搬迁图表数据点计算函数到独立模块并添加类型定义
|
|
|
|
|
+**背景:** 数据处理模块化完成后,继续**搬迁**各种图表类型的数据点计算函数,包括基础图表、饼图、雷达图、地图和其他图表的数据点计算。
|
|
|
|
|
+
|
|
|
|
|
+**重要原则**:
|
|
|
|
|
+- **搬迁**而非重构:保持代码逻辑完全不变,只改变文件组织方式
|
|
|
|
|
+- 只在搬迁过程中添加 TypeScript 类型注解
|
|
|
|
|
+- 不修改代码的实现逻辑
|
|
|
|
|
+
|
|
|
|
|
+**任务列表:**
|
|
|
|
|
+1. 分析图表数据点计算函数:
|
|
|
|
|
+ - 识别基础图表数据点函数(getColumnDataPoints、getDataPoints等)
|
|
|
|
|
+ - 识别饼图数据点函数(getPieDataPoints、getRoseDataPoints等)
|
|
|
|
|
+ - 识别雷达图数据点函数(getRadarDataPoints等)
|
|
|
|
|
+ - 识别地图数据点函数(getMapDataPoints等)
|
|
|
|
|
+ - 识别其他图表数据点函数(getGaugeDataPoints、getFunnelDataPoints等)
|
|
|
|
|
+2. 创建 charts-data 模块:
|
|
|
|
|
+ - 创建 charts-data/basic-charts.ts
|
|
|
|
|
+ - 创建 charts-data/pie-charts.ts
|
|
|
|
|
+ - 创建 charts-data/radar-charts.ts
|
|
|
|
|
+ - 创建 charts-data/map-charts.ts
|
|
|
|
|
+ - 创建 charts-data/other-charts.ts
|
|
|
|
|
+ - 创建 charts-data/index.ts 统一导出
|
|
|
|
|
+3. **搬迁**数据点计算函数并添加类型注解:
|
|
|
|
|
+ - 将基础图表数据点函数搬迁到 basic-charts.ts,添加类型注解
|
|
|
|
|
+ - 将饼图数据点函数搬迁到 pie-charts.ts,添加类型注解
|
|
|
|
|
+ - 将雷达图数据点函数搬迁到 radar-charts.ts,添加类型注解
|
|
|
|
|
+ - 将地图数据点函数搬迁到 map-charts.ts,添加类型注解
|
|
|
|
|
+ - 将其他图表数据点函数搬迁到 other-charts.ts,添加类型注解
|
|
|
|
|
+4. 验证搬迁结果:
|
|
|
|
|
+ - 确保所有数据点计算函数正确导出
|
|
|
|
|
+ - 运行类型检查验证类型注解正确
|
|
|
|
|
+ - 确认代码逻辑与原始文件完全一致
|
|
|
|
|
+
|
|
|
|
|
+**验收标准:**
|
|
|
|
|
+- [ ] charts-data/ 目录下所有文件创建完成
|
|
|
|
|
+- [ ] 所有数据点计算函数都有完整类型注解
|
|
|
|
|
+- [ ] 类型检查通过(pnpm typecheck),无 any 类型(除非必要)
|
|
|
|
|
+- [ ] 每个文件控制在500行以内
|
|
|
|
|
+- [ ] 代码逻辑与原始 u-charts.ts 完全一致
|
|
|
|
|
+
|
|
|
|
|
+### 故事016-005:搬迁绘制函数到独立模块并添加类型定义
|
|
|
|
|
+**背景:** 图表数据点计算模块化完成后,继续**搬迁**所有绘制相关函数,包括通用绘制、坐标轴绘制、各种图表类型的绘制函数。
|
|
|
|
|
+
|
|
|
|
|
+**重要原则**:
|
|
|
|
|
+- **搬迁**而非重构:保持代码逻辑完全不变,只改变文件组织方式
|
|
|
|
|
+- 只在搬迁过程中添加 TypeScript 类型注解
|
|
|
|
|
+- 不修改代码的实现逻辑
|
|
|
|
|
+
|
|
|
|
|
+**任务列表:**
|
|
|
|
|
+1. 分析绘制函数:
|
|
|
|
|
+ - 识别通用绘制函数(drawPointShape、drawToolTip、drawLegend等)
|
|
|
|
|
+ - 识别坐标轴绘制函数(drawXAxis、drawYAxis等)
|
|
|
|
|
+ - 识别柱状图绘制函数(drawColumnDataPoints等)
|
|
|
|
|
+ - 识别折线图/面积图绘制函数(drawLineDataPoints、drawAreaDataPoints等)
|
|
|
|
|
+ - 识别K线图绘制函数(drawCandleDataPoints等)
|
|
|
|
|
+ - 识别饼图绘制函数(drawPieDataPoints、drawRoseDataPoints等)
|
|
|
|
|
+ - 识别雷达图绘制函数(drawRadarDataPoints等)
|
|
|
|
|
+ - 识别地图绘制函数(drawMapDataPoints等)
|
|
|
|
|
+ - 识别特殊图表绘制函数(drawWordCloudDataPoints、drawFunnelDataPoints等)
|
|
|
|
|
+2. 创建 renderers 模块:
|
|
|
|
|
+ - 创建 renderers/common-renderer.ts
|
|
|
|
|
+ - 创建 renderers/axis-renderer.ts
|
|
|
|
|
+ - 创建 renderers/column-renderer.ts
|
|
|
|
|
+ - 创建 renderers/line-renderer.ts
|
|
|
|
|
+ - 创建 renderers/candle-renderer.ts
|
|
|
|
|
+ - 创建 renderers/pie-renderer.ts
|
|
|
|
|
+ - 创建 renderers/radar-renderer.ts
|
|
|
|
|
+ - 创建 renderers/map-renderer.ts
|
|
|
|
|
+ - 创建 renderers/special-renderer.ts
|
|
|
|
|
+ - 创建 renderers/index.ts 统一导出
|
|
|
|
|
+3. **搬迁**绘制函数并添加类型注解:
|
|
|
|
|
+ - 将通用绘制函数搬迁到 common-renderer.ts,添加类型注解
|
|
|
|
|
+ - 将坐标轴绘制函数搬迁到 axis-renderer.ts,添加类型注解
|
|
|
|
|
+ - 将各图表类型绘制函数搬迁到对应的 renderer 文件,添加类型注解
|
|
|
|
|
+4. 验证搬迁结果:
|
|
|
|
|
+ - 确保所有绘制函数正确导出
|
|
|
|
|
+ - 运行类型检查验证类型注解正确
|
|
|
|
|
+ - 确认代码逻辑与原始文件完全一致
|
|
|
|
|
+
|
|
|
|
|
+**验收标准:**
|
|
|
|
|
+- [ ] renderers/ 目录下所有文件创建完成
|
|
|
|
|
+- [ ] 所有绘制函数都有完整类型注解
|
|
|
|
|
+- [ ] 类型检查通过(pnpm typecheck),无 any 类型(除非必要)
|
|
|
|
|
+- [ ] 每个文件控制在500行以内
|
|
|
|
|
+- [ ] 代码逻辑与原始 u-charts.ts 完全一致
|
|
|
|
|
+
|
|
|
|
|
+### 故事016-006:搬迁核心类并完成模块化
|
|
|
|
|
+**背景:** 所有功能模块化完成后,最后**搬迁** uCharts 主类和 uChartsEvent 事件类,导入所有模块,完成整个 u-charts 核心库的模块化**搬迁**。
|
|
|
|
|
+
|
|
|
|
|
+**重要原则**:
|
|
|
|
|
+- **搬迁**而非重构:保持代码逻辑完全不变,只改变文件组织方式
|
|
|
|
|
+- 只在搬迁过程中添加 TypeScript 类型注解
|
|
|
|
|
+- 不修改代码的实现逻辑
|
|
|
|
|
+
|
|
|
|
|
+**任务列表:**
|
|
|
|
|
+1. 分析核心类:
|
|
|
|
|
+ - 分析 uChartsEvent 事件类
|
|
|
|
|
+ - 分析 uCharts 主类的所有方法
|
|
|
|
|
+ - 识别类方法与各模块的依赖关系
|
|
|
|
|
+2. 创建 charts 模块:
|
|
|
|
|
+ - 创建 charts/u-charts-event.ts,**搬迁** uChartsEvent 类,添加完整事件类型注解
|
|
|
|
|
+ - 创建 charts/u-charts.ts,**搬迁** uCharts 主类,导入所有模块,添加类型注解
|
|
|
|
|
+ - 创建 charts/index.ts 统一导出
|
|
|
|
|
+3. 更新 src/index.ts:
|
|
|
- 导出所有公共API
|
|
- 导出所有公共API
|
|
|
- 保持向后兼容性(默认导出 uCharts 类)
|
|
- 保持向后兼容性(默认导出 uCharts 类)
|
|
|
- 导出各个模块供高级用户使用
|
|
- 导出各个模块供高级用户使用
|
|
|
-5. 验证拆分结果:
|
|
|
|
|
|
|
+4. 更新 package.json:
|
|
|
|
|
+ - 更新 exports 字段支持模块导出
|
|
|
|
|
+5. 验证搬迁结果:
|
|
|
- 确保所有导出正确
|
|
- 确保所有导出正确
|
|
|
- - 运行类型检查,验证类型注解正确
|
|
|
|
|
- - 如果有现有测试,确保测试通过
|
|
|
|
|
- - 验证生成的 .d.ts 文件正确导出类型
|
|
|
|
|
|
|
+ - 运行类型检查验证类型注解正确
|
|
|
|
|
+ - 运行 pnpm build 验证构建成功,生成 .d.ts 文件
|
|
|
|
|
+ - 检查生成的 .d.ts 文件正确导出类型
|
|
|
|
|
+ - 验证模块间无循环依赖
|
|
|
|
|
+ - 确认代码逻辑与原始文件完全一致
|
|
|
|
|
+6. 删除或备份原始 u-charts.ts 文件
|
|
|
|
|
|
|
|
**验收标准:**
|
|
**验收标准:**
|
|
|
-- [ ] u-charts.ts 成功拆分为多个模块文件
|
|
|
|
|
-- [ ] 每个模块职责单一、边界清晰
|
|
|
|
|
-- [ ] 所有函数和类正确导出
|
|
|
|
|
|
|
+- [ ] charts/ 目录下所有文件创建完成
|
|
|
|
|
+- [ ] uChartsEvent 和 uCharts 类有完整类型注解
|
|
|
- [ ] src/index.ts 保持向后兼容,默认导出 uCharts 类
|
|
- [ ] src/index.ts 保持向后兼容,默认导出 uCharts 类
|
|
|
-- [ ] 所有公共函数和类都有完整的类型注解
|
|
|
|
|
- [ ] 类型检查通过(pnpm typecheck),无 any 类型(除非必要)
|
|
- [ ] 类型检查通过(pnpm typecheck),无 any 类型(除非必要)
|
|
|
-- [ ] 包可以成功构建,自动生成 .d.ts 声明文件
|
|
|
|
|
|
|
+- [ ] 包可以成功构建(pnpm build),自动生成 .d.ts 声明文件
|
|
|
- [ ] 代码组织清晰,易于维护和测试
|
|
- [ ] 代码组织清晰,易于维护和测试
|
|
|
- [ ] 模块间依赖关系合理,无循环依赖
|
|
- [ ] 模块间依赖关系合理,无循环依赖
|
|
|
|
|
+- [ ] 代码逻辑与原始 u-charts.ts 完全一致
|
|
|
|
|
|
|
|
-**技术注意事项:**
|
|
|
|
|
-- 拆分时保持函数逻辑完全不变,只改变文件组织
|
|
|
|
|
-- 使用相对导入确保模块间正确引用
|
|
|
|
|
-- 在拆分时同步添加类型注解,利用 TypeScript 自动生成 .d.ts 文件
|
|
|
|
|
-- 公共 API 添加完整类型注解,内部实现可适当使用 any
|
|
|
|
|
-- 保持原有的代码风格
|
|
|
|
|
-- 拆分后每个文件控制在500行以内
|
|
|
|
|
-- 移除 `@ts-nocheck` 注解,使用正确的类型替代
|
|
|
|
|
-
|
|
|
|
|
-**风险缓解:**
|
|
|
|
|
-- 在拆分前备份原始文件
|
|
|
|
|
-- 分批拆分,每批完成后进行验证
|
|
|
|
|
-- 使用 Git 版本控制,便于回滚
|
|
|
|
|
-- 拆分过程中保持构建可运行状态
|
|
|
|
|
-
|
|
|
|
|
-### 故事016-003:创建 React 图表组件封装
|
|
|
|
|
|
|
+### 故事016-007:创建 React 图表组件封装
|
|
|
**背景:** u-charts 原库需要手动管理 Canvas 上下文和事件处理。需要创建现代 React 函数式组件,简化使用方式。
|
|
**背景:** u-charts 原库需要手动管理 Canvas 上下文和事件处理。需要创建现代 React 函数式组件,简化使用方式。
|
|
|
|
|
|
|
|
**任务列表:**
|
|
**任务列表:**
|
|
@@ -250,7 +356,7 @@
|
|
|
- [ ] 组件支持响应式尺寸
|
|
- [ ] 组件支持响应式尺寸
|
|
|
- [ ] 类型定义完整,无类型错误
|
|
- [ ] 类型定义完整,无类型错误
|
|
|
|
|
|
|
|
-### 故事016-004:创建使用示例和文档
|
|
|
|
|
|
|
+### 故事016-008:创建使用示例和文档
|
|
|
**背景:** 需要提供完整的使用示例和 API 文档,帮助开发者快速上手使用 mini-charts 包。
|
|
**背景:** 需要提供完整的使用示例和 API 文档,帮助开发者快速上手使用 mini-charts 包。
|
|
|
|
|
|
|
|
**任务列表:**
|
|
**任务列表:**
|
|
@@ -274,7 +380,7 @@
|
|
|
- [ ] 配置选项说明清晰,包含示例
|
|
- [ ] 配置选项说明清晰,包含示例
|
|
|
- [ ] 原使用示例文档已更新
|
|
- [ ] 原使用示例文档已更新
|
|
|
|
|
|
|
|
-### 故事016-005:创建测试套件
|
|
|
|
|
|
|
+### 故事016-009:创建测试套件
|
|
|
**背景:** 需要为图表组件创建完整的测试套件,确保组件质量和稳定性。
|
|
**背景:** 需要为图表组件创建完整的测试套件,确保组件质量和稳定性。
|
|
|
|
|
|
|
|
**任务列表:**
|
|
**任务列表:**
|
|
@@ -319,7 +425,7 @@
|
|
|
## 完成定义
|
|
## 完成定义
|
|
|
|
|
|
|
|
- [ ] 所有故事完成,验收标准满足
|
|
- [ ] 所有故事完成,验收标准满足
|
|
|
-- [ ] u-charts 核心库完成模块化重构,并添加完整的类型注解
|
|
|
|
|
|
|
+- [ ] u-charts 核心库完成模块化**搬迁**(故事016.002-016.006),并添加完整的类型注解
|
|
|
- [ ] TypeScript 自动生成的 .d.ts 声明文件正确导出所有公共 API
|
|
- [ ] TypeScript 自动生成的 .d.ts 声明文件正确导出所有公共 API
|
|
|
- [ ] 类型检查通过,无 TypeScript 错误
|
|
- [ ] 类型检查通过,无 TypeScript 错误
|
|
|
- [ ] 所有测试通过,包括单元测试和集成测试
|
|
- [ ] 所有测试通过,包括单元测试和集成测试
|