将 docs/小程序图表库示例/ 目录下的 u-charts 图表库(约7700行代码)迁移为独立的 mini-ui-packages 共享包 mini-charts,为 Taro 小程序提供完整的图表解决方案,支持柱状图、折线图、K线图等多种图表类型。
当前相关功能:
docs/小程序图表库示例/u-charts小程序图表库.js,是一个高性能跨平台图表库docs/小程序图表库示例/使用示例.md 提供了完整的 React + Taro 使用示例技术特性:
集成点:
当前架构分析:
改造范围: 本次史诗将完成以下工作:
阶段1:创建 mini-charts 包基础结构(故事016.001)
mini-ui-packages/mini-charts阶段2:重构 u-charts 核心库模块化(故事016.006)
阶段3:添加 TypeScript 类型定义(故事016.002)
阶段4:创建 React 组件封装(故事016.003)
阶段5:创建使用示例和文档(故事016.004)
阶段6:创建测试套件(故事016.005)
迁移策略:
成功标准:
mini-charts 包创建成功,可通过 workspace 引用背景: u-charts 图表库目前位于文档目录下,需要迁移为独立的共享包,以便在多个小程序项目中复用。
任务列表:
mini-ui-packages/mini-charts
docs/小程序图表库示例/u-charts小程序图表库.js 迁移到 src/lib/u-charts.ts验收标准:
mini-charts 包目录结构创建完成背景: 当前 u-charts.ts 文件包含7719行代码,所有功能都在一个文件中,包括42个绘制函数、约60个工具/数据处理函数以及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 # 主类(重构后)
拆分文件(按优先级):
更新 src/index.ts:
验证拆分结果:
验收标准:
技术注意事项:
风险缓解:
背景: 在故事016.006完成模块化重构后,需要为重构后的 u-charts 库添加完整的 TypeScript 类型定义。原库为纯JavaScript,缺少类型支持。模块化后的结构更容易添加类型,提高开发体验和代码安全性。
任务列表:
验收标准:
背景: u-charts 原库需要手动管理 Canvas 上下文和事件处理。需要创建现代 React 函数式组件,简化使用方式。
任务列表:
docs/小程序图表库示例/使用示例.md 迁移示例代码作为参考验收标准:
背景: 需要提供完整的使用示例和 API 文档,帮助开发者快速上手使用 mini-charts 包。
任务列表:
docs/小程序图表库示例/使用示例.md 中的示例验收标准:
背景: 需要为图表组件创建完整的测试套件,确保组件质量和稳定性。
任务列表:
验收标准: