qf-taro-echarts
Version:
为易观千帆taro项目开发,适用于Taro项目的ECharts图表组件
131 lines (107 loc) • 5.01 kB
Markdown
适用于Taro项目的ECharts图表组件,基于项目[echarts-for-weixin](https://github.com/ecomfe/echarts-for-weixin)封装
```bash
npm i -S qf-taro-echarts
```
修改Taro项目的配置`config/index`
1. [copy](https://nervjs.github.io/taro/docs/config-detail.html#copy)
```js
copy: {
patterns: [
// 需添加如下配置
{
from: 'node_modules/qf-taro-echarts/components/ec-canvas/',
to: 'dist/npm/qf-taro-echarts/components/ec-canvas'
}
],
options: {
ignore: ['*.js']
}
}
```
2. [h5.esnextModules](https://nervjs.github.io/taro/docs/config-detail.html#h5esnextmodules)
```js
h5: {
// 需添加如下配置
esnextModules: ['qf-taro-echarts'],
...
}
```
引入
```js
import Echarts from 'qf-taro-echarts'
```
示例代码:以折线图为例
```js
<Echarts
option={{
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [{
data: [820, 932, 901, 934, 1290, 1330, 1320],
type: 'line'
}]
}}
/>
```
| 属性名 | 说明 | 类型 | 默认值 |
| ----------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------- | :----- |
| width | 图表的宽 | string | 100% |
| height | 图表的高 | string | 200px |
| option | ECharts的[option配置](https://www.echartsjs.com/option.html) | object | - |
| onBeforeSetOption | 在echarts首次调用setOption前执行该方法,该方法会返回echarts的引用,可以在该方法中[注册地图](https://www.echartsjs.com/api.html#echarts.registerMap),[注册主题](https://www.echartsjs.com/api.html#echarts.registerTheme)等 | (echarts)=>void | - |
| customStyle | 自定义容器样式 | string | - |
| loading | 是否显示loading效果 | bool | false |
| loadingConf | loading效果的样式[配置](https://www.echartsjs.com/api.html#echartsInstance.showLoading) | object | - |
| h5 | 微信小程序 | ReactNative | 支付宝小程序 | 百度小程序 | 字节跳动小程序 |
| :---: | :--------: | :---------: | :----------: | :--------: | :------------: |
| √ | √ | × | √ | × | √ |
```js
import Taro, { Component } from '@tarojs/taro'
import { View, Button } from '@tarojs/components'
import Echarts from 'qf-taro-echarts'
export default class Page extends Component {
setChartRef = node => this.chartRef = node
preview = async () => {
// 获取到临时图片地址
const path = await this.chartRef.getImagePath()
Taro.previewImage({ current: path, urls: [path] })
}
render() {
return (
<View>
<Button onClick={this.preview}>查看生成图片</Button>
<Echarts
ref={this.setChartRef}
loadingConf={{ textColor: 123 }}
option={{
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [{
data: [820, 932, 901, 934, 1290, 1330, 1320],
type: 'line'
}]
}}
/>
</View>
)
}
}
```