微信小程序基础教程之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 相关文章推荐
ExtJs中简单的登录界面制作方法
Aug 19 Javascript
JavaScript学习笔记之JS对象
Jan 22 Javascript
JavaScript中的Function函数
Aug 27 Javascript
JQuery EasyUI的使用
Feb 24 Javascript
jquery模拟多级复选框效果的简单实例
Jun 08 Javascript
原生js实现键盘控制div移动且解决停顿问题
Dec 05 Javascript
ES6新特性一: let和const命令详解
Apr 20 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
Jul 28 Javascript
Angular 4中如何显示内容的CSS样式示例代码
Nov 06 Javascript
vue-cli扩展多模块打包的示例代码
Apr 09 Javascript
基于layui轮播图满屏是高度自适应的解决方法
Sep 16 Javascript
vue各种事件监听实例(小结)
Jun 24 Javascript
vue实现水波涟漪效果的点击反馈指令
vue 实现上传组件
May 31 #Vue.js
vue基于Teleport实现Modal组件
Vue+Element UI实现概要小弹窗的全过程
vue-cli4.5.x快速搭建项目
Vue CLI中模式与环境变量的深入详解
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
You might like
珊瑚虫IP库浅析
2007/02/15 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
jquery select操作的日期联动实现代码
2009/12/06 Javascript
10个实用的脚本代码工具
2010/05/04 Javascript
jQuery技巧总结
2011/01/01 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
2017/01/04 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
vue实现底部菜单功能
2018/07/24 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
2019/04/30 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
Python assert语句的简单使用示例
2019/07/28 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
俄罗斯香水在线商店:AromaCode
2019/12/04 全球购物
Solaris操作系统的线程机制
2012/12/23 面试题
2014年圣诞节促销方案
2014/03/14 职场文书
志愿者活动总结范文
2014/04/26 职场文书
辞职信格式模板
2015/02/27 职场文书
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python