vue2.0 自定义 饼状图 (Echarts)组件的方法


Posted in Javascript onMarch 02, 2018

1、自定义 图表 组件

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)组件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在父页面调用子页面的JS方法
Sep 29 Javascript
Javascript setInterval的两种调用方法(实例讲解)
Nov 29 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
Jun 02 Javascript
基于jQuery实现自动轮播旋转木马特效
Nov 02 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
Nov 07 Javascript
第一次接触JS require.js模块化工具
Apr 17 Javascript
javascript之IE版本检测超简单方法
Aug 20 Javascript
百度多文件异步上传控件webuploader基本用法解析
Nov 07 Javascript
微信小程序 Nginx环境配置详细介绍
Feb 14 Javascript
数组Array的一些方法(总结)
Feb 17 Javascript
Angular2使用Augury来调试Angular2程序
May 21 Javascript
使用webpack打包koa2 框架app
Feb 02 Javascript
vue 使用eventBus实现同级组件的通讯
Mar 02 #Javascript
详解node.js 下载图片的 2 种方式
Mar 02 #Javascript
vue2.0+vue-dplayer实现hls播放的示例
Mar 02 #Javascript
详解vue2.0+vue-video-player实现hls播放全过程
Mar 02 #Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
Mar 02 #Javascript
浅谈FastClick 填坑及源码解析
Mar 02 #Javascript
利用vue和element-ui设置表格内容分页的实例
Mar 02 #Javascript
You might like
php一些错误处理的方法与技巧总结
2013/08/10 PHP
prototype class详解
2006/09/07 Javascript
JS 建立对象的方法
2007/04/21 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
node+express+ejs制作简单页面上手指南
2014/11/26 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
mpvue 如何使用腾讯视频插件的方法
2018/07/16 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
Python selenium文件上传方法汇总
2020/11/19 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
python 不同方式读取文件速度不同的实例
2018/11/09 Python
python实现接口并发测试脚本
2019/06/25 Python
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
常见的软件开发流程有哪些
2015/11/14 面试题
个人找工作求职简历的自我评价
2013/10/20 职场文书
市政施工员自我鉴定
2014/01/15 职场文书
高中校园广播稿3篇
2014/09/29 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
mysql自增长id用完了该怎么办
2022/02/12 MySQL