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 相关文章推荐
javascript编程起步(第六课)
Feb 27 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
Oct 14 Javascript
JS实现图片无间断滚动代码汇总
Jul 30 Javascript
JavaScript中的数组操作介绍
Dec 30 Javascript
javascript中Object使用详解
Jan 26 Javascript
jQuery数据缓存用法分析
Feb 20 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
May 18 Javascript
IE浏览器下PNG相关功能
Jul 05 Javascript
AngularJS模块学习之Anchor Scroll
Jan 19 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
Aug 11 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
Sep 24 Javascript
如何在VUE中使用vue-awesome-swiper
Jan 04 Vue.js
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中static,const与define的使用区别
2013/06/18 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
JS从数组中随机取出几个数组元素的方法
2016/08/02 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
2017/04/22 Javascript
jQuery plugin animsition使用小结
2017/09/14 jQuery
原生JS实现Ajax跨域请求flask响应内容
2017/10/24 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
js中的 || 与 &amp;&amp; 运算符详解
2018/05/24 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
Python实现正整数分解质因数操作示例
2018/08/01 Python
基于python指定包的安装路径方法
2018/10/27 Python
Python 判断奇数偶数的方法
2018/12/20 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
详解python中自定义超时异常的几种方法
2019/07/29 Python
django 配置阿里云OSS存储media文件的例子
2019/08/20 Python
python解释器spython使用及原理解析
2019/08/24 Python
python内打印变量之%和f的实例
2020/02/19 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
Python实现自动签到脚本功能
2020/08/20 Python
CSS改变网页中鼠标选中文字背景颜色例子
2014/04/23 HTML / CSS
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
C#如何进行LDAP用户校验
2012/11/21 面试题
介绍一下Python下range()函数的用法
2013/11/07 面试题
教师演讲稿范文
2014/01/08 职场文书
秋季婚礼证婚词
2014/01/11 职场文书
《社戏》教学反思
2014/04/15 职场文书
经贸专业毕业生求职信范文
2014/05/01 职场文书
公文格式,规则明细(新手收藏)
2019/07/23 职场文书
Python selenium模拟网页点击爬虫交管12123违章数据
2021/05/26 Python