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

news2025/2/2 0:48:28

#注意 :

因为一个页面有多个图表,所以封装一个公共的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() {//循环多个图标dom
      this.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 > 0
          this.$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.coloradmin.cn/o/1555402.html

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

相关文章

2024年EDM邮件营销群发平台怎么选?

在2024年选择适合的EDM&#xff08;电子邮件直接营销&#xff09;邮件营销群发平台时&#xff0c;需要考虑以下几个关键要素来评估云衔科技以及其他供应商的产品或服务是否符合您的需求&#xff1a; 一、功能完备性&#xff1a; 1、智能自动化&#xff1a;确保云衔科技提供的…

JAVA 并发编程之AQS排队同步框架

AQS 框架简介 AQS&#xff08;Abstract Queued Synchronizer&#xff09;抽象队列同步框架。 比如&#xff0c;ReentrantLock、ReentrantReadWriteLock、Semaphore、CountDownLatch、ThreadPoolExcutor&#xff08;JDK 1.8&#xff09;&#xff0c;这些类的底层原理都是AQS&a…

(十一)图像的罗伯特梯度锐化

环境&#xff1a;Windows10专业版 IDEA2021.2.3 jdk11.0.1 OpenCV-460.jar 系列文章&#xff1a; &#xff08;一&#xff09;PythonGDAL实现BSQ&#xff0c;BIP&#xff0c;BIL格式的相互转换 &#xff08;二&#xff09;BSQ,BIL,BIP存储格式的相互转换算法 &#xff08;三…

AWTK 开源串口屏开发(15) - 通过 MODBUS 访问远程设备数据

在 AWTK 串口屏中&#xff0c;内置了 MODBUS Client 的模型&#xff0c;支持用 MODBUS 协议从远程设备获取数据。不用编写一行代码即可实现对远程设备数据的显示和修改。 1. 功能 不用编写代码&#xff0c;实现对远程设备数据的显示和修改。 2. 创建项目 从模板创建项目&am…

【生活】相机/图像各参数

文章目录 专业模式图片编辑-滤镜实体滤镜软件模拟滤镜 图片编辑-增强曝光亮度对比度饱和度自然饱和度色温色调高光阴影HSL色调分离褪色颗粒锐化晕影清晰度暗角 参考 专业模式 第一个参数WB是白平衡&#xff0c;调节色彩的。 第二个是对焦F&#xff0c;近距离拍摄物体&#xf…

67、yolov8目标检测和旋转目标检测算法部署Atlas 200I DK A2开发板上

基本思想&#xff1a;需求部署yolov8目标检测和旋转目标检测算法部署atlas 200dk 开发板上 一、转换模型 链接: https://pan.baidu.com/s/1hJPX2QvybI4AGgeJKO6QgQ?pwdq2s5 提取码: q2s5 from ultralytics import YOLO# Load a model model YOLO("yolov8s.yaml")…

夏季水域安全管理,AI智能识别算法防溺水视频监控方案

随着夏季的到来&#xff0c;不少人为了一时的痛快凉爽就私自下水游泳&#xff0c;特别是在野外池塘&#xff0c;由于长期无人监管&#xff0c;极易发生人员溺亡事件&#xff0c;如何对池塘水域进行全天候无人值守智能监管&#xff0c;并实现发生人员闯入就立即告警&#xff1f;…

网安播报 | GitHub遭遇严重的供应链“投毒”攻击,影响GG平台

1、GitHub遭遇严重的供应链“投毒”攻击&#xff0c;影响GG平台 多年来&#xff0c;威胁行为者一直在使用多种策略、技术和程序 &#xff08;TTP&#xff09;&#xff0c;包括劫持 GitHub账户、分发恶意 Python 包、使用虚假的 Python 基础设施以及社会工程进行攻击&#xff0c…

Django屏蔽Server响应头信息

一、背景 最近我们被安全部门的漏洞扫描工具扫出了一个服务端口的漏洞。这个服务本身是一个Django启动的web服务&#xff0c;并且除了登录页面&#xff0c;其它页面或者接口都需要进行登录授权才能进行访问。 漏洞扫描信息和提示修复信息如下: 自然这些漏洞如何修复&#xff0c…

物理寻址和功能寻址,服务器不同的应答策略和NRC回复策略

1&#xff1a;功能寻址&#xff0c;服务器应答与NRC回复策略 详细策略上&#xff0c;又分为服务有子功能&#xff0c;和不存在子功能。 1.1功能寻址&#xff0c;存在子功能 存在子功能的情况下&#xff0c;又分为supress postive response &#xff08;即子功能字节的bit7&a…

Ollama+WebUI+AnythingLLM,构建安全可靠的个人/企业知识库

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 ​ 发布在https://it.weoknow.com 我有一名AI助手&#xff0c;名字叫"老六"。为什么呢&#xff1f;是因为它有时候会…

Java运算符-三元运算符,这你必须得会!

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一个人虽可以走的更快&#xff0c;但一群人可以走的更远。 我是一名后…

【edge浏览器无法登录某些网站,以及迅雷插件无法生效的解决办法】

edge浏览器无法登录某些网站&#xff0c;以及迅雷插件无法生效的解决办法 edge浏览器无法登录某些网站&#xff0c;但chrome浏览器可以登录浏览器插件无法使用&#xff0c;比如迅雷如果重装插件重装浏览器重装迅雷后仍然出现问题 edge浏览器无法登录某些网站&#xff0c;但chro…

第十二章:预处理命令

文章目录 第十二章&#xff1a;预处理命令宏定义无参宏定义带参数的宏定义 文件包含处理 第十二章&#xff1a;预处理命令 作用&#xff1a;由编译预处理程序对程序中的特殊命令作出解释&#xff0c;以产生新的源程序对其进行正式编译 C语言与其他语言的重要区别就是可以使用预…

深度学习InputStreamReader类

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

wordpress插件,免费的wordpress插件

WordPress作为世界上最受欢迎的内容管理系统之一&#xff0c;拥有庞大的插件生态系统&#xff0c;为用户提供了丰富的功能扩展。在内容创作和SEO优化方面&#xff0c;有一类特殊的插件是自动生成原创文章并自动发布到WordPress站点的工具。这些插件能够帮助用户节省时间和精力&…

WebAR开发简介

WebAR 开发使企业能够以独特且高度有趣的方式向客户和员工提供信息。 它提供增强现实 (AR) 内容&#xff0c;人们在智能手机上将其视为视觉叠加。 然而&#xff0c;WebAR 可在手机的普通网络浏览器上运行&#xff0c;无需下载任何应用程序。 WebAR 的多种用途包括帮助零售和在…

HEVC的Profile和Level介绍

文章目录 HEVCProfile&#xff08;配置&#xff09;&#xff1a;Level&#xff08;级别&#xff09;&#xff1a;划分标准 HEVC HEVC&#xff08;High Efficiency Video Coding&#xff09;&#xff0c;也称为H.265&#xff0c;是一种视频压缩标准&#xff0c;旨在提供比先前的…

Game Audio Programming

音频编程时游戏开发中最容易忽略&#xff0c;学习资源又是很少的环节。接下来&#xff0c;你将和我探索人耳的工作机制。 what is sound? 我们可以解释电视机是如何通过眼睛传递视觉信息的&#xff0c;但却往往无法对听觉信息做出类似的解释。 对声音的科学研究被称为声学&…

PTA-练习10

目录 主串中查找子串 7-29 删除字符串中的子串 7-30 字符串的冒泡排序 主串中查找子串 查找子串在主穿的中出现的位置 函数strstr&#xff08;s1&#xff0c;s2&#xff09;&#xff0c;返回的是s2在s1中出现的位置指针 #include<stdio.h> #include<stdlib.h> #…