vue组件之echarts报表

将echarts报表封装成组件,动态传入数据,显示图表。

1.饼状图

父组件:

<MPie :datas="piedata"></MPie>   <!--piedata为传入的数据-->
data:function(){
return {
piedata:{
htmldiv:'mycharts2',
text: '某站点用户访问来源',
subtext: '纯属虚构',
name: '访问来源',
data:[
{value:335, name:'直接访问'},
{value:310, name:'邮件营销'},
{value:234, name:'联盟广告'},
{value:135, name:'视频广告'},
{value:1548, name:'搜索引擎'}
    ]
    }
  }
}

子组件:MPie.vue

<template>
<div id="MPie">
<div :id="datas.htmldiv" style="height:100%;width:100%;min-height: 250px;"></div>
</div>
</template> <script>
var echarts = require('echarts')
export default {
name: 'MPie',
data () {
return {
}
},
mounted(){
var legendData=[];
for(var i in this.datas.data){
legendData.push(this.datas.data[i])
}
var option = {
title : {
text: this.datas.text,
textStyle:{color:'#333'},
subtext: this.datas.subtext,
subtextStyle:{color:'#aaa'},
x:'center'
},
tooltip : {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
legend: {
orient: 'vertical',
bottom: 'bottom',
data: legendData
},
series : [
{
name: '访问来源',
type: 'pie',
radius : '55%',
center: ['50%', '60%'],
data:this.datas.data,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
var myChart = echarts.init(document.getElementById(this.datas.htmldiv));
myChart.setOption(option);
window.onresize = echarts.getInstanceByDom(document.getElementById(this.datas.htmldiv)).resize();
},
methods: { },
props: {
datas: {}
}
}
</script> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped> </style>

2.柱状图

父组件:

<MBar :datas="bardata"></MBar><!--piedata为传入的数据-->
bardata:{
htmldiv:'mycharts1',
text: '某站点用户访问来源',
subtext: '纯属虚构',
xAxisData: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
data:[120, 200, 150, 80, 70, 110, 130]
}

子组件:MBar.vue

<template>
<div id="MBar" style="">
<div :id="datas.htmldiv" style="height:100%;width:100%;min-height: 250px;"></div>
</div>
</template> <script>
var echarts = require('echarts')
export default {
name: 'MBar',
data () {
return {
}
},
mounted(){
var option = {
title : {
text: this.datas.text,
textStyle:{color:'#333'},
subtext: this.datas.subtext,
subtextStyle:{color:'#aaa'},
x:'center'
},
xAxis: {
type: 'category',
data: this.datas.xAxisData,
axisLine:{
lineStyle:{
color:'#000',
}
}
},
yAxis: {
type: 'value',
axisLine:{
lineStyle:{
color:'#000',
}
}
},
grid:{
bottom:20,
left:40,
right:20,
top:50
},
series: [{
data: this.datas.data,
type: 'bar'
}]
};
var myChart = echarts.init(document.getElementById(this.datas.htmldiv));
myChart.setOption(option);
window.onresize = echarts.getInstanceByDom(document.getElementById(this.datas.htmldiv)).resize();
},
methods: { },
props: {
datas: {}
}
}
</script> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped> </style>

vue组件之echarts报表的更多相关文章

  1. 在vue中使用echarts图表

    在vue中使用echarts图表   转载请注明出处:https://www.cnblogs.com/wenjunwei/p/9815290.html 安装vue依赖 使用npm npm instal ...

  2. VUE组件汇总

    内容 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 UI组件 element ★13489 - 饿了么出品的Vue2的web UI工具套件 Vux ★8133 - 基于Vue和 ...

  3. Vue怎么使用Echarts创建图表

    摘要:在后台管理系统中,我们经常会遇到图表,比如说:柱形图,饼状图,折线图,雷达图等等,而用来写图表插件有很多,我这里主要介绍Echarts在项目里怎么使用,官网地址如下:https://echart ...

  4. vue+vuex+axios+echarts画一个动态更新的中国地图

    一. 生成项目及安装插件 # 安装vue-cli npm install vue-cli -g # 初始化项目 vue init webpack china-map # 切到目录下 cd china- ...

  5. vue.js使用echarts一分钟简单入门

    图表的使用在企业级软件中使用越来越普遍,前端开发人员可以使用常用的echarts开源库来进行图表展示的开发,公司最近提出需要丰富系统首页的内容,趁此机会分享一下如何在使用vue.js框架下使用echa ...

  6. VUE中集成echarts时 getAttribute of null错误

    错误 错误场景一: 错误提示: 在运行Vue项目时出现了上述错误,出现该错误的原因是Echarts的图形容器还未生成就对其进行了初始化所造成的,代码如下: // 基于准备好的dom,初始化echart ...

  7. Vue 中引入echarts

    安装依赖 npm install echarts -S 或者使用淘宝的镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org ...

  8. vue 中使用echarts

    前言:在vue2.0中使用百度echarts有三种解决方案. 一.原始方法直接使用 这样每次都要获取图表dom元素 然后通过setOption渲染数据,最后在mounted中初始化.很麻烦. < ...

  9. vue中使用echarts的两种方法

    在vue中使用echarts有两种方法一.第一种方法1.通过npm获取echarts npm install echarts --save 2.在vue项目中引入echarts 在 main.js 中 ...

随机推荐

  1. BZOJ4903 UOJ300 CTSC2017 吉夫特 【Lucas定理】

    BZOJ4903 UOJ300 CTSC2017 吉夫特 弱弱地放上题目链接 Lucas定理可以推一推,发现C(n,m)是奇数的条件是n" role="presentation&q ...

  2. ssm异常;

    问题:Invalid bound statement (not found): com.itq.mapper.TbItemMapper.selectByExample 解决:修改pom.xml文件中添 ...

  3. linux vi详解

    刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 ...

  4. 微信小程序(2)——新建页面

    在当前版本中,我们可以快速的新建并且新建页面. 在app.json文件中输入 { "pages":[ "pages/index/index" ] } 输入&qu ...

  5. 《DSP using MATLAB》示例Example 8.17

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  6. Scrapy源码研究前戏

    一.Twisted的使用 在 Twisted 中,有一种特殊的对象用于实现事件循环.这个对象叫做 reactor.可以把反应器(reactor)想象为 Twisted 程序的中枢神经.除了分发事件循环 ...

  7. BZOJ5369 [Pkusc2018]最大前缀和

    题意 小C是一个算法竞赛爱好者,有一天小C遇到了一个非常难的问题:求一个序列的最大子段和. 但是小C并不会做这个题,于是小C决定把序列随机打乱,然后取序列的最大前缀和作为答案. 小C是一个非常有自知之 ...

  8. javascript系列学习----Creating objects

    在javascript语言里面,一切皆是对象,对象是它的灵魂,值得我们学习和领悟对象的概念和使用,下面我会引用实例来进行说明. 1)创建对象 方法一:js的对象方法构造 var cody = new ...

  9. json.loads(s) returns error message like this: ValueError: Invalid control character at: line 1 column 33 (char 33)

    json.loads(s) returns error message like this: ValueError: Invalid control character at: line 1 colu ...

  10. 安卓笔记-adb指令、打包安装

    adb install -r -s xxx.apk      -r重装  -s 安装到sd卡 安装软件 adb uninstall -k 包名           -k 只卸载程序不清除数据 adb ...