因为工作中需要,需要在微信小程序端中复刻web端的一些功能,在图表这一块,web端使用的是Echarts组件,经过调研发现,Echarts同样是支持微信小程序的,这里进行一个简单的记录。
微信开发者平台自行下载
下载地址:https://github.com/ecomfe/echarts-for-weixin
我们主要用的就是其中的ec-canvas
文件夹
Ps:官方的README文档其实已经写的非常详细了,但是很有可能大家会发现自己的这里没有任何图片显示出来,别着急,往下看。
ec-canvas
复制到小程序的根目录
在Pages
文件夹下文件夹echarts
,然后在echarts
文件夹上右击,新建pages
在echarts.json
文件中,将文件夹引入
注意其中的路径要和自己的一致
在echarts.wxml
文件中,写入以下内容:
<view class="container">
<ec-canvas id="mychart-dom-bar" canvas-id="mychart-bar" ec="{{ ec }}">ec-canvas>
view>
在echarts.js
文件中,写入以下内容:
import * as echarts from '../../ec-canvas/echarts';
function initChart(canvas, width, height) {
const chart = echarts.init(canvas, null, {
width: width,
height: height
});
canvas.setChart(chart);
var option = {
title: {
text: '某站点用户访问来源',
subtext: '纯属虚构',
left: 'center'
},
tooltip: {
trigger: 'item'
},
legend: {
orient: 'vertical',
left: 'left',
},
series: [
{
name: '访问来源',
type: 'pie',
radius: '50%',
data: [
{value: 1048, name: '搜索引擎'},
{value: 735, name: '直接访问'},
{value: 580, name: '邮件营销'},
{value: 484, name: '联盟广告'},
{value: 300, name: '视频广告'}
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
chart.setOption(option);
return chart;
}
Page({
data: {
ec: {
onInit: initChart
}
}
});
保存文件,然后会发现没有任何反映,也就是我之前提到的问题,这并不是说明我们的代码有问题。
只是我们的wxss样式问题,在微信小程序默认的app.wxss文件汇总,已经包含了对.container
的样式规定
但是图表组件我们也是需要设置一定的宽高的,因此我们在echarts.wxss
文件中,需要写入以下内容将官方的app.wxss
覆盖掉。
/* pages/echarts/echarts.wxss */
.container{
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
ec-canvas{
width: 100%;
height: 300px;
}
保存,页面刷新,图表能够正常显示,问题解决
大功告成,后面只需要对js文件进行修改,即可根据自己的需求定制图标,另外其中的数据也可以是实时动态的。