微信小程序基础教程之echart的使用


Posted in Javascript onJune 01, 2021

前言

先看下最终实现的效果?自己做的小demo

微信小程序基础教程之echart的使用

首先到ECharts官网下载官网地址

根据上面的网址下载代码把ec-canvas文件拷贝下来放到你自己的项目中,

我放的是tool文件夹下面,你们随意引入的时候注意路径就行

微信小程序基础教程之echart的使用

2.使用

然后在你需要用的页面引入,在json中加入,这里要注意路径echart.json

"usingComponents": {
    "tab":"../../component/tabs/tab",
    "ec-canvas":"../../tools/ec-canvas/ec-canvas"
  },

3 渲染

先把简单的布局和样式弄好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 数据
    },
    // 收入支出切换事件
    changePeriodType(e) {
        console.log(e, '<=收入支出切换事件')
        this.setData({
            activeTab: e.detail.params.type
        })
        // 重新查询列表
        this.getEchartData();
    },
    // 查询收入支出数据
    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
    },
    /**
   * 生命周期函数--监听页面加载
   */

  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()
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {
        this.echartComponent = this.selectComponent('#mychart-dom-bar');  
    },

})

采坑tips 当按照教程配置好图没有预想出来时 注意添加下样式

总结

到此这篇关于微信小程序基础教程之echart使用的文章就介绍到这了,更多相关微信小程序echart使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
Aug 02 Javascript
js下拉菜单语言选项简单实现
Sep 23 Javascript
js编写trim()函数及正则表达式的运用
Oct 24 Javascript
js交换排序 冒泡排序算法(Javascript版)
Oct 04 Javascript
JS实现的论坛Ajax打分效果完整实例
Oct 31 Javascript
JS中parseInt()和map()用法分析
Dec 16 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
Jan 21 Javascript
Vue.js 2.5新特性介绍(推荐)
Oct 24 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
Nov 05 Javascript
微信小程序实用代码段(收藏版)
Dec 17 Javascript
ES6中Set和Map用法实例详解
Mar 02 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
Mar 12 Javascript
vue实现水波涟漪效果的点击反馈指令
vue 实现上传组件
May 31 #Vue.js
vue基于Teleport实现Modal组件
Vue+Element UI实现概要小弹窗的全过程
vue-cli4.5.x快速搭建项目
Vue CLI中模式与环境变量的深入详解
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
You might like
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
php 利用array_slice函数获取随机数组或前几条数据
2015/09/30 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
PHP+JavaScript实现无刷新上传图片
2017/02/21 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
javascript Keycode对照表
2009/10/24 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
2016/09/02 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
Python json读写方式和字典相互转化
2020/04/18 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
美国网上订购鲜花:FTD
2016/09/23 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
司机辞职报告范文
2014/01/20 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
2015年信息化建设工作总结
2015/07/23 职场文书
详解Spring事件发布与监听机制
2021/06/30 Java/Android