vue2.0 自定义 饼状图 (Echarts)组件
2017-11-27 22:33
656 查看
1.自定义 图表 组件
Echarts.vue
2.页面调用
Diagram.vue
3.效果图
Echarts.vue
<!-- 自定义 echart 组件 --> <template> <div> <!-- echart表格 --> <div id="myChart" :style="echartStyle"></div> </div> </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.页面调用
Diagram.vue
<!-- 图表 --> <template> <div> <!-- 标题栏 --> <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> </div> </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.效果图
相关文章推荐
- vue2.0 自定义 饼状图 (Echarts)组件的方法
- vue2.0 自定义 饼状图 (Echarts)组件
- vue2.0 自定义 图片上传(UpLoader)组件
- Vue2.0的变化 ,组件模板,生命周期,循环,自定义键盘指令,过滤器
- vue2.0 自定义组件的方法(vue组件的封装)
- vue.js2.0 自定义组件初体验
- vue.2.0-自定义全局组件
- vue.js2.0 自定义组件初体验
- VUE2.0+Element-UI+Echarts封装的组件实例
- VUE2.0+Element-UI+Echarts封装的组件
- vue2.0 自定义 侧滑删除(LeftSlider)组件
- vue2.0 自定义 弹窗(MessageBox)组件
- vue2.0中的组件通信
- vue-自定义组件传
- Vue.js 学习11 Mint UI基于Vue2.0的组件库
- Vue.js自定义事件的表单输入组件方法
- ECharts2.0构建自定义单文件
- vue2.0组件之间的通信
- vue--自定义全局方法,在组件里面使用
- Vue2.0组件间数据传递