CECharts
- 用于在小程序环境中渲染ECharts图表的组件
该组件是对百度ECharts的封装,用于在小程序环境中渲染各类图表,支持触摸交互和数据更新。支持柱状图、折线图、饼图等各种ECharts支持的图表类型。
<CECharts
:canvasId="'chart-' + Math.random()"
:onReady="handleChartReady"
/>
// 图表初始化回调
handleChartReady(chart) {
chart.setOption({
title: {
text: '销售统计'
},
tooltip: {},
xAxis: {
data: ['1月', '2月', '3月', '4月', '5月', '6月']
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
});
}
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
canvasId | String | 随机生成 | 画布ID,用于标识图表实例 |
disableTouch | Boolean | false | 是否禁用触摸交互 |
| onReady | Function | - | 图表准备就绪的回调函数,参数为chart实例 |
组件内部对外暴露的方法:
方法名 | 参数 | 说明 |
---|---|---|
init | callback | 初始化图表方法 |
canvasToTempFilePath | opt | 将图表转为临时文件路径 |
<template>
<view class="page">
<view class="chart-container">
<CECharts
ref="salesChart"
:onReady="handleSalesChartReady"
/>
</view>
</view>
</template>
<script>
import { CECharts } from '@components/plugins/echarts';
export default {
components: {
CECharts
},
data() {
return {
salesData: []
}
},
methods: {
// 图表准备就绪回调
handleSalesChartReady(chart) {
// 保存图表实例
this.chart = chart;
// 设置图表配置
chart.setOption({
title: {
text: '月度销售统计',
left: 'center'
},
tooltip: {
trigger: 'axis'
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'category',
data: ['1月', '2月', '3月', '4月', '5月', '6月']
},
yAxis: {
type: 'value'
},
series: [{
name: '销量',
type: 'bar',
data: [10, 52, 200, 334, 390, 330]
}]
});
},
// 更新图表数据
updateChartData(newData) {
if (!this.chart) return;
this.chart.setOption({
series: [{
data: newData
}]
});
}
},
mounted() {
// 获取数据
setTimeout(() => {
const newData = [50, 120, 180, 80, 70, 110];
this.updateChartData(newData);
}, 2000);
}
}
</script>
组件已经内置了一些默认配置:
CECharts.weapp.vue