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 URL传中文参数引发的乱码问题
Sep 02 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
Aug 12 Javascript
一个JavaScript的求爱小特效
May 09 Javascript
js使用setTimeout实现定时炸弹的方法
Apr 10 Javascript
JS实现超简单的汉字转拼音功能示例
Dec 22 Javascript
干货!教大家如何选择Vue和React
Mar 13 Javascript
js中事件对象和事件委托的介绍
Jan 21 Javascript
JS浮点数运算结果不精确的Bug解决
Aug 01 Javascript
基于Layui自定义模块的使用方法详解
Sep 14 Javascript
解决layui table表单提示数据接口请求异常的问题
Sep 24 Javascript
vue中keep-alive、activated的探讨和使用详解
Jul 26 Javascript
使用react-virtualized实现图片动态高度长列表的问题
May 28 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中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
写出高效jquery代码的19条指南
2014/03/19 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
vue实现点击图片放大效果
2017/08/15 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
Python做简单的字符串匹配详解
2017/03/21 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
Python将列表数据写入文件(txt, csv,excel)
2019/04/03 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
python实现倒计时小工具
2019/07/29 Python
在python中做正态性检验示例
2019/12/09 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
python实现手势识别的示例(入门)
2020/04/15 Python
python中rc1什么意思
2020/06/19 Python
某公司Java工程师面试题笔试题
2016/03/27 面试题
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
党员批评与自我批评
2014/02/12 职场文书
小组合作学习反思
2014/02/18 职场文书
社会实践评语
2014/04/28 职场文书
师德师风个人整改措施
2014/10/27 职场文书
金陵十三钗观后感
2015/06/04 职场文书
与死神共舞观后感
2015/06/15 职场文书
运动员代表致辞
2015/07/29 职场文书
《社戏》教学反思
2016/02/22 职场文书