微信小程序基础教程之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 Range HTML文档/文字内容选中、库及应用介绍
May 12 Javascript
javascript中的遍历for in 以及with的用法
Dec 22 Javascript
在JavaScript应用中实现延迟加载的方法
Jun 25 Javascript
js点击文本框后才加载验证码实例代码
Oct 20 Javascript
js判断文本框输入的内容是否为数字
Dec 23 Javascript
JavaScript字符集编码与解码详谈
Feb 02 Javascript
JScript实现表格的简单操作
Aug 15 Javascript
Vue实现左右菜单联动实现代码
Aug 12 Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 Javascript
Vue.js组件props数据验证实现详解
Oct 19 Javascript
Vue打包后访问静态资源路径问题
Nov 08 Javascript
Vue全局事件总线你了解吗
Feb 24 Vue.js
vue实现水波涟漪效果的点击反馈指令
vue 实现上传组件
May 31 #Vue.js
vue基于Teleport实现Modal组件
Vue+Element UI实现概要小弹窗的全过程
vue-cli4.5.x快速搭建项目
Vue CLI中模式与环境变量的深入详解
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
You might like
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
js 实现复制到粘贴板的功能代码
2010/05/13 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
javascript loadScript异步加载脚本示例讲解
2013/11/14 Javascript
多个js毫秒倒计时同时进行效果
2016/01/05 Javascript
理解javascript异步编程
2016/01/27 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
node跨域请求方法小结
2017/08/25 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
微信、QQ、微博、Safari中使用js唤起App
2018/01/24 Javascript
vue2.0 computed 计算list循环后累加值的实例
2018/03/07 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
Python中的闭包总结
2014/09/18 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
python matplotlib饼状图参数及用法解析
2019/11/04 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
Python urllib.request对象案例解析
2020/05/11 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
JD Sports瑞典:英国领先的运动时尚商店
2018/01/28 全球购物
单位人事专员介绍信
2014/01/11 职场文书
车辆安全检查制度
2014/01/12 职场文书
园艺师求职信
2014/03/10 职场文书
绿色学校实施方案
2014/03/31 职场文书
实习生评语
2014/04/26 职场文书
运动会200米广播稿
2015/08/19 职场文书
详解redis分布式锁的这些坑
2021/05/19 Redis