pHp封装成vue,vue.js将echarts封装为组件一键使用

本文介绍了如何在Vue.js项目中对ECharts进行二次封装,以简化使用流程。通过创建一个基于数据驱动的图表组件,实现了图表类型的动态切换,包括LineAndBar、LineOrBar和Pie,并提供了详细的调用示例和代码实现。该组件在后台管理类网站的开发中可提高数据可视化效率。
摘要由CSDN通过智能技术生成

做项目的时候为了让数据展示的更加直观,总会用到图表相关的控件,而说到图表控件第一时间当然想到ECharts这个开源项目,而它不像iview、element-ui这些组件使用起来那么便捷,需要绕一个小弯,为了图方便于是对ECharts进行了一层封装。

Echarts 、 Remodal和Pikaday是我们在开发后台管理类网站时常用的三个第三方组件,本文主要给大家介绍了关于vue.js将echarts封装为组件一键使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

控件演示

8919b26aba1066924331a991816e3ff3.gif

控件使用

概要基于echarts的二次封装

由数据驱动

控件源码见src/components/charts

文档

props属性说明类型_id图表唯一标识,当id重复将会报错String

_titleText图表标题String

_xTextx轴描述String

_yTexty轴描述String

_chartData图表数据Array

_type图表类型,提供三种(LineAndBar/LineOrBar/Pie)

调用示例

:_id="'testCharts'"

:_titleText="'访问量统计'"

:_xText="'类别'"

:_yText="'总访问量'"

:_chartData="chartData"

:_type="'Pie'">

//测试数据样例 [["类别1",10],["类别2",20]]

实现方式

创建一个待渲染的dom

绘制函数

function drawPie(chartData,id,titleText,xText,yText) {

var chart = echarts.init(document.getElementById(id))

var xAxisData = chartData.map(function (item) {return item[0]})

var pieData = []

chartData.forEach((v,i)=>{

pieData.push({

name:v[0],

value:v[1]

})

})

chart.setOption({

title : {

text: titleText,

subtext: '',

x:'center'

},

tooltip : {

trigger: 'item',

formatter: "{a}
{b} : {c} ({d}%)"

},

legend: {

orient: 'vertical',

left: 'left',

data: xAxisData

},

series : [

{

name: xText,

type: 'pie',

radius : '55%',

center: ['50%', '60%'],

data:pieData,

itemStyle: {

emphasis: {

shadowBlur: 10,

shadowOffsetX: 0,

shadowColor: 'rgba(0, 0, 0, 0.5)'

}

}

}

]

})

}

挂载结束、数据源改变时重绘

watch:{

_chartData(val){

switch (this._type){

case "LineAndBar":

drawLineAndBar(val,this._id,this._titleText,this._xText,this._yText);

break

case "LineOrBar":

drawLineOrBar(val,this._id,this._titleText,this._xText,this._yText);

break

case "Pie":

drawPie(val,this._id,this._titleText,this._xText,this._yText);

break

default:

drawLineAndBar(val,this._id,this._titleText,this._xText,this._yText);

break

}

}

},

mounted() {

switch (this._type){

case "LineAndBar":

drawLineAndBar(this._chartData,this._id,this._titleText,this._xText,this._yText);

break

case "LineOrBar":

drawLineOrBar(this._chartData,this._id,this._titleText,this._xText,this._yText);

break

case "Pie":

drawPie(this._chartData,this._id,this._titleText,this._xText,this._yText);

break

default:

drawLineAndBar(this._chartData,this._id,this._titleText,this._xText,this._yText);

break

}

}

相关推荐:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值