vue-echarts饼图/柱状图点击事件

2023-10-26

在实际的项目开发中,我们通常会用到Echarts来对数据进行展示,有时候需要用到Echarts的点击事件,增加系统的交互性,一般是点击Echarts图像的具体项来跳转路由并携带参数,当然也可以根据具体需求来做其他的业务逻辑。下面就Echarts图表的点击事件进行实现,文章省略了Echarts图的html代码,构建过程,option,适用的表格有饼图、柱状图、折线图。如果在实现过程中,遇到困难或者有更好的建议,欢迎留言。

饼图点击事件

mounted() {
     //饼状图点击事件
     myChart.on('click', (param) =>{  //这里使用箭头函数代替function,this指向VueComponent
        let index;
        //当前扇区的dataIndex
        index = param.dataIndex; 
        //自己的操作,这里是点击跳转路由,并携带参数
        if (index !== undefined) {
          //myChartYData为饼图数据
          if (this.myChartYData[index].value!=0){
            /*跳转路由*/
            this.$router.push({
              path: '/project/list',
              query: {
                status: index+1,
              }
            })
          }
      }
    });
}

柱状图点击事件(折线图也可使用)

我们可以通过 myChart.getZr().on('click', ...) 来检测整个图表的点击事件,并且通过回调函数的参数来判断点击的区域,

参数params如下:

 

  • ​ 通过参数对象中的target属性和topTarget属性进行定位位置
  • ​ 当点击某个图形元素:target对象中有dataIndex,seriesIndex属性,即可知道点击那个图形元素。
  • ​ 当点击grid内的空白位置:target对象为undefined,topTarget不为undefined。
  • ​ 当点击坐标轴标签:topTarget对象的anid值为"label_xx", xx为坐标值。
  • ​ 当点击坐标轴外的空白位置:target对象和topTarget多为undefined。
    //柱状图点击事件
	myChart.getZr().on('click', (params) => {
      //echartsData为柱状图数据
      if (this.echartsData.deviceCode.length > 0) {
        const pointInPixel = [params.offsetX, params.offsetY];
        //点击第几个柱子
        let index;
        if (myChart.containPixel('grid', pointInPixel)) {
          index = myChart.convertFromPixel({seriesIndex: 0}, [params.offsetX, params.offsetY])[0];
        }
        if (index !== undefined) {
          /*事件处理代码书写位置*/
          var deviceMac = this.echartsData.deviceMac[index];
      		/*跳转路由*/
          this.$router.push({
            name: 'Statistics',
            params: {
              mac: deviceMac,
            }
          })
        }
      }
    });

1、使用getZr添加图表的整个canvas区域的点击事件,并获取params携带的信息:

        myChart.getZr().on('click', (params) => {}

2、获取到鼠标点击位置:

const pointInPixel = [params.offsetX, params.offsetY];

3、使用containPixel API判断点击位置是否在显示图形区域,下面的例子过滤了绘制图形的网格外的点击事件,比如X、Y轴lable、空白位置等的点击事件。

if (myChart.containPixel('grid', pointInPixel)) {}

4、使用API convertFromPixel获取点击位置对应的x轴数据的索引值index,我的实现是借助于索引值获取数据,当然可以获取到其它的信息,详细请查看文档。

let index = myChart.convertFromPixel({seriesIndex: 0}, [params.offsetX, params.offsetY])[0];

其实在上一步骤中可以获取到丰富的诸如轴线、索引、ID等信息,可以在自己的事件处理代码中方便的使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue-echarts饼图/柱状图点击事件 的相关文章

随机推荐

  • html制作精美导航栏

    文章目录 一 效果展示 二 实现步骤 1 html 2 css 3 js 一 效果展示 二 实现步骤 1 html 代码如下 示例 div class navcontainer div
  • intellij idea Entity类报错“Cannot resolve table”

    intellij idea 报如下图的错 解决方法如下 1 点击菜单 view gt Tool Windows gt Persistence 2 右击项目 选择Assign Data Source 3 Data Source 选择数据库
  • MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元多输入分类预测

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器 电力系统 信号
  • Linux常识型试题

    http www linuxdiyf com viewarticle php id 202718 一 填空题 1 链接分为 和 2 安装Linux系统对硬盘分区时 必须有两种分区类型 和 3 内核分为进程管理系统 I O管理系统和 等四个子
  • anki插件【Enhance main window】配置

    book symbol cap value null color empty red color empty descendant green color zero false columns absolute true color be3
  • TCP/IP三次握手

    序列号seq 占4个字节 用来标记数据段的顺序 TCP把连接中发送的所有数据字节都编上一个序号 第一个字节的编号由本地随机产生 给字节编上序号后 就给每一个报文段指派一个序号 序列号seq就是这个报文段中的第一个字节的数据编号 确认号ack
  • 三种方法使用FFmpeg截取视频片断

    如何以 3 种简单的方式使用 FFmpeg 剪切视频 提取 修剪 2020 年 10 月 12 日 Krishna Rao Vijayanagar FFmpeg 在本教程中 我们将了解如何使用 FFmpeg 以 3 种不同的方式剪切 修剪
  • 渗透测试工程师的一些面试题2(同样适合一些刚入门的小白看哦~~~!)

    一 信息收集 服务器的相关信息 真实ip 系统类型 版本 开放端口 WAF等 网站指纹识别 包括 cms cdn 证书等 dns记录 whois信息 姓名 备案 邮箱 电话反查 邮箱丢社工库 社工准备等 子域名收集 旁站 C段等 googl
  • Qt5开发从入门到精通——第一篇概述

    欢迎小伙伴的点评 相互学习 互关必回 全天在线 博主 本着开源的精神交流Qt开发的经验 将持续更新续章 为社区贡献博主自身的开源精神 文章目录 一 什么是 Qt 1 1 Qt 的发展 1 2 Qt 版本说明 1 3 Qt5开发环境简介 二
  • 约瑟夫问题(Java环形列表实现)

    package linkedList public class Joseph public static void main String args CircleLinkList cir new CircleLinkList cir add
  • 陆续收集 UE4 常用的宏的用法

    UPROPERTY EditAnywhere 任何地方 UPROPERTY EditDefaultsOnly 只有在类的编辑界面 UPROPERTY EditInstanceOnly 只有在拖拽到场景下类的编辑界面 UClass meta
  • Linux终端界面的字体颜色设置

    目录 说明 PS1 颜色语法 保存设置 说明 在网上找了好多资料都不是很详细 要不就是语法有错误 所以弄了好久才整明白了 写下来方便后面的人学习 本人Linux虚拟机版本为CentOS 6 5其他的版本的可能又细微区别哈 PS1 PS1是L
  • C++ Primer 学习笔记 第八章 IO库

    C 不直接处理输入输出 而是通过一族定义在标准库中的类型来处理IO 这些类型支持从设备读取数据 向设备写入数据的IO操作 设备可以是文件 控制台窗口等 IO库定义了读写内置类型值的操作 此外 一些类 如string 通常也会定义类似的IO操
  • 自动化测试基础

    1 自动化测试定义 自动化测试就是实用软件来控制测试案例的执行 对测试进行自动化的过程就是写一段代码来代替人工测试 可以分为两种方式 代码驱动测试 通过大量的输入参数和对应的返回结果 来验证类 模块 或者库文件的公共接口是否正确 普遍使用测
  • xss-labs前五关 详细

    其它xss文章 以xss labs举例反射型xss注入的方式及基本思路 xss实验并对注入点 注入语句及危害知识总结 other article to be continue 第一关 lt 1 gt 解法 直接在url栏的name 后输入
  • 钻石基础知识介绍

    钻石参数 4C 最重要的钻石的重量也就是克拉数 克拉数有一个克拉溢价 也就是30分 50分 1克拉 1 5克拉 2克拉 2 5克拉 达到这些阈值的时候 价格会成倍增长 因此对于自己戴的买一些低于阈值的钻石更划算 但是如果想要保值还是尽量买高
  • ARPA x 京东数科:隐私计算如何赋能未来金融数据共享

    数据是现代商业与个人的核心价值与重要资产 数据正在重新塑造人类生活的方方面面 IDC Research统计2019年大数据和分析市场的销售收入约为1870亿美元 跨机构 跨行业的数据融合 联合分析和建模的需求日趋增加 但由于数据本身可复制
  • 快手出海求生

    配图来自Canva可画 随着八月接近尾声 众多上市公司的中期成绩单纷纷出炉 这其中就有视频社区B站 游戏直播斗鱼等内容平台的财报 不过 从其披露的财报中可以看出 如今内容平台的发展都不容乐观 而作为 短视频双雄之一 的快手近期交出的答卷中
  • WebSphere之wasprofile.sh使用

    概要文件 profile 6 0版本以后才有profile 目的是将用户数据和was本身的文件分开 这样可以定义多个profile 每个profile相当于一个用户 相当于提供了多用户的支持 profile的命令说明 新建 wasprofi
  • vue-echarts饼图/柱状图点击事件

    在实际的项目开发中 我们通常会用到Echarts来对数据进行展示 有时候需要用到Echarts的点击事件 增加系统的交互性 一般是点击Echarts图像的具体项来跳转路由并携带参数 当然也可以根据具体需求来做其他的业务逻辑 下面就Echar