下面我就为大家分享一篇vue2.0 自定义 饼状图 (echarts)组件的方法,具有很好的参考价值,希望对大家有所帮助。
1、自定义 图表 组件
echarts.vue
<!-- 自定义 echart 组件 -->
<template>
<p>
<!-- echart表格 -->
<p id="mychart" :style="echartstyle"></p>
</p>
</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>
<p>
<!-- 标题栏 -->
<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>
</p>
</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、效果图
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
在vue.directive中发现有关自定义指令的问题
详细讲解javascript图片处理与合成技术(详细教程)
如何实现微信web端后退强制刷新功能(详细教程)
以上就是在vue2.0中如何实现自定义 饼状图 (echarts)组件的详细内容。