微信小程序基础教程之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宝典学习笔记
Feb 07 Javascript
JS 面向对象之神奇的prototype
Feb 26 Javascript
js给dropdownlist添加选项的小例子
Mar 04 Javascript
js获得地址栏?问号后参数的方法
Aug 08 Javascript
有关jquery与DOM节点操作方法和属性记录
Apr 15 Javascript
微信小程序实现实时圆形进度条的方法示例
Feb 24 Javascript
VUE中使用Vue-resource完成交互
Jul 21 Javascript
vuex直接赋值的三种方法总结
Sep 16 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
Apr 16 Javascript
layui表单验证select下拉框实现验证的方法
Sep 05 Javascript
利用JS如何获取form表单数据
Dec 19 Javascript
手动实现vue2.0的双向数据绑定原理详解
Feb 06 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
MySQL授权问题总结
2007/05/06 PHP
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
基于vue.js实现购物车
2020/01/15 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
Python线程中对join方法的运用的教程
2015/04/09 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
Java基础面试题
2012/11/02 面试题
3D空间设计学生找工作的自我评价
2013/10/28 职场文书
出纳岗位职责
2013/11/09 职场文书
小学生演讲稿
2014/01/12 职场文书
新年联欢会主持词
2014/03/27 职场文书
赔偿协议书范本
2014/09/12 职场文书
党支部四风整改方案
2014/10/25 职场文书
应届毕业生求职简历自我评价
2015/03/02 职场文书
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python