在vue中使用echarts以及简单关系图的点击事件

这篇具有很好参考价值的文章主要介绍了在vue中使用echarts以及简单关系图的点击事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在vue中使用echarts以及简单关系图的点击事件

1.安装

在Vue项目中打开终端执行命令:

npm install echarts --save

下载后在package.json文件中可以看到下载的Echarts版本:

在vue中使用echarts以及简单关系图的点击事件

2.导入

在需要使用Echarts图表的页面中导入:

import * as echarts from "echarts";

如果多个地方使用的话可以通过全局引入:

import * as echarts from 'echarts'
// 挂载到Vue实例
Vue.prototype.$echarts = echarts

3.绘制静态图表

在需要用到echarts的地方设置一个有宽高的div盒子

<div>
   <div
   ref="chart"
   style="width:800px;height:600px;margin: auto">
    </div>
</div>

定义echarts关系图的数据

  data() {
   return {
     data: [
       {
         name: "Node 1",
         x: 300,
         y: 300,
       },
       {
         name: "Node 2",
         x: 800,
         y: 300,
       },
       {
         name: "Node 3",
         x: 550,
         y: 100,
       },
       {
         name: "Node 4",
         x: 550,
         y: 500,
       },
     ],
     links: [
       {
         source: 0,
         target: 1,
         symbolSize: [5, 20],
         label: {
           show: true,
         },
         lineStyle: {
           width: 5,
           curveness: 0.2,
         },
       },
       {
         source: "Node 2",
         target: "Node 1",
         label: {
           show: true,
         },
         lineStyle: {
           curveness: 0.2,
         },
       },
       {
         source: "Node 1",
         target: "Node 3",
       },
       {
         source: "Node 2",
         target: "Node 3",
       },
       {
         source: "Node 2",
         target: "Node 4",
       },
       {
         source: "Node 1",
         target: "Node 4",
       },
     ],
     num: 0,  // 点击次数
   };
 },

在methods中定义实例化echarts对象的方法,在mounted生命周期中调用(确保dom元素已经挂载到页面当中)

mounted() {
    this.getEchartData();
  },
  methods: {
    getEchartData() {
      const chart = this.$refs.chart;
       // 初始化echarts
      this.mychart = echarts.init(chart);
      let that = this;
       // option就是需要引进echarts关系图中的代码
      let option = {
        title: {
          text: "Basic Graph",
        },
        tooltip: {},
        animationDurationUpdate: 1500,
        animationEasingUpdate: "quinticInOut",
        series: [
          {
            type: "graph",
            layout: "none",
            symbolSize: 50,
            roam: true,
            label: {
              show: true,
            },
            edgeSymbol: ["circle", "arrow"],
            edgeSymbolSize: [4, 10],
            edgeLabel: {
              fontSize: 20,
            },
            lineStyle: {
              opacity: 0.9,
              width: 2,
              curveness: 0,
            },
            // data: []
            data: that.data,
            // links: [],
            links: that.links,
          },
        ],
      };
       // option数据放入图表中
      this.mychart.setOption(option);
    },
  },

启动项目,在页面中看到如下效果:

在vue中使用echarts以及简单关系图的点击事件

4. 关系图节点点击事件

上面只是展示了静态的关系图,如节点数据太多,各节点关系复杂,就可只展示主要数据,其他可通过点击节点查看各节点关系

需求:新建一个Node5,Node5和Node2有关系,点击Node2展示Node5节点

在上面原本的getEchartData()方法中,添加关系图的节点点击事件

通过事件参数param中的dataType属性值确认点击的对象是关系图节点还是节点之间的边缘,值为node时点击的是节点,值为edge时点击的是边缘

通过param中的dataIndex值确定点击的节点元素

完整代码如下:

getEchartData() {
      const chart = this.$refs.chart;
      // 初始化echarts
      this.mychart = echarts.init(chart);
      let that = this;
      // option就是需要引进echarts关系图中的代码
      let option = {
        title: {
          text: "Basic Graph",
        },
        tooltip: {},
        animationDurationUpdate: 1500,
        animationEasingUpdate: "quinticInOut",
        series: [
          {
            type: "graph",
            layout: "none",
            symbolSize: 50,
            roam: true,
            label: {
              show: true,
            },
            edgeSymbol: ["circle", "arrow"],
            edgeSymbolSize: [4, 10],
            edgeLabel: {
              fontSize: 20,
            },
            lineStyle: {
              opacity: 0.9,
              width: 2,
              curveness: 0,
            },
            // data: []
            data: that.data,
            // links: [],
            links: that.links,
          },
        ],
      };

      // echarts图表的点击事件,可通过param参数确认点击的对象
      that.mychart.on("click", function (param) {
        if (param.dataType == "node") {
            // Node2的 param.dataIndex 值为1
          if (param.dataIndex == 1) {
              // 判断点击的次数,单数显示Node5数据,双数隐藏
            that.num++;
            if (that.num % 2 == 1) {
              that.data.push({
                name: "Node 5",
                x: 900,
                y: 300,
              });
              that.links.push({
                source: "Node 2",
                target: "Node 5",
              });
              that.mychart.setOption(option);
            } else {
              that.data.pop();
              that.links.pop();
              that.mychart.setOption(option);
            }
          }
        } else {
          console.log("点击了边", param);
        }
      });
      // option数据放入图表中
      this.mychart.setOption(option);
    },

最终效果如下:

在vue中使用echarts以及简单关系图的点击事件文章来源地址https://www.toymoban.com/news/detail-480094.html

到了这里,关于在vue中使用echarts以及简单关系图的点击事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue+echarts 实现地图tooltip点击事件;toolTip数据动态渲染;同时鼠标滑过涟漪点时实现地图多区域联动

    最终做出来的效果是这样的: 最近做项目时,遇到这样的需求:         1、toolTip上的数据根据后台动态渲染         2、鼠标移入地图涟漪点时显示tootTip,点击toolTip上的文字,携带动态数据id进行路由跳转         3、鼠标移入地图涟漪点,与涟漪点相关的省份多区域联动

    2024年02月09日
    浏览(55)
  • 【Echarts图例点击事件】自定义Echarts图例legend点击事件(已解决)

    **【写在前面】**这下我又不得不说了,还是客户现场使用时想查询一周的数据,查询时候发现页面居然要等20多秒,这是个人都得崩溃吧,然后就开始排查这块业务代码模块,主要体现在两个方面: A.接口请求时间过长(约8秒),有优化的空间 B.前端一次性调用了四次接口,分

    2023年04月08日
    浏览(83)
  • Vue 之 vue-seamless-scroll 实现简单自动无缝滚动,且添加对应点击事件的简单整理

    目录 Vue 之 vue-seamless-scroll 实现简单自动无缝滚动,且添加对应点击事件的简单整理 一、简单介绍 二、安装和使用 三、效果图 四、vue-seamless-scroll 点击事件实现原理  五、简单实现  六、关键代码 Vue 开发的一些知识整理,方便后期遇到类似的问题,能够及时查阅使用。 本

    2024年02月09日
    浏览(39)
  • echarts用法之点击事件

    echarts用法之点击事件 - 知乎 echarts可以通过点击事件获取每项的值:myChart.on(\\\'click\\\', function (param) { } // myChart为自定义变量:var myChart = echarts.init(document.getElementById(\\\'echartBox\\\')); 可以通过param… https://zhuanlan.zhihu.com/p/588249196

    2024年02月08日
    浏览(62)
  • echarts 点击事件

    饼图点击事件会触发两次 可以通过点击事件 查询当前饼图是裂开还是合上的状态 a.event.target.parent._children是饼图的对象数组 数组中selected为true代表当前为选中状态,反之未选中 echarts的legend事件禁用以及legend显示百分比 自定义fomatter图标消失解决

    2024年02月11日
    浏览(37)
  • echarts的tooltip添加点击事件

    效果如下  代码如下  代码如下

    2024年02月16日
    浏览(35)
  • 使用VUE实现点击事件

    1,使用ps对图片进行切片  2,切片好的图片保存为web所用格式  保存到桌面后进行使用 1.将准备好的图片拖进web文件中进行使用 2.代码部分 a.样式部分(根据图片进行设计大小格式,排序和整体样式.) b.div部分 c.组件部分

    2024年02月05日
    浏览(38)
  • echarts实现渐变折线图并添加点击事件

         折线图点击事件代码:  完整代码如下:

    2024年02月16日
    浏览(54)
  • vue大屏开发系列—使用echart开发省市地图数据,并点击省获取市地图数据

    1. 本文在基础上进行改进,后端使用若依后端 IofTV-Screen: 🔥一个基于 vue、datav、Echart 框架的物联网可视化(大屏展示)模板,提供数据动态刷新渲染、屏幕适应、数据滚动配置,内部图表自由替换、Mixins注入等功能,持续更新.... - Gitee.com 2.效果:将系统大屏显示地图 3. 使

    2024年02月04日
    浏览(39)
  • 小程序中使用echarts的相关配置以及折线图案例(简单易懂)

    第一步:引入echarts文件--此文件需要下载:  下载地址:点击此处进行下载echarts文件 点击 Download ZIP 下载压缩包, 注意:e-canvas是我从完整的文件中剥离出来的有用的,不会影响项目。 第二步:把整个文件放入到小程序文件里。 第三步:在需要的组件中进行正确引入    

    2024年02月07日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包