WeChat Mini Program Basic Tutorial: Use of Echart

WeChat Mini Program Basic Tutorial: Use of Echart

Preface

Let’s take a look at the final effect first – a small demo I made myself

First go to ECharts official website to download the official website address

Download the code from the URL above and copy the ec-canvas file to your own project.

I put it in the tool folder, just pay attention to the path when you import it

2. Use

Then import it on the page you need and add it to json. Pay attention to the path echart.json

"usingComponents": {
    "tab":"../../component/tabs/tab",
    "ec-canvas":"../../tools/ec-canvas/ec-canvas"
  },

3 Rendering

First, make a simple layout and style 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>

Style echart.wxss

.echart-position {
    position:relative;
    height: 280px;
    overflow:hidden;
  }

echart.js

First introduce

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: 'Expenditures'
            },
            {
                id: 'income',
                text: 'Income'
            },
        ],
        activeTab: 'outcome',
        echartsData: null, //echarts data},
    // Income and expenditure switching event changePeriodType(e) {
        console.log(e, '<=income expenditure switching event')
        this.setData({
            activeTab: e.detail.params.type
        })
        // Requery the list this.getEchartData();
    },
    // Query income and expenditure data 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
    },
    /**
   * Life cycle function--listen for page loading*/

  init_one: function (data) { // Initialize the chart 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()
    },

    /**
     * Life cycle function - listen for the completion of the initial rendering of the page*/
    onReady: function () {
        this.echartComponent = this.selectComponent('#mychart-dom-bar');  
    },

})

Tips for finding pits: If the picture configured according to the tutorial does not turn out as expected, please pay attention to adding the following styles

Summarize

This is the end of this article about the basic tutorial on the use of echart in WeChat mini-programs. For more relevant content on the use of echart in WeChat mini-programs, please search for previous articles on 123WORDPRESS.COM or continue to browse the related articles below. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Example code of using vue-echarts-v3 in vue
  • Detailed explanation of vue using Echarts to draw a bar chart
  • Detailed use of Echarts in vue2 vue3
  • Practice of using echarts for visualization in Django
  • Detailed explanation of the use of native echart and vue-echart

<<:  Records of using ssh commands on Windows 8

>>:  MySQL 8.0.13 installation and configuration method graphic tutorial

Recommend

CSS new feature contain controls page redrawing and rearrangement issues

Before introducing the new CSS property contain, ...

In-depth explanation of environment variables and configuration files in CentOS

Preface The CentOS environment variable configura...

CSS3+Bezier curve to achieve scalable input search box effect

Without further ado, here are the renderings. The...

Manjaro installation CUDA implementation tutorial analysis

At the end of last year, I replaced the opensuse ...

How to monitor global variables in WeChat applet

I recently encountered a problem at work. There i...

Write a shopping mall card coupon using CSS in three steps

Today is 618, and all major shopping malls are ho...

What are the advantages of using B+Tree as an index in MySQL?

Table of contents Why do databases need indexes? ...

MySQL uninstall and install graphic tutorial under Linux

This is my first time writing a blog. I have been...

Vue implements calling PC camera to take photos in real time

Vue calls the PC camera to take pictures in real ...

Detailed explanation of how to find the location of the nginx configuration file

How can you find the location of the configuratio...

webpack -v error solution

background I want to check the webpack version, b...

Interpretation of Vue component registration method

Table of contents Overview 1. Global Registration...