Vue2版本封装公共echarts的监听方法

#注意 :

因为一个页面有多个图表,所以封装一个公共的js文件,方便后续使用。

适用于Vue2版本,粘贴即用即可。

1、echartsMixin.js文件如下


// echartsMixin.js
import echarts from 'echarts'export default {data() {return {myCharts: []}},mounted() {window.addEventListener('resize', this.handleResize)//监听图表随屏幕的变化而变化},methods: {initChart(ref) {//初始化dom事件const chart = echarts.init(ref)this.myCharts.push(chart)return chart},handleResize() {//循环多个图标domthis.myCharts.forEach(chart => {chart.resize()})}},beforeDestroy() {//页面摧毁前摧毁图表this.myCharts.forEach(chart => {chart.dispose()})}
}

2、其次在使用到的页面去引入此文件(这里不建议全局注册到main.js上)

3、使用方法如下,定义一个方法,供图像dom元素加载完毕调用

  getFirstPageData(objQuery).then(res => {if (res.success) {// 第一个扇形图const firstBingChartObj = {mark: 'evaluation1',color: that.color,dataList: res.data.firstBingChartObj.dataList,total: res.data.firstBingChartObj.total}// 加数据时显示判断this.firstNoDataMark = res.data.firstBingChartObj.dataList.length > 0this.$nextTick(() => {if (this.firstNoDataMark) {that.getFirstBingChart(firstBingChartObj)}})// 第二个扇形图const secondBingChartObj = {mark: 'evaluation2',color: that.color,dataList: res.data.secondBingChartObj.dataList,total: res.data.secondBingChartObj.total}this.secondNoDataMark = res.data.secondBingChartObj.dataList.length > 0 //这里为了判断是否有图像数据,没数据显示没数据公共组件,,下面会提到哈this.$nextTick(() => {if (this.secondNoDataMark) {that.getSecondBingChart(secondBingChartObj)}})this.watchEcharts()// dom元素初始化后 调用监听echarts图表变化}})

4、图表无数据时候显示无数据组件。(注意:这里要用v-if进行判断需要使用nexTick,使用v-show会导致图表变形哈)

//html  <div v-if="firstNoDataMark" id="evaluation1" ref="evaluation1" style="width: 100%; height: 320px" /><no-data v-else text="当前年度暂无数据" :custom-style-obj="{height:'320px'}" />

5、no-data组件

<template><div class="no-data-show" :style="{height:customStyleObj.height}"><div class="nodata-card"><div class="no-data-icon"><img :src="iconUrl" width="120" height="120"></div><div class="no-data-title">{{ text }}</div></div></div>
</template><script>
export default {name: 'NoData',props: {value: {type: Number,default: null},// 自定义样式customStyleObj: {type: Object,default: function() {return {minHeight: '184px',height: '200px'}}},// text显示数据text: {type: String,default: '本月度暂无数据'},// 传递图标iconUrl: {type: String,default: 'http://10.81.16.14:9900/publishattachment/2024/03/14/e190cace7eb74e728172073c0499926f.png'}},data: function() {return {}},watch: {value: {handler: function(newVal, oldVa) {},immediate: true,deep: true}},created() {},methods: {}
}
</script><style scoped lang="scss">
/*无数据展示*/
@import "@/views/scsscomponents/no-data-show.scss";
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python实战之PyQt5桌面软件

一. 演示效果 二. 准备工作 1. 使用pip 下载所需包 pyqt5 2. 下载可视化UI工具 QT Designer 链接&#xff1a;https://pan.baidu.com/s/1ic4S3ocEF90Y4L1GqYHPPA?pwdywct 提取码&#xff1a;ywct 3. 可视化UI工具汉化 把上面的链接打开, 里面有安装和汉化包, 前面的路径还要看…

首页HF粗排模型优化

[work rus_env]$ pwd /home/work/xx/du-rus/offline-tools/du_rus/rus_env [work rus_env]$ python buildenv_rus.py 5a0e771e938a486df3b8b3e1cde1a39c2006882d 5f3241963a3e39a8e1eae05d7075fc5b9278a7c7 打开日志级别 [workxx conf]$ vim /home/work/xx/du-rus/du_rus_…

【智能家居项目】RT-Thread版本——DHT11获取温湿度 | MQTT上传到服务器 | 服务器控制外设

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《智能家居项目》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 这篇文章中&#xff0c;本喵将使用RT-Thread Studio来实现这个智能家居的项目&#xff0c;最终…

Xline command 去重机制(二)—— RIFL 实现

在上一篇文章Xline command 去重机制&#xff08;一&#xff09;—— RIFL 介绍中&#xff0c;我们从 command 去重机制的契机开始&#xff0c;介绍了去重的必要性以及目前 Xline 的去重机制存在的一些问题&#xff0c;同时讲解了 RIFL(Reusable Infrastructure for Linearizab…

华清远见STM32U5开发板助力2024嵌入式大赛ST赛道智能可穿戴设备及IOT选题项目开发

第七届&#xff08;2024&#xff09;全国大学生嵌入式芯片与系统设计竞赛&#xff08;以下简称“大赛”&#xff09;已经拉开帷幕&#xff0c;大赛的报名热潮正席卷而来&#xff0c;高校电子电气类相关专业&#xff08;电子、信息、计算机、自动化、电气、仪科等&#xff09;全…

大话设计模式之策略模式

策略模式是一种行为设计模式&#xff0c;它允许在运行时选择算法的行为。这种模式定义了一族算法&#xff0c;将每个算法都封装起来&#xff0c;并且使它们之间可以互相替换。 在策略模式中&#xff0c;一个类的行为或其算法可以在运行时改变。这种模式包含以下角色&#xff1…

零拷贝技术探讨

零拷贝技术是一种用于提高数据传输效率的网络技术&#xff0c;主要应用于网络服务器中。它通过减少数据在操作系统内核空间和用户空间之间的复制次数来提高性能。 在传统的网络服务器中&#xff0c;当客户端向服务器发送请求时&#xff0c;服务器会从磁盘读取数据&#xff0c;…

武汉星起航:借亚马逊平台优势助力商家精准营销

在全球经济一体化的背景下&#xff0c;跨境电商已成为推动国际贸易发展的重要引擎。作为跨境电商领域的佼佼者&#xff0c;亚马逊平台以其全球化销售渠道和强大的数据分析能力&#xff0c;为商家提供了前所未有的商机。武汉星起航电子商务有限公司深知亚马逊平台的优势&#xf…

2024最新Guitar Pro 8.1中文版永久许可证激活

Guitar Pro是一款非常受欢迎的音乐制作软件&#xff0c;它可以帮助用户创建和编辑各种音乐曲谱。从其诞生以来就送专门为了编写吉他谱而研发迭代的。 尽管这款产品可能已经成为全球最受欢迎的吉他打谱软件&#xff0c;在编写吉他六线谱和乐队总谱中始终处于行业领先地位&#x…

MySQK索引

1.认识索引 索引&#xff1a;提高数据库的性能&#xff0c;索引是物美价廉的东西了。不用加内存&#xff0c;不用改程序&#xff0c;不用调sql&#xff0c;只要执行正确的 create index &#xff0c;查询速度就可能提高成百上千倍。但是天下没有免费的午餐&#xff0c;查询速度…

Aurora IP的Framing帧接口和Streaming流接口

本文介绍Aurora IP配置时要选择的接口类型以及两种接口类型之前的区别。 Aurora IP接口有两种模式&#xff1a;Framing帧接口&#xff0c;Streaming流接口 目前一直在用的都是Framing帧接口。 Framing帧接口和Streaming流接口的主要区别是什么呢&#xff1f; 顾名思义&#x…

气象预测新篇章:Python人工智能的变革力量

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;在数据处理、科学计算、数学建模、数据挖掘和数据可视化方面具备优异的性能&#xff0c;这些优势使得Python在气象、海洋、地理、气候、水文和生态等地学领域的科研和工程项目中得到广泛应用。可以…