微信小程序 echarts 实现延迟加载

相关链接
微信小程序 Echarts(饼图) 延迟动态加载(json)数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import * as echarts from '../../../utils/ec-canvas/echarts'; 
var dataList = [];
Page({
/**
* 页面的初始数据
*/
data: {
//step1 ,获取ec实例
ec: {
lazyLoad: true // 延迟加载
},
}
/**
* 生命周期函数--监听页面加载
*/
onReady: function (options) {
//step2,通过selectComponent 获取自定义组件
this.echartsComponnet = this.selectComponent('#mychart');
//step3
this.getData(); //获取数据
},
getData: function () {
/**
* 此处的操作:
* 获取数据json
*/
wx.request({
url: url, //仅为示例,并非真实的接口地址
data: data,
method: 'POST',
header: { 'content-type': 'application/x-www-form-urlencoded' },
success: (res) => {
dataList = res.data;
//step4,拿到数据之后,才执行初始化图表
this.init_echarts();//初始化图表
}
});
},
//初始化图表
init_echarts: function () {
this.echartsComponnet.init((canvas, width, height) => {
// 初始化图表
const Chart = echarts.init(canvas, null, {
width: width,
height: height
});
//step5,填充数据
Chart.setOption(this.getOption())

// 注意这里一定要返回 chart 实例,否则会影响事件处理等
return Chart;
});
},
//自动配置自己要的数据
getOption: function () {
var option = {
backgroundColor: "#ffffff",
color: ["#37A2DA", "#32C5E9", "#67E0E3", "#91F2DE", "#FFDB5C", "#FF9F7F"],
series: [{
label: {
normal: {
show:true,
formatter: ' {b} n ¥ {c} ',//({ d } %) b=名称 c=数值 d=百分比 n换行
fontSize:10
}
},
labelLine: { show: true } ,
type: 'pie',//饼图实例
center: ['50%', '50%'],
radius: [0, '80%'],
data: that.data.accountList,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 2, 2, 0.3)'
}
}
}]
};
}
return option;
},

})

#小程序/echarts