微信小程序基础教程之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静态作用域的功能。
Dec 25 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
Jul 04 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
Oct 23 Javascript
js用Date对象的setDate()函数对日期进行加减操作
Sep 18 Javascript
JS小游戏之象棋暗棋源码详解
Sep 25 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
May 31 Javascript
JavaScript制作简易计算器(不用eval)
Feb 05 Javascript
seajs中模块依赖的加载处理实例分析
Oct 10 Javascript
jQuery实现图片下载代码
Jul 18 jQuery
Node.js API详解之 net模块实例分析
May 18 Javascript
vue过滤器实现日期格式化的案例分析
Jul 02 Javascript
JavaScript 监听组合按键思路及代码实现
Jul 28 Javascript
vue实现水波涟漪效果的点击反馈指令
vue 实现上传组件
May 31 #Vue.js
vue基于Teleport实现Modal组件
Vue+Element UI实现概要小弹窗的全过程
vue-cli4.5.x快速搭建项目
Vue CLI中模式与环境变量的深入详解
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
You might like
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
PHP验证码类ValidateCode解析
2017/01/07 PHP
php 浮点数比较方法详解
2017/05/05 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
PHP中cookie知识点学习
2018/05/06 PHP
JS 文件传参及处理技巧分析
2010/05/13 Javascript
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
2011/04/06 Javascript
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
jquery禁止回车触发表单提交
2014/12/12 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
vue 实现走马灯效果
2019/10/28 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
JS实现简易图片自动轮播
2020/10/16 Javascript
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
Python异常处理例题整理
2019/07/07 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
美国第一香水网站:Perfume.com
2017/01/23 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
考试作弊检讨书大全
2014/02/18 职场文书
我们的节日清明节活动方案
2014/03/05 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
2014年公务员工作总结
2014/11/18 职场文书
小学语文教师研修日志
2015/11/13 职场文书