vue.js如何將echarts封裝為組件一鍵使用詳解
前言
本文主要給大家介紹了關(guān)于vue.js將echarts封裝為組件一鍵使用的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話(huà)不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。
說(shuō)明
做項(xiàng)目的時(shí)候?yàn)榱俗寯?shù)據(jù)展示的更加直觀,總會(huì)用到圖表相關(guān)的控件,而說(shuō)到圖表控件第一時(shí)間當(dāng)然想到ECharts這個(gè)開(kāi)源項(xiàng)目,而它不像iview、element-ui這些組件使用起來(lái)那么便捷,需要繞一個(gè)小彎,為了圖方便于是對(duì)ECharts進(jìn)行了一層封裝
控件演示

控件使用
概要
- 基于echarts的二次封裝
- 由數(shù)據(jù)驅(qū)動(dòng)
- 控件源碼見(jiàn)src/components/charts
文檔
props
| 屬性 | 說(shuō)明 | 類(lèi)型 |
|---|---|---|
| _id | 圖表唯一標(biāo)識(shí),當(dāng)id重復(fù)將會(huì)報(bào)錯(cuò) | String |
| _titleText | 圖表標(biāo)題 | String |
| _xText | x軸描述 | String |
| _yText | y軸描述 | String |
| _chartData | 圖表數(shù)據(jù) | Array |
| _type | 圖表類(lèi)型,提供三種(LineAndBar/LineOrBar/Pie) |
調(diào)用示例
<chart :_id="'testCharts'" :_titleText="'訪(fǎng)問(wèn)量統(tǒng)計(jì)'" :_xText="'類(lèi)別'" :_yText="'總訪(fǎng)問(wèn)量'" :_chartData="chartData" :_type="'Pie'"></chart> //測(cè)試數(shù)據(jù)樣例 [["類(lèi)別1",10],["類(lèi)別2",20]]
實(shí)現(xiàn)方式
創(chuàng)建一個(gè)待渲染的dom
<template> <div :id="_id" class="chart"></div> </template>
繪制函數(shù)
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} <br/> : {c} (n2ac2z7%)"
},
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)'
}
}
}
]
})
}
掛載結(jié)束、數(shù)據(jù)源改變時(shí)重繪
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
}
}
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Vue利用draggable實(shí)現(xiàn)多選拖拽效果
這篇文章主要為大家詳細(xì)介紹了如何利用vue中的draggable插件實(shí)現(xiàn)多選拖拽效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Vue使用vue-pdf實(shí)現(xiàn)PDF文件預(yù)覽
這篇文章主要為大家詳細(xì)介紹了Vue如何使用vue-pdf實(shí)現(xiàn)PDF文件預(yù)覽的功能,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的可以了解一下2023-03-03
element表格數(shù)據(jù)部分模糊的實(shí)現(xiàn)代碼
這篇文章給大家介紹了element表格數(shù)據(jù)模糊的實(shí)現(xiàn)代碼,文中有詳細(xì)的效果展示和實(shí)現(xiàn)代碼供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下2024-01-01
Element-ui tree組件自定義節(jié)點(diǎn)使用方法代碼詳解
本文通過(guò)實(shí)例代碼給大家介紹了Element-ui tree組件自定義節(jié)點(diǎn)使用方法 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09
vue實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)和參數(shù)傳遞的兩種方式
這篇文章主要介紹了vue頁(yè)面跳轉(zhuǎn)和參數(shù)傳遞的兩種方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09

