uniapp 引入插件市场的echart插件,使用指南!+踩坑记录!!血泪史!!!

news2024/11/15 23:21:42

此文章适用于微信小程序中,在uniapp做的小程序中使用echarts

插件地址:echarts-for-wx - DCloud 插件市场

 

 插件网页往下翻有详细的使用步骤,这里简短的贴上几张图片

 

 以下是我 项目中的使用情况,分享给大家:

1.一键导入完插件后,项目根目录的文件夹js_sdk,将其中的uni-ec-canvas文件夹赋值到项目根目录的components中

 

 2.自定义一个组件

<template>
	<view>
		<uni-ec-canvas class="uni-ec-canvas" id="uni-ec-canvas" ref="canvas" canvas-id="mychart-gauge" :ec="ec">
		</uni-ec-canvas>
	</view>
</template>

<script>
	import uniEcCanvas from '@/components/uni-ec-canvas/uni-ec-canvas.vue'
	import * as echarts from '@/components/uni-ec-canvas/echarts'
	let chart = null
	export default {
		components: {
			uniEcCanvas
		},
		props: {
			valueData: {
				type: Number,
				// 定义是否必须传
				required: true,
				// 定义默认值
				default: 0
			}
		},
		mounted() {
			this.$refs.canvas.init(this.initChart)
		},
		data() {
			return {
				ec: {
					//是否懒加载, 将 lazyLoad 设为 true 后,需要手动初始化图表
					lazyLoad: true
				},
			}
		},

		methods: {
			initChart(canvas, width, height, canvasDpr) {
				chart = echarts.init(canvas, null, {
					width: width,
					height: height,
					devicePixelRatio: canvasDpr
				})
				canvas.setChart(chart)

				let option = {
					series: [{
							type: 'gauge',
							center: ['50%', '60%'],
							startAngle: 225,
							endAngle: -45,
							min: 0,
							max: 60,
							splitNumber: 10, //分割的刻度个数
							itemStyle: {
								color: '#4CD289'
							},
							progress: {
								//展示当前进度。
								show: true,
								width: 30,
								roundCap: true //两端是否显示圆形
							},
							pointer: {
								//仪表盘指针
								show: false
							},
							axisLine: {
								//仪表盘轴线相关配置
								// show:false,
								roundCap: true, //两端是否显示圆形
								lineStyle: {
									width: 30
								}
							},
							axisTick: {
								//刻度样式。
								show: false,
								distance: 12, //刻度线与轴线的距离。
								splitNumber: 5, //分隔线之间分割的刻度数
								length: 6, //刻度线长
								lineStyle: {
									width: 2,
									color: '#999'
								}
							},
							splitLine: {
								//分隔线样式。
								show: true,
								distance: 12, //分隔线与轴线的距离。
								length: 6, //分隔线线长
								lineStyle: {
									type: 'dotted',
									width: 3,
									color: '#999'
								}
							},
							axisLabel: {
								//刻度标签。
								show: false,
								distance: -20, //标签与刻度线的距离。
								color: '#999',
								fontSize: 20
							},
							anchor: {
								//表盘中指针的固定点
								show: false
							},
							title: {
								//仪表盘标题
								show: true,
								offsetCenter: [0, '40%'],
								color: '#BCBBCC',
								fontStyle: 'italic',
								fontWeight: 'bold',
								fontSize: 28
							},
							detail: {
								//仪表盘详情,用于显示数据
								show: true,
								valueAnimation: true, //是否开启标签的数字动画
								width: '60%',
								lineHeight: 40,
								borderRadius: 8,
								offsetCenter: ['0', '20%'],
								fontSize: 60,
								fontWeight: 'bolder',
								formatter: '{value}',
								color: 'rgba(76, 210, 137, 1)'
							},
							animation: true, //是否开启动画。
							data: [{
								value: this.valueData,
								name: 'steps'
							}]
						},
						{
							type: 'gauge',
							center: ['50%', '60%'],
							startAngle: 225,
							endAngle: -45,
							min: 0,
							max: 60,
							itemStyle: {
								color: '#4CD289'
							},
							progress: {
								show: true,
								width: 8,
								roundCap: true //两端是否显示圆形
							},
							pointer: {
								show: false
							},
							axisLine: {
								show: false
							},
							axisTick: {
								show: false
							},
							splitLine: {
								show: false
							},
							axisLabel: {
								show: false
							},
							detail: {
								show: false
							},
							data: [{
								value: this.valueData,
								// name: 'steps'
							}]
						}
					]
				};
				chart.setOption(option)
				return chart
			},
		},

	}
</script>
<style>
	.uni-ec-canvas {
		width: 100%;
		height: 500rpx;
		display: block;
		margin-top: 30rpx;
	}
</style>

 3.使用组件

//html
<view>
			<pie-chart :valueData="valueData"></pie-chart>
		</view>


//js
	import pieChart from './components/circleEchat.vue'//这里路径是你自定义组件的放的位置

data() {
			return {
				valueData: 10,
			}

	components: { pieChart }

 效果图:(小demo不要嫌丑hahaha)

  Echarts各式各样的定制化图表
 

Made A Pie 复刻Make A Pie 地址
Echarts社区makeapie 复刻Make A Pie 地址
MCChart 地址
PPChart 地址
ISQQW 地址
chartsdev 复刻Make A Pie 地址

文件太大怎么办?

本项目默认提供的 ECharts 文件是最新版本的包含所有组件文件,为了便于开发,提供的是未压缩的版本。远程调试或预览可以下载 echarts.min.js 压缩版本。或从官网下载压缩版本

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

下载的文件放在 uni-ec-canvas/echarts.js注意一定需要重命名为 echarts.js

下载了自定义最新版本的js文件后,发现样式不能用并且报错 TypeErreor: el.addEventListener is not a function

解决办法:

 还必须要用5.1.2版本的echarts 。因为小程序echarts插件文档 v2.1.1 默认是5.1.2版本。

官网上最新的为5.3.1版本 不匹配,小程序插件太久没更新了吧

解决办法来源于这里

23-4-12 更新------

图表画好了以后,准备下载压缩后的echart.js文件发现就不显示图表了,目前没找到原因,不压缩的echart文件就可以正常运行。

经漫长的找bug过程,发现下载压缩的echarts.js版本5.0.0 到5.2.2版本 我都测试都是可以运行的,其他版本没有测试。

uniapp插件版本1.0.3  想要是用成功,版本的对应很重要, 还有就是如果不报错但还是不显示图表,有可能是css样式高度或宽度没给,上述代码中我给的宽度是百分比,有时候百分比不生效就给定值,就可以解决。如果没有图表生成的话,那就给uni-ec-canvas组件加上:force-use-old-canvas="true"

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/410778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网关和spring cloud网关技术Gateway

文章目录一、网关1.1 网关是什么1.2 API网关的作用二、Spring Cloud Gateway2.1 简介2.2 搭建步骤2.3 路由断言工厂2.3.1 什么是路由断言工厂2.3.2 Spring Cloud Gateway提供的11 种断言工厂2.4 网关过滤器2.4.1 介绍2.4.2 网关过滤器作用2.4.3 过滤器配置2.4.4 全局过滤器Glob…

【STM32学习】模数转换器——ADC

【STM32学习】模数转换器——ADC零、参考一、ADC转换耗时二、转换模式三、对某些寄存器的理解1、ADC_CR22、ADC_SQRX四、库函数注意事项零、参考 STM32固件库&#xff08;标准外设库&#xff09;入门学习 第七章 ADC数模转换&#xff08;一&#xff09; 刘凯&#xff1a;STM32…

flyway:数据库移植框架,再也不用担心历史版本表结构管理问题

0. 引言 在开发周期较长&#xff0c;或者需求变更频繁&#xff0c;涉及多版本发布的项目中&#xff0c;我们常常遇到这样的问题&#xff1a; 改了表结构&#xff0c;开发环境执行了&#xff0c;忘记保存&#xff0c;发测试、生产环境时又要重写一遍DDL多人开发&#xff0c;都…

ChatGPT如何应用在数据治理的具体场景中?

自从ChatGPT爆火以来&#xff0c;技术圈的爆炸新闻是一波接一波&#xff0c;让人目不暇接&#xff0c;突然有了一种“人间一日&#xff0c;AI一年的感觉”。上周就有几条重磅新闻&#xff0c;来跟大家分享一下&#xff1a; New Bing 对所有用户放开&#xff0c;注册即可用周三…

每个企业经营者都应该了解的几个网络安全趋势

每个企业主都应了解的一些网络安全趋势&#xff1a; 1. 对实时数据可见性的需求增加 根据 IBM 发布的调查数据&#xff0c;企业发现并遏制漏洞的平均时间为 277 天。这种漏洞得不到解决的时间越长&#xff0c;泄露的数据就越多。这反过来会对您的业务产生更大的影响。企业需要…

【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

蓝桥杯0基础学习

目录 Split()分隔字符串 StringBuilder用法 反转字符串中的单词 LocalDate用法 LocalDate类具体方法 查询年月日 修改时间 判断日期先后&#xff0c;是否是闰年&#xff0c;月份年份长度 对时间进行加减操作 跑步锻炼 使用LoaclDate解法 没使用LocalDate解法 next()…

Linux学习_设备树理论

Linux学习_设备树总结三种写驱动的方法资源和驱动在同一个文件里资源用 platform_device 指定、驱动在 platform_driver 实现资源用设备树指定驱动在 platform_driver 实现设备树的语法实际使用时&#xff0c;include模板小改常用属性#address-cells、#size-cells、regcompatib…

DBSCAN聚类算法及Python实现

DBSCAN聚类算法 DBSCAN&#xff08;Density-Based Spatial Clustering of Applications with Noise&#xff09;是一种基于密度的聚类算法&#xff0c;可以将数据点分成不同的簇&#xff0c;并且能够识别噪声点&#xff08;不属于任何簇的点&#xff09;。 DBSCAN聚类算法的基…

告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目(实际项目开发的浓缩精华版)

告诉老默我想学Spring Cloud了&#xff08;新手篇&#xff09;&#xff1a;从0到1搭建Spring Cloud项目一、前言二、如何选择版本2.1 SpringCloud 和 Spring Boot 版本选型2.1.1 Spring Cloud 版本与 Spring Boot 版本关系2.1.2 选择具体的合适版本2.2 第三方组件的版本选型三、…

SpringCloud之Eureka原理分析与实战(注册与发现)

目录 1、从本质理解服务治理思想 2、为什么选择Spring Cloud服务治理组件 3、Spring Cloud Eureka服务发现 3.1 Eureka的优势 3.2 Eureka架构组成 3.3 搭建Eureka Server 实战 3.3.1 添加依赖 3.3.2 开启服务注册 3.3.3 添加YML配置 3.3.4 访问服务 3.4 搭建Eureka …

【c语言】指针数组、数组指针

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

打造出ChatGPT的,是怎样一群人?

震惊世界的ChatGPT&#xff0c;要多少人才能开发出来&#xff1f;几百&#xff0c;还是几千&#xff1f; 答案是&#xff1a;87个人。 老实说&#xff0c;刚看到这个数字真是惊到我了&#xff0c;印象里&#xff0c;之前看媒体报道各大巨头人工智能人才储备时&#xff0c;动辄…

学编程应该选择什么操作系统?

今天来聊一个老生常谈的问题&#xff0c;学编程时到底选择什么操作系统&#xff1f;Mac、Windows&#xff0c;还是别的什么。。 作为一个每种操作系统都用过很多年的程序员&#xff0c;我会结合我自己的经历来给大家一些参考和建议。 接下来先分别聊聊每种操作系统的优点和不…

Linux服务器如何查看CPU使用率、内存占用情况

Linux服务器如何查看CPU使用率、内存占用情况 作为Linux运维工程师&#xff0c;系统维护过程以及日常工作中需要我们经常查看CPU使用率、内存使用率、带宽占用&#xff0c;从资源使用的程度分析系统整体的运行情况。 在 Linux 上查看资源使用情况有很多命令可以参考&#xff0c…

【SpringMVC】9—底层原理

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…

基于springboot和ajax的简单项目 02 代码部分实现,xml文件sql语句优化 (中)

上次说到了log/log_list.html的doGetObjects()&#xff0c;其中有doFindPageObjects&#xff08;&#xff09;方法。 找到全部的日志对象&#xff0c;并且输出到div上。这里是后台的代码。 01.pojo对象&#xff0c;这里需要序列化保存。序列化的作用是保存对象到内存缓存中&am…

腾讯38K测试良心分享,熬夜整理10万字详细软件测试面试笔记

国内的互联网面试&#xff0c;恐怕是现存的、最接近科举考试的制度。 这是由于互联网IT行业的求职者太多了&#xff0c;如果考察的是清一溜的算法题和设计题&#xff0c;那么会要求面试官有极高的技术水平&#xff0c;还要花大量的时间成本和精力。 所以&#xff0c;八股文面…

普通人如何使用ChatGPT接单挣钱-第一弹

嘿&#xff0c;我是灵牧&#xff0c;今天这一期给大家带来的是普通人如何使用chatGPT挣钱的第一期 第一弹&#xff1a;通过GPT写一个Tkinter数独案例赚取&#xffe5;50 事情原委&#xff1a; 今天在接单群里看到一个Tkinter写数独的需求案例&#xff0c;想要加一个独立的弹…

Golang每日一练(leetDay0031)

目录 91. 解码方法 Decode Ways &#x1f31f;&#x1f31f; 92. 反转链表 II Reverse Linked List II &#x1f31f;&#x1f31f; 93. 复原 IP 地址 Restore IP Addresses &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练…