微信小程序基础教程之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进度条插件 Progress Bar小问题解决
Jul 12 Javascript
jQuery简单实现banner图片切换
Jan 02 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
Jan 23 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
Mar 09 Javascript
Bootstrap表单组件教程详解
Apr 26 Javascript
BootStrap Tooltip插件源码解析
Dec 27 Javascript
Vue.js中数据绑定的语法教程
Jun 02 Javascript
基于layui数据表格以及传数据的方式
Aug 19 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
Sep 15 Javascript
JavaScript设计模式之责任链模式实例分析
Jan 16 Javascript
Angular8路由守卫原理和使用方法
Aug 29 Javascript
Vue.js组件通信之自定义事件详解
Oct 19 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工厂模式的好处
2013/06/18 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
2013/08/02 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
Python使用urllib2获取网络资源实例讲解
2013/12/02 Python
Python使用QQ邮箱发送Email的方法实例
2017/02/09 Python
python 性能优化方法小结
2017/03/31 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
NumPy统计函数的实现方法
2020/01/21 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
Python爬虫代理池搭建的方法步骤
2020/09/28 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
利用HTML5+CSS3实现3D转换效果实例详解
2017/05/02 HTML / CSS
希尔顿酒店官方网站:Hilton Hotels
2017/06/01 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
预备党员政审材料
2014/02/04 职场文书
小区物业门卫岗位职责
2014/04/10 职场文书
致共产党员倡议书
2014/04/16 职场文书
运动会横幅标语
2014/06/17 职场文书
初级党校心得体会
2014/09/11 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
爱国之歌(8首)
2019/09/29 职场文书
Python实现视频自动打码的示例代码
2022/04/08 Python
GPU服务器的多用户配置方法
2022/07/07 Servers