Draft
作为 小程序开发者, 我想要 完整的使用示例和 API 文档, 以便 快速上手使用 mini-charts 包,理解各种图表组件的配置选项和使用方法。
mini-charts 包已完成核心库模块化搬迁(故事 016.001-016.008)和 React 图表组件封装(故事 016.009),现在需要提供完整的文档和示例,帮助开发者快速理解和使用这个图表库。
前置故事完成状态:
参考资料:
docs/小程序图表库示例/使用示例.md - 原始类组件使用示例docs/prd/epic-016-mini-charts-package.md - Epic 016 完整定义故事 016.001: ✅ 已完成 - 创建 mini-charts 包基础结构 故事 016.002: ✅ 已完成 - 模块化 config 和 utils 故事 016.003: ✅ 已完成 - 模块化 data-processing 函数 故事 016.004: ✅ 已完成 - 模块化 charts-data 函数 故事 016.005: ✅ 已完成 - 模块化 renderers 函数 故事 016.006: ✅ 已完成 - 搬迁核心类并完成模块化 故事 016.007: ✅ 已完成 - 搬迁遗漏的辅助函数 故事 016.008: ✅ 已完成 - 搬迁核心绘制函数完成模块化 故事 016.009: ✅ 已完成 - 创建 React 图表组件封装
docs/小程序图表库示例/使用示例.md),指向新包的使用方式pnpm typecheck)[ ] Task 1: 创建 examples 目录和基础示例 (AC: 1, 6)
examples/ 目录examples/BasicColumnChart.tsx - 基础柱状图示例examples/BasicLineChart.tsx - 基础折线图示例(支持拖拽)examples/BasicCandleChart.tsx - 基础K线图示例examples/PieChartExample.tsx - 饼图示例examples/RadarChartExample.tsx - 雷达图示例examples/index.ts - 统一导出所有示例[ ] Task 2: 创建 README.md 主文档 (AC: 2, 3, 4)
mini-ui-packages/mini-charts/README.md[ ] Task 3: 创建 API 文档 (AC: 3, 4)
docs/api/ 目录docs/api/BaseChart.md - BaseChart 组件 APIdocs/api/ColumnChart.md - ColumnChart 组件 APIdocs/api/LineChart.md - LineChart 组件 APIdocs/api/CandleChart.md - CandleChart 组件 APIdocs/api/PieChart.md - PieChart 组件 APIdocs/api/RadarChart.md - RadarChart 组件 API[ ] Task 4: 创建高级示例 (AC: 1, 6)
examples/MixedChartExample.tsx - 混合图表示例(如柱状图+折线图)examples/CustomConfigExample.tsx - 自定义配置示例(颜色、字体、动画等)examples/ResponsiveChartExample.tsx - 响应式图表示例examples/DataUpdateExample.tsx - 数据动态更新示例[ ] Task 5: 更新 package.json 导出配置 (AC: 2)
mini-ui-packages/mini-charts/package.json 的 exports 字段[ ] Task 6: 更新原使用示例文档 (AC: 5)
docs/小程序图表库示例/使用示例.md[ ] Task 7: 验证文档和示例 (AC: 7)
pnpm typecheck)故事 016.009 完成状态总结:
pnpm typecheck)pnpm build),生成完整的 .d.ts 声明文件可用的组件 API:
// src/index.ts 导出的组件
export { BaseChart } from './components/BaseChart';
export { ColumnChart } from './components/ColumnChart';
export { LineChart } from './components/LineChart';
export { CandleChart } from './components/CandleChart';
export { PieChart } from './components/PieChart';
export { RadarChart } from './components/RadarChart';
// 导出的类型定义
export type { BaseChartProps } from './components/BaseChart';
export type { ColumnChartProps } from './components/ColumnChart';
export type { LineChartProps } from './components/LineChart';
export type { CandleChartProps } from './components/CandleChart';
export type { PieChartProps } from './components/PieChart';
export type { RadarChartProps } from './components/RadarChart';
来源: source-tree.md
mini-ui-packages/
└── mini-charts/ # mini-charts 包
├── src/
│ ├── index.ts # 主入口文件
│ ├── components/ # React 图表组件 [已完成]
│ └── lib/ # u-charts 核心库 [已完成]
├── examples/ # [本故事创建] 使用示例
│ ├── BasicColumnChart.tsx # 基础柱状图示例
│ ├── BasicLineChart.tsx # 基础折线图示例
│ ├── BasicCandleChart.tsx # 基础K线图示例
│ ├── PieChartExample.tsx # 饼图示例
│ ├── RadarChartExample.tsx # 雷达图示例
│ ├── MixedChartExample.tsx # 混合图表示例
│ ├── CustomConfigExample.tsx # 自定义配置示例
│ ├── ResponsiveChartExample.tsx # 响应式示例
│ ├── DataUpdateExample.tsx # 数据更新示例
│ └── index.ts # 示例导出
├── docs/ # [本故事创建] API 文档
│ └── api/
│ ├── BaseChart.md # BaseChart API 文档
│ ├── ColumnChart.md # ColumnChart API 文档
│ ├── LineChart.md # LineChart API 文档
│ ├── CandleChart.md # CandleChart API 文档
│ ├── PieChart.md # PieChart API 文档
│ └── RadarChart.md # RadarChart API 文档
├── README.md # [本故事创建] 主文档
├── package.json
└── tsconfig.json
来源: 016.009 React Chart Components
import React from 'react';
import { ColumnChart } from '@d8d/mini-charts';
const MyComponent = () => {
const data = {
categories: ['2018', '2019', '2020', '2021', '2022', '2023'],
series: [{
name: '目标值',
data: [35, 36, 31, 33, 13, 34]
}, {
name: '完成量',
data: [18, 27, 21, 24, 6, 28]
}]
};
return (
<ColumnChart
canvasId="columnChart"
data={data}
dataLabel={true}
columnType="group"
/>
);
};
import React from 'react';
import { LineChart } from '@d8d/mini-charts';
const MyComponent = () => {
const data = {
categories: ['2018', '2019', '2020', '2021', '2022', '2023'],
series: [{
name: '成交量A',
data: [35, 36, 31, 33, 13, 34]
}]
};
return (
<LineChart
canvasId="lineChart"
data={data}
enableScroll={true}
dataPointShape={true}
/>
);
};
import React from 'react';
import { CandleChart } from '@d8d/mini-charts';
const MyComponent = () => {
const data = {
categories: ['2018', '2019', '2020', '2021', '2022', '2023'],
series: [{
name: '上证指数',
data: [
[2320.26, 2320.26, 2280.12, 2307.89],
[2325.61, 2332.45, 2305.86, 2315.23]
]
}]
};
return (
<CandleChart
canvasId="candleChart"
data={data}
enableScroll={true}
showMA={[5, 10, 30]}
/>
);
};
export interface BaseChartProps {
canvasId: string; // Canvas ID
width?: number; // 图表宽度(可选)
height?: number; // 图表高度(可选)
pixelRatio?: number; // 像素比(可选,默认根据平台自动计算)
categories: string[]; // X轴分类数据
series: any[]; // 系列数据
config?: Record<string, any>; // uCharts 配置对象(可选)
onTouchStart?: (e: any) => void;
onTouchMove?: (e: any) => void;
onTouchEnd?: (e: any) => void;
}
export interface ColumnChartProps extends Omit<BaseChartProps, 'canvasId'> {
canvasId?: string; // Canvas ID(可选,默认自动生成)
data?: { // 图表数据(可选)
categories: string[];
series: any[];
};
dataLabel?: boolean; // 是否显示数据标签(默认 true)
columnType?: 'group' | 'stack'; // 柱状图类型(默认 'group')
config?: Record<string, any>; // 额外配置(可选)
}
export interface LineChartProps extends Omit<BaseChartProps, 'canvasId'> {
canvasId?: string; // Canvas ID(可选,默认自动生成)
data?: { // 图表数据(可选)
categories: string[];
series: any[];
};
dataPointShape?: boolean; // 是否显示数据点形状(默认 true)
enableScroll?: boolean; // 是否启用滚动(默认 false)
config?: Record<string, any>; // 额外配置(可选)
}
export interface CandleChartProps extends Omit<BaseChartProps, 'canvasId'> {
canvasId?: string; // Canvas ID(可选,默认自动生成)
data?: { // 图表数据(可选)
categories: string[];
series: any[];
};
enableScroll?: boolean; // 是否启用滚动(默认 false)
showMA?: number[]; // 移动平均线周期数组(如 [5, 10, 30])
config?: Record<string, any>; // 额外配置(可选)
}
export interface PieChartProps extends Omit<BaseChartProps, 'canvasId'> {
canvasId?: string; // Canvas ID(可选,默认自动生成)
data?: { // 图表数据(可选)
categories: string[];
series: any[];
};
pieType?: 'pie' | 'ring'; // 饼图类型(默认 'pie')
dataLabel?: boolean; // 是否显示数据标签(默认 true)
config?: Record<string, any>; // 额外配置(可选)
}
export interface RadarChartProps extends Omit<BaseChartProps, 'canvasId'> {
canvasId?: string; // Canvas ID(可选,默认自动生成)
data?: { // 图表数据(可选)
categories: string[];
series: any[];
};
dataPointShape?: boolean; // 是否显示数据点形状(默认 true)
config?: Record<string, any>; // 额外配置(可选)
}
{
"compilerOptions": {
"target": "ES2020",
"lib": ["DOM", "DOM.Iterable", "ES2020"],
"module": "ESNext",
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
}
}
本故事重要: 示例代码必须满足 TypeScript 严格模式,类型检查通过。
README.md 结构要求:
# @d8d/mini-charts
## 简介
- 包特性描述
- 支持的图表类型
- 技术特性
## 安装
\`\`\`bash
pnpm add @d8d/mini-charts
\`\`\`
## 快速开始
\`\`\`typescript
import { ColumnChart } from '@d8d/mini-charts';
// 最小化示例
\`\`\`
## 组件 API
- BaseChart
- ColumnChart
- LineChart
- CandleChart
- PieChart
- RadarChart
## 配置选项
- 通用配置
- 各图表类型专属配置
## 常见问题
- FAQ列表
## 迁移指南
- 从原始 u-charts 迁移
## 相关链接
- u-charts 官方文档
API 文档结构要求:
# [ComponentName] API
## 概述
组件简要描述
## Props 接口
\`\`\`typescript
export interface ComponentNameProps {
// Props 定义
}
\`\`\`
## Props 说明
| Prop | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| ... | ... | ... | ... |
## 示例代码
\`\`\`typescript
// 完整示例
\`\`\`
## 相关文档
- 链接到其他相关组件
{
"exports": {
".": {
"types": "./src/index.ts",
"import": "./src/index.ts",
"require": "./src/index.ts"
},
"./components": {
"types": "./src/components/index.ts",
"import": "./src/components/index.ts",
"require": "./src/components/index.ts"
}
}
}
本故事: 需要添加 examples 导出配置。
本故事: 文档和示例代码需要通过类型检查,验证其正确性。
# 类型检查示例代码
pnpm typecheck
原始使用方式(类组件):
Component 类组件Taro.createCanvasContext)新使用方式(函数式组件):
新增文件位置:
mini-ui-packages/mini-charts/examples/mini-ui-packages/mini-charts/docs/api/mini-ui-packages/mini-charts/README.md修改文件:
mini-ui-packages/mini-charts/package.json - 添加 examples 导出配置docs/小程序图表库示例/使用示例.md - 添加新版本使用方式完成本故事后,应该满足:
examples/ 目录下至少有 3 个基础示例和 3 个高级示例README.md 文档完整,包含所有必需章节docs/api/ 目录下每个组件都有 API 文档pnpm typecheck 无类型错误以下工作不在本故事范围内:
| Date | Version | Description | Author |
|---|---|---|---|
| 2025-12-24 | 1.0 | 创建故事文档 | Bob (Scrum Master) |
此部分由开发代理在实施过程中填写
待填写
待填写
待填写
待填写
此部分由 QA 代理在审查完成后填写