更新记录

0.0.1(2022-04-25)

初版


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
× × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

在uni-app中使用 echarts

开发者可以通过熟悉的 ECharts 配置方式,快速开发图表,满足各种可视化需求。

创建图表

<view class="container">
    <echarts ref="echarts" :option="option" canvasId="echarts"></echarts>
</view>
export default {
    data() {
        return {
            option: {}
        }
    },
    onReady() {
        this.option = {
            backgroundColor: "#ffffff",
            series: [{
                label: {
                    normal: {
                        fontSize: 14
                    }
                },
                type: 'pie',
                center: ['50%', '50%'],
                radius: ['0%', '40%'],
                data: [{
                    value: 55,
                    name: '北京'
                }, {
                    value: 20,
                    name: '武汉'
                }, {
                    value: 10,
                    name: '杭州'
                }, {
                    value: 20,
                    name: '广州'
                }, {
                    value: 38,
                    name: '上海'
                }]
            }]
        };
    }
}

这对于所有 ECharts 图表都是通用的,用户只需要修改上面 option 的内容,即可改变图表。option 的使用方法参见 ECharts 配置项文档。对于不熟悉 ECharts 的用户,可以参见 5 分钟上手 ECharts 教程。

如何在一个页面中加载多个图表?

canvasId 设置为不同

如何保存为图片?

// 先保存图片到临时的本地文件,然后存入系统相册
this.$refs['echarts'].canvasToTempFilePath({
    success: (res) => {
        // #ifdef H5
        console.log(res.tempFilePath)
        return
        // #endif
        // 存入系统相册
        uni.saveImageToPhotosAlbum({
            filePath: res.tempFilePath || '',
            success: res => {
                console.log("success", res)
            },
            fail: res => {
                console.log("fail", res)
            }
        })
    },
    fail: (res) => console.log(res)
});

文件太大怎么办?

发布时,如果对文件大小要求更高,可以在 ECharts 在线定制网页下载仅包含必要组件的包,并且选择压缩。

此外,还可考虑使用微信小程序的分包策略和分包异步加载

{
    "path": "pages/tabbar/index",
    "style": {
        "navigationBarTitleText": "首页",
        "usingComponents": {
            "echarts": "/pages/common-a/components/echarts/echarts"
        },
        "componentPlaceholder": {
            "echarts": "view"
        }
    }
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问