微信小程序基礎(chǔ)教程之echart的使用
前言
先看下最終實(shí)現(xiàn)的效果–自己做的小demo

首先到ECharts官網(wǎng)下載官網(wǎng)地址
根據(jù)上面的網(wǎng)址下載代碼把ec-canvas文件拷貝下來(lái)放到你自己的項(xiàng)目中,
我放的是tool文件夾下面,你們隨意引入的時(shí)候注意路徑就行

2.使用
然后在你需要用的頁(yè)面引入,在json中加入,這里要注意路徑echart.json
"usingComponents": {
"tab":"../../component/tabs/tab",
"ec-canvas":"../../tools/ec-canvas/ec-canvas"
},
3 渲染
先把簡(jiǎn)單的布局和樣式弄好echart.wxml
<view class="echart">
<tab active-tab="{{activeTab}}" period-list="{{periodList}}" bind:changePeriodType='changePeriodType'></tab>
<view class="echart-position">
<ec-canvas id="mychart-dom-bar" canvas-id="mychart-bar"></ec-canvas>
</view>
</view>
樣式echart.wxss
.echart-position {
position:relative;
height: 280px;
overflow:hidden;
}
echart.js
先引入
import * as echarts from '../../tools/ec-canvas/echarts';
function setOption(chart,data){
var option = {
title: {
text: ''
},
tooltip: {
trigger: 'item'
},
legend: {
data: []
},
series: [{
name: '',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: '40',
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
...data
]
}]
};
chart.setOption(option);
return chart;
}
Page({
data: {
periodList: [
{
id: 'outcome',
text: '支出'
},
{
id: 'income',
text: '收入'
},
],
activeTab: 'outcome',
echartsData: null, // echarts 數(shù)據(jù)
},
// 收入支出切換事件
changePeriodType(e) {
console.log(e, '<=收入支出切換事件')
this.setData({
activeTab: e.detail.params.type
})
// 重新查詢列表
this.getEchartData();
},
// 查詢收入支出數(shù)據(jù)
getEchartData() {
wx.cloud.database().collection('spendD').where({
type: this.data.activeTab == 'outcome' ? 0 : 1
}).get().then(res => {
let calcResult = this.handleOriginData(res.data);
this.setData({
echartsData:calcResult
})
this.init_one(calcResult)
})
},
handleOriginData(array) {
let result = [];
let obj = {}
array.forEach(item => {
if (!obj[item.name]) {
obj[item.name] = 0;
}
obj[item.name] += Number(item.amount);
})
for(let key in obj){
let temp = {};
temp['name'] = key;
temp['value']= obj[key];
result.push(temp);
}
console.log(result,'result')
return result
},
/**
* 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載
*/
init_one: function (data) { //初始化圖表
this.echartComponent.init((canvas, width, height) => {
const chart = echarts.init(canvas, null, {
width: width,
height: height
});
setOption(chart,data)
this.chart = chart;
return chart;
});
},
onLoad: function (options) {
this.getEchartData()
},
/**
* 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面初次渲染完成
*/
onReady: function () {
this.echartComponent = this.selectComponent('#mychart-dom-bar');
},
})
采坑tips 當(dāng)按照教程配置好圖沒(méi)有預(yù)想出來(lái)時(shí) 注意添加下樣式
總結(jié)
到此這篇關(guān)于微信小程序基礎(chǔ)教程之echart使用的文章就介紹到這了,更多相關(guān)微信小程序echart使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
jquery庫(kù)文件略龐大用純js替換jquery的方法
jquery庫(kù)文件略龐大,因此在某些情況下就需要用純js替換jquery,需要的朋友可以參考下2014-08-08
js+css簡(jiǎn)單實(shí)現(xiàn)網(wǎng)頁(yè)換膚效果
這篇文章主要介紹了js+css簡(jiǎn)單實(shí)現(xiàn)網(wǎng)頁(yè)換膚效果的方法,涉及JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)遍歷及修改頁(yè)面元素樣式的相關(guān)技巧,需要的朋友可以參考下2015-12-12
讓低版本瀏覽器支持input的placeholder屬性(js方法)
低版本瀏覽器一般都不會(huì)支持input的placeholder屬性,接下來(lái)使用js實(shí)現(xiàn)下,感興趣的朋友可以參考下哈2013-04-04
動(dòng)態(tài)顯示可輸入的字?jǐn)?shù)提示還可以輸入的字?jǐn)?shù)
這篇文章主要介紹了動(dòng)態(tài)顯示可輸入的字?jǐn)?shù)提示還可以輸入的字?jǐn)?shù),需要的朋友可以參考下2014-04-04
javascript:void(0)點(diǎn)擊登錄沒(méi)反應(yīng)怎么解決
這篇文章給大家介紹javascript:void(0)點(diǎn)擊登錄沒(méi)反應(yīng)怎么解決,解決辦法是巧用批處理解決IE不支持JavaScript等問(wèn)題,需要的朋友參考下2015-11-11
手寫TypeScript?時(shí)很多人常犯的幾個(gè)錯(cuò)誤
這篇文章主要介紹了手寫TypeScript?時(shí)很多人常犯的幾個(gè)錯(cuò)誤,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的抽卡,重要的朋友可以參考一下2022-09-09
JavaScript設(shè)計(jì)模式中的觀察者模式
這篇文章主要介紹了JavaScript設(shè)計(jì)模式中的觀察者模式,觀察者設(shè)計(jì)模式適用于監(jiān)聽(tīng)一對(duì)多的操作,例如監(jiān)聽(tīng)對(duì)象屬性的修改等等,觀察者模式能夠降低代碼耦合度,提升可擴(kuò)展性2022-06-06

