# CECharts 图表组件 ## 功能说明 该组件是对百度ECharts的封装,用于在小程序环境中渲染各类图表,支持触摸交互和数据更新。支持柱状图、折线图、饼图等各种ECharts支持的图表类型,组件内部已优化tooltip显示和触摸事件处理。 ## 引用方式 ```js import { CECharts } from '@components/plugins/echarts'; ``` ## 组件参数 - `canvasId` (String,默认值:随机生成):画布ID,用于标识图表实例 - `disableTouch` (Boolean,默认值:false):是否禁用触摸交互 - `onReady` (Function,可选):图表准备就绪的回调函数 - 参数:`chart` (Object) ECharts实例对象,可通过此对象设置图表配置和数据 ## 实例方法 - `init`:初始化图表方法 - `callback` (Function,必填):初始化完成的回调函数,参数为 `(canvas, width, height, dpr)` - `canvasToTempFilePath`:将图表转为临时文件路径 - `opt` (Object,必填):微信小程序 canvasToTempFilePath 的参数对象 ## 使用示例 ### 基础用法 ```html ``` ### 保存图表为图片 ```js // 保存图表为图片 saveChartAsImage() { const _this = this; this.$refs.salesChart.canvasToTempFilePath({ success(res) { console.log('保存成功:', res.tempFilePath); // 可以进一步使用 wx.saveImageToPhotosAlbum 保存到相册 }, fail(err) { console.error('保存失败:', err); } }); } ``` ## 注意事项 - 该组件暂时仅适用于小程序环境,文件名为 `CECharts.weapp.vue` - 在小程序端使用需要确保 canvas 的 type 属性设置为 "2d" - 小程序对 canvas 的性能有一定限制,复杂图表可能会有性能问题 - 组件自动会处理触摸事件,支持图表交互 - 组件已禁用了渐进式渲染(progressive: 0)以提高兼容性 - 组件内置了默认的 tooltip 样式和位置优化逻辑