【vue2+echarts】关系图谱的使用(节点点击事件、根节点使用图片)

文章介绍了如何选择合适的技术方案来创建类似思维导图和拓扑图的功能,包括jsmind、d3data和echarts。d3data适合复杂需求,而echarts提供了更多灵活性,如设置虚线和处理节点点击事件。此外,还展示了如何在echarts中设置根节点为图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

需要实现一种类似思维导图、拓扑图的功能
主要的需求是:数据中心分布、共三层数据(不同的样式)、数据可以点击跳转、节点使用虚线连接

方案选型

  1. jsmind–pass:思维导图,样式比较简单,属于比较标准的思维导图。
    可参考的文章在vue中使用jsmind组织架构或思维导图,初级的使用。
  2. d3v6(vue+d3v6的一个实践Blog)–pass:

由于 d3data 更加灵活,需要编写较多的自定义代码,所以对于数据可视化需求比较特殊和复杂的场景来说,d3data 更适用。——from chatgpt

  1. relation-group:专门的关系图谱库。
    上面的链接是demo,github链接
    不足:1、不能设置线条为虚线?
    优点:1、实现比较简单。有可视化的配置选项
    例子:关系图谱relation-graph 使用心得:一个比较完整的思维导图的案例。
  2. echarts功能更全,主要是可以直接设置线型为虚线
    最简单的关系图demo&实现
    基础的封装vue-echart组件:非常详细&有完整代码,100分!有vue2和vue3的案例。

节点点击事件

echarts关系图节点点击事件
重点就是获取图表,进行监听。

    this.myChart = echarts.init(document.getElementById('main'));
    this.myChart.on('click', function (param) {
      if (param.dataType == 'node') {
          console.log('点击了节点',param)
      } else {
          console.log('点击了边',param)
      }
    });

echarts力导向图区分鼠标点击事件与拖拽事件(angularjs) 这个是区分了点击和拖拽事件,用来扩展,目前没使用到。

根节点使用图片

methods: {
  setOption: function () {
    let option = {
      // ...
      series: [
        {
          type: "graph",
          // ...
          categories: this.categories,
          data: this.echartsData?.data.map((node) => {
            if (node.category === 0) {
              return {
                ...node,
                // 设置根节点的图片属性
                symbol: `image://${node.book_cover}`,
                symbolSize: [100, 100], // 设置图片大小为 100x100
                label: {
                  show: false, // 不显示标签
                },
              };
            } else {
              return node;
            }
          }),
          // ...
        },
      ],
    };
    // ...
    return option;
  },

参考:vue项目中如何使用echarts引入png图片或者图标(二者均为symbol标识) 这个项目中的效果挺好的。比较详细讲了image://的用法

补充:其他常用配置项说明
Echarts关系图的配置项,一文全解,一目了然。 它里面样式也蛮好看的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值