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 相关文章推荐
Prototype Date对象 学习
Jul 12 Javascript
jQuery中:header选择器用法实例
Dec 29 Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 Javascript
JavaScript 经典实例日常收集整理(常用经典)
Mar 30 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
Nov 25 Javascript
Javacript中自定义的map.js  的方法
Nov 26 Javascript
vue集成百度UEditor富文本编辑器使用教程
Sep 21 Javascript
js防抖和节流的深入讲解
Dec 06 Javascript
浅析Vue 防抖与节流的使用
Nov 14 Javascript
vue 微信扫码登录(自定义样式)
Jan 06 Javascript
微信小程序实现弹框效果
May 26 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
Oct 24 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
is_uploaded_file函数引发的不能上传文件问题
2013/10/29 PHP
分享ThinkPHP3.2中关联查询解决思路
2015/09/20 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
Javascript中indexOf()和lastIndexOf应用方法实例
2016/08/24 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
React简单介绍
2017/05/24 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
js变量声明var使用与不使用的区别详解
2019/01/21 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
Vue实现多标签选择器
2019/11/28 Javascript
Vue实现简单计算器案例
2020/02/25 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
python模块之re正则表达式详解
2017/02/03 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
python+django+rest框架配置创建方法
2019/08/31 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
python属于软件吗
2020/06/18 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
采购部部门职责
2013/12/15 职场文书
治安消防安全责任书
2014/07/23 职场文书
小学生作文批改评语
2014/12/25 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
KTV员工管理制度
2015/08/06 职场文书
小学英语教学反思范文
2016/02/15 职场文书