微信小程序基础教程之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 相关文章推荐
JavaScript中Object和Function的关系小结
Sep 26 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
Feb 09 Javascript
js字符串转换成xml对象并使用技巧解读
Apr 18 Javascript
js仿百度贴吧验证码特效实例代码
Jan 16 Javascript
jQuery中选择器小问题(新人难免遇到)
Mar 31 Javascript
推荐25个超炫的jQuery网格插件
Nov 28 Javascript
Juery解决tablesorter中文排序和字符范围的方法
May 06 Javascript
JavaScript在网页中画圆的函数arc使用方法
Nov 13 Javascript
canvas绘图不清晰的解决方案
Feb 28 Javascript
深入理解node.js之path模块
May 03 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
Aug 23 Javascript
VueJs 将接口用webpack代理到本地的方法
Nov 27 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和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
2011/07/03 PHP
php 批量替换html标签的实例代码
2013/11/26 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
js滚动条多种样式,推荐
2007/02/05 Javascript
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
2015/03/04 Javascript
javascript获取本机操作系统类型的方法
2015/08/13 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
微信小程序 textarea 组件详解及简单实例
2017/01/10 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
2020/01/16 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
Python中用于计算对数的log()方法
2015/05/15 Python
老生常谈Python序列化和反序列化
2017/06/28 Python
python 实现12bit灰度图像映射到8bit显示的方法
2019/07/08 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
python编写简单端口扫描器
2019/09/04 Python
python装饰器代替set get方法实例
2019/12/19 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
2020/01/03 Python
python实现udp聊天窗口
2020/03/31 Python
python开发入门——列表生成式
2020/09/03 Python
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
EJB3推出JPA的原因
2013/10/16 面试题
node中使用shell脚本的方法步骤
2021/03/23 Javascript
2014年作风建设心得体会
2014/10/22 职场文书