微信小程序基礎(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)文章
詳解JavaScript創(chuàng)建數(shù)組的三種方式
這篇文章主要介紹了JavaScript創(chuàng)建數(shù)組的三種方式:直接聲明,?以對(duì)象方式創(chuàng)建數(shù)組和使用?Array.from()?方法創(chuàng)建,并通過(guò)代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-06-06JavaScript瀑布流布局實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了JavaScript瀑布流布局的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05CountUp.js數(shù)字滾動(dòng)插件使用方法詳解
這篇文章主要為大家詳細(xì)介紹了CountUp.js數(shù)字滾動(dòng)插件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10JavaScript實(shí)現(xiàn)兩個(gè)select下拉框選項(xiàng)左移右移
這篇文章主要介紹了JavaScript實(shí)現(xiàn)兩個(gè)select下拉框選項(xiàng)左移右移功能,js實(shí)現(xiàn)下拉框元素互相移動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03多個(gè)js毫秒倒計(jì)時(shí)同時(shí)進(jìn)行效果
這篇文章主要以實(shí)例的方式講解多個(gè)js毫秒倒計(jì)時(shí)同時(shí)進(jìn)行效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01關(guān)于promise和async用法以及區(qū)別詳解
Promise是一個(gè)構(gòu)造函數(shù),我們就可以new Promise()得到一個(gè) Promise的實(shí)例,下面這篇文章主要給大家介紹了關(guān)于promise和async用法以及區(qū)別的相關(guān)資料,需要的朋友可以參考下2023-01-01bootstrap daterangepicker漢化以及擴(kuò)展功能
這篇文章主要為大家詳細(xì) 介紹了bootstrap daterangepicker漢化以及擴(kuò)展功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06使用taro開(kāi)發(fā)微信小程序遇到的坑總結(jié)
Taro,京東凹凸實(shí)驗(yàn)室出品的適配多端的一個(gè)框架,這篇文章主要介紹了使用taro開(kāi)發(fā)微信小程序遇到的坑總結(jié),需要的朋友可以參考下2019-04-04Bootstrap每天必學(xué)之彈出框(Popover)插件
Bootstrap每天必學(xué)之彈出框(Popover)插件,彈出框的內(nèi)容完全可使用 Bootstrap 數(shù)據(jù) API(Bootstrap Data API)來(lái)填充,如何實(shí)現(xiàn)請(qǐng)參考本文2016-04-04