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 相关文章推荐
ajax 缓存 问题 requestheader
Aug 01 Javascript
来自国外的30个基于jquery的Web下拉菜单
Jun 22 Javascript
JS的replace方法介绍
Oct 20 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
Sep 22 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
Feb 15 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
Oct 26 Javascript
全面解析Bootstrap排版使用方法(标题)
Nov 30 Javascript
JS创建事件的三种方法(实例代码)
May 12 Javascript
Webpack框架核心概念(知识点整理)
Dec 22 Javascript
详解webpack运行Babel教程
Jun 13 Javascript
浅谈在Vue.js中如何实现时间转换指令
Jan 06 Javascript
JS常用排序方法实例代码解析
Mar 03 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 中的一些经验积累
2006/10/09 PHP
杏林同学录(七)
2006/10/09 PHP
php 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
javascript 精粹笔记
2010/05/09 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
在Express中提供静态文件的实现方法
2019/10/17 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
Django中使用locals()函数的技巧
2015/07/16 Python
python issubclass 和 isinstance函数
2019/07/25 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
国际领先的学术出版商:Springer
2017/01/11 全球购物
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
init进程的作用
2015/08/20 面试题
几个MySql的面试题
2013/04/22 面试题
网游商务专员求职信
2013/10/15 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
2014年清明节寄语
2014/04/03 职场文书
机电一体化专业毕业生自荐信
2014/06/19 职场文书
世界读书日的活动方案
2014/08/20 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
小学运动会开幕词
2015/01/28 职场文书
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server