星云erp-手机版-echart兼容小程序方案

本文基于移动版 配套 星云erp-手机版

众多拿到源码的同学反映以下问题

问题 

首页的曲线图标 在H5下可用,但发布为微信小程序后空白

解决方法:

步骤一:复现问题

原来是 小程序下通过 $refs获取不了 canvas 组件对象。

(经查阅资料后发现 小程序下 ref方式获取组件对象需要自定义组件,如果是uniapp内置组件会出现 这种情况)

到这里问题点已经定位好了,解决的思路也是出来了

步骤二:自定义echart 显示组件

如果自己自定义组件很麻烦,经过扫网最好锁定了 lime-echart: 百度图表 echarts,uniapp、taro 使用 echarts 图表,全面兼容各平台小程序、H5、APP、Nvue (gitee.com)

于是决定拿现成的。

把以上两个文件夹下载下来,放到 移动版 对应目录中

步骤三、引用组件,渲染数据
  1、 把echart引入项目中
import * as echarts from "@/static/echarts.min.js"
 2、把组定义组件引入首页中
	import LEchart from '@/components/l-echart/l-echart.vue';
<LEchart style="position: relative;" ref="chartLine"  @finished="loadData"></LEchart>
3、实现loadData方法,获取数据和渲染曲线图
	loadData() {
				orderChart()
					.then((res) => {
						this.formData = res.data;
						this.initChart();
					});
			},



			async initChart() {

				// 获取 canvas 元素对于 H5 环境的写法
				// const chartDom = document.getElementById('echartContainer');
				// 初始化 ECharts 实例
				//this.chartInstance = echarts.init(chartDom);

				 const chart = await this.$refs.chartLine.init(echarts);

				// 设置图表配置项
				const option = {
					title: {
						text: '',
					},
					tooltip: {},
					legend: {
						data: [],
					},
					xAxis: {
						data: [],
					},
					yAxis: {},
					series: [],
				};

				if (this.formData) {
					option.legend.data.push("今天订单");
					option.legend.data.push("今日退单");
					option.legend.data.push("本月订单");
					option.legend.data.push("本月退单");

					this.initSeriesData(this.formData.today.order.charts, "今天订单", option);
					this.initSeriesData(this.formData.today.returned.charts, "今日退单", option);
					this.initSeriesData(this.formData.sameMonth.order.charts, "本月订单", option);
					this.initSeriesData(this.formData.sameMonth.returned.charts, "本月退单", option);
				}

				chart.setOption(option);


			},

			initSeriesData(charts, name, option) {

				let seriedata = [];
				let xAxisData = [];
				let seriesdataUnitData = {
					name: name,
					type: 'line'
				};
				for (let item of charts) {
					seriedata.push(item.totalAmount)
					xAxisData.push(item.createDate);
				}
				this.$set(option.xAxis, "data", xAxisData);
				this.$set(seriesdataUnitData, "data", seriedata);
				option.series.push(seriesdataUnitData);
			},

			beforeDestroy() {
				// 销毁图表实例以避免内存泄漏
				if (this.chartInstance) {
					this.chartInstance.dispose();
					this.chartInstance = null;
				}
			},
4、重新运行到小程序(恭喜问题解决了)

### 项目介绍 星云ERP基于SpringBoot框架,为中小企业提供完全开源、永久免费、用户体验好的进销存ERP系统,解决开店难、管理难、数据统计难的问题。星云ERP主要包括基础信息管理、商品中心、采购管理、销售管理、零售管理、库存管理、盘点管理、结算管理等,各业务模块均支持参数配置,满足实际遇到的各种业务场景。丰富的报表模块支持用户做各项数据分析。同时支持对部门、岗位、角色、用户、权限等进行精细化管理。最终,达到业务线上化、透明化、简易化管理的目标,实现物流、资金流、信息流的一体化管控。 #### 单体架构 集成常用的SpringBoot、MybatisPlus等框架,更利于上手使用或二次开发。 #### 关于商业使用的说明 项目使用Apache 2.0 License,编写的代码无任何闭源情况,均可免费使用。我们对商业使用行为没有限制,只需要遵循Apache2.0 License即可。 ### 演示环境地址 星云ERP平台地址:http://erp.lframework.com <a href="http://erp.lframework.com" target="_blank"> 点此进入</a> ### 底层框架源码 底层框架源码:https://gitee.com/lframework/jugg <a href="https://gitee.com/lframework/jugg" target="_blank"> 点此进入</a> ### 前端项目源码 前端项目源码:https://gitee.com/lframework/xingyun-front <a href="https://gitee.com/lframework/xingyun-front" target="_blank"> 点此进入</a> ### 后端开发的一些约定 * cacheName不使用{} * 主库的名称为master * 创建子线程时使用DefaultCallable或DefaultRunnable包装 ### 关于多租户 application.yml中的tenant.enabled改为true则代表开启多租户模式;false则代表关闭多租户模式。 虽然开启和关闭多租户是由配置文件控制,但是由于两种模式数据库结构不同,不支持正在运行中的系统修改租户模式。 ### 使用说明文档 ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值