微信小程序基础教程之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简化Ajax开发 Ajax开发入门
Oct 14 Javascript
Javascript 读取操作Sql中的Xml字段
Oct 09 Javascript
详解JavaScript时间格式化
Dec 23 Javascript
JQuery DIV 动态隐藏和显示的方法
Jun 23 Javascript
js实现表单及时验证功能 用户信息立即验证
Sep 13 Javascript
BootStrap3使用错误记录及解决办法
Dec 22 Javascript
微信小程序实战之轮播图(3)
Apr 17 Javascript
JavaScript模块模式实例详解
Oct 25 Javascript
如何从头实现一个node.js的koa框架
Jun 17 Javascript
javascript自定义日期比较函数用法示例
Jul 22 Javascript
JS控制只能输入数字并且最多允许小数点两位
Nov 24 Javascript
记一次react前端项目打包优化的方法
Mar 30 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判断字符以及字符串的包含方法属性
2008/08/30 PHP
php 结果集的分页实现代码
2009/03/10 PHP
PHP 压缩文件夹的类代码
2009/11/05 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
php采集中国代理服务器网的方法
2015/06/16 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
2018/05/11 PHP
JavaScript 继承使用分析
2011/05/12 Javascript
javascript实现跳转菜单的具体方法
2013/07/05 Javascript
js去除空格的12种实用方法
2013/11/08 Javascript
ext combobox动态加载数据库数据(附前后台)
2014/06/17 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
numba提升python运行速度的实例方法
2021/01/25 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
英国鞋类及配饰零售商:Kurt Geiger
2017/02/04 全球购物
写给保洁员表扬信
2014/01/08 职场文书
我的梦中国梦演讲稿
2014/04/23 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
2016年最美孝心少年事迹材料
2016/02/26 职场文书
导游词之吉林花园山
2019/10/17 职场文书
彻底理解golang中什么是nil
2021/04/29 Golang