Now I will share with you a method of customizing the pie chart (Echarts) component in vue2.0. It has a good reference value and I hope it will be helpful to everyone.
1. Custom chart component
Echarts.vue
<!-- 自定义 echart 组件 --> <template> <p> <!-- echart表格 --> <p id="myChart" :style="echartStyle"></p> </p> </template> <script> export default { props: { // 样式 echartStyle: { type: Object, default(){ return {} } }, // 标题文本 titleText: { type: String, default: '' }, // 提示框键名 tooltipFormatter: { type: String, default: '' }, // 扇形区域名称 opinion: { type: Array, default(){ return [] } }, // 提示框标题 seriesName: { type: String, default: '' }, // 扇形区域数据 opinionData: { type: Array, default(){ return [] } }, }, data(){ return { // } }, mounted(){ this.$nextTick(function() { this.drawPie('myChart') }) }, methods: { // 监听扇形图点击 eConsole(param) { // 向父组件传值 this.$emit("currentEchartData",param.name); }, // 绘制饼状图 drawPie(id){ this.charts = this.$echarts.init(document.getElementById(id)); this.charts.on("click", this.eConsole); this.charts.setOption({ title: { text: this.titleText, // 标题文本 left: 'center' }, tooltip : { trigger: 'item', formatter: "{a} <br/> " + this.tooltipFormatter + ":{c}" }, legend: { bottom: 20, left: 'center', data: this.opinion // 扇形区域名称 }, series : [ { name:this.seriesName, // 提示框标题 type: 'pie', radius : '65%', center: ['50%', '50%'], selectedMode: 'single', data:this.opinionData, // 扇形区域数据 itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] }) } } } </script> <style lang="less" scoped> #myChart{ width: 100%; } </style>
2. Page call
Diagram.vue
<!-- 图表 --> <template> <p> <!-- 标题栏 --> <mt-header title="图表"> <router-link to="/" slot="left"> <mt-button icon="back">返回</mt-button> </router-link> </mt-header> <!-- 内容 --> <m-echarts :echartStyle="s" :titleText="a" :tooltipFormatter="b" :opinion="c" :seriesName="d" :opinionData="e" v-on:currentEchartData="getEchartData" ></m-echarts> </p> </template> <script> import mEcharts from '../components/Echarts' export default { name: 'Diagram', components: { mEcharts }, data(){ return { a:'水果销售统计', b:'销售数量', c:['香蕉','苹果','橘子'], d:'销售统计', e:[ {value:3, name:'香蕉'}, {value:3, name:'苹果'}, {value:3, name:'橘子'} ], s: { height: '' } } }, created(){ // 获取屏幕高度 this.s.height = document.documentElement.clientHeight - 44 + 'px'; }, methods: { getEchartData(val){ console.log(val); } } } </script> <style lang="less" scoped> // </style>
3. Renderings
The above is what I compiled for you. I hope you will see more in the future Helpful to everyone.
Related articles:
Found problems with custom instructions in Vue.directive
Detailed explanation of JavaScript image processing and synthesis technology (detailed tutorial)
How to implement the back force refresh function on the WeChat web side (detailed tutorial)
The above is the detailed content of How to implement custom pie chart (Echarts) component in vue2.0. For more information, please follow other related articles on the PHP Chinese website!