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 相关文章推荐
List all the Databases on a SQL Server
Jun 21 Javascript
javascript学习笔记(七)利用javascript来创建和存储cookie
Apr 08 Javascript
改进版通过Json对象实现深复制的方法
Oct 24 Javascript
JavaScript解析json格式数据简单示例
Dec 09 Javascript
12行javascript代码绘制一个八卦图
Apr 02 Javascript
javascript中attachEvent用法实例分析
May 14 Javascript
window.location.reload 刷新使用分析(去对话框)
Nov 11 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
Dec 27 Javascript
微信小程序使用request网络请求操作实例
Dec 15 Javascript
vue中的ref和$refs的使用
Nov 22 Javascript
前端Electron新手入门教程详解
Jun 21 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
Oct 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
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
PHP经典设计模式之依赖注入定义与用法详解
2019/05/21 PHP
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
JQuery中each()的使用方法说明
2010/08/19 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
[02:27]2018DOTA2亚洲邀请赛趣味视频之钓鱼大赛 谁是垂钓冠军?
2018/04/05 DOTA
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
基于Python os模块常用命令介绍
2017/11/03 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
python实现电脑自动关机
2018/06/20 Python
Python中如何引入第三方模块
2020/05/27 Python
python用700行代码实现http客户端
2021/01/14 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
中专毕业生自我鉴定范文
2013/11/09 职场文书
廉政教育心得体会
2014/01/01 职场文书
商场拾金不昧表扬信
2014/01/13 职场文书
保安队长职务说明书
2014/02/23 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
暑假家长评语大全
2014/04/17 职场文书
婚礼答谢词
2015/01/04 职场文书
倡议书格式及范文
2015/04/29 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
2019年思想汇报
2019/06/20 职场文书
python turtle绘制多边形和跳跃和改变速度特效
2022/03/16 Python
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL
Java中的Kotlin 内部类原理
2022/06/16 Java/Android