微信小程序基础教程之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 相关文章推荐
JQuery操作tr和td内容的方法实例
Mar 06 Javascript
jquery操作cookie插件分享
Jan 14 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
Jan 15 Javascript
jquery手风琴特效插件
Feb 04 Javascript
JQuery中clone方法复制节点
May 18 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
Oct 28 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
Dec 04 Javascript
详解Matlab中 sort 函数用法
Mar 20 Javascript
AngularJS 入门教程之HTML DOM实例详解
Jul 28 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
Sep 21 Javascript
es6数值的扩展方法
Mar 11 Javascript
vue编写简单的购物车功能
Jan 08 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 数组遍历顺序理解
2009/09/09 PHP
一步一步学习PHP(3) php 函数
2010/02/15 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
2017/03/14 PHP
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
JS基础之undefined与null的区别分析
2011/08/08 Javascript
js与jQuery 获取父窗、子窗的iframe
2013/12/20 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
NodeJS实现微信公众号关注后自动回复功能
2017/05/31 NodeJs
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
python编写暴力破解FTP密码小工具
2014/11/19 Python
python实现class对象转换成json/字典的方法
2016/03/11 Python
用python写个自动SSH登录远程服务器的小工具(实例)
2017/06/17 Python
Python 实现淘宝秒杀的示例代码
2018/01/02 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
pandas数据集的端到端处理
2019/02/18 Python
python仿抖音表白神器
2019/04/08 Python
Python threading.local代码实例及原理解析
2020/03/16 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
python跨文件使用全局变量的实现
2020/11/17 Python
幼儿如何来做好自我评价
2013/11/05 职场文书
求职自荐信怎么写
2014/03/06 职场文书
小学生感恩演讲稿
2014/04/25 职场文书
我的教育故事演讲稿
2014/05/04 职场文书
个人优缺点总结
2015/02/28 职场文书
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android
vue使用echarts实现折线图
2022/03/21 Vue.js
Nginx HTTP跳转至HTTPS
2022/05/15 Servers
python计算列表元素与乘积详情
2022/08/05 Python