G6 图可视化引擎基本使用

news2024/11/27 2:19:06

  const data1 = {
    nodes: [
      { id: '1', label: '采购申请', x: 100, y: 200, labelCfg: { style: { fill: 'red' } } },
      { id: '2', label: '采购申请', x: 300, y: 200 },
      { id: '3', label: '采购申请关联表', x: 500, y: 200 },
      { id: '4', label: '军事闭关', x: 700, y: 100 },
      { id: '5', label: '文化闭关', x: 700, y: 300 },
      { id: '6', label: '性别', x: 900, y: 0 },
      { id: '7', label: '省市县', x: 900, y: 200 }
    ],
    edges: [
      { source: '1', target: '2', label: '影响1', style: { endArrow: true } },
      { source: '2', target: '3', label: '影响2', style: { endArrow: true } },
      { source: '3', target: '4', label: '影响22', style: { endArrow: true } },
      { source: '3', target: '5', label: '影响3', style: { endArrow: true } },
      { source: '4', target: '6', label: '影响4', style: { endArrow: true } },
      { source: '4', target: '7', label: '影响5', style: { endArrow: true } },
      {
        source: '7',
        target: '1',
        label: '影响6',
        style: { endArrow: true },
        controlPoints: [
          { x: 1000, y: 200 },
          { x: 1000, y: 400 }, // 设置控制点的坐标,让边从下方经过
          { x: 25, y: 400 }, // 设置第二个控制点的坐标
          { x: 25, y: 200 } // 设置第二个控制点的坐标
        ]
      }
    ]
  }
  graph.value = new G6.Graph({
    container: 'mountNode', // 指定图画布的容器 id,与第 9 行的容器对应
    // 画布宽高
    width: offsetWidth - 50,
    height: offsetHeight - 50,
    defaultEdge: {
      type: 'polyline',
      shape: 'flow-smooth-arrow', // 设置箭头形状
      style: {
        stroke: '#e2e2e2'
      },
      labelCfg: {
        style: {
          fill: '#00287E',
          fontSize: 10
        }
      }
    },
    modes: {
      default: ['zoom-canvas', 'drag-canvas']
    },
    // 默认的节点设置
    defaultNode: {
      type: 'rect',
      size: [100, 40],
      style: {
        fill: '#C6E5FF',
        stroke: '#5B8FF9',
        lineWidth: 2,
        radius: 10
      },
      labelCfg: {
        style: {
          fill: '#00287E',
          fontSize: 12
        }
      }
    }
  })
  // 监听节点点击事件
  graph.value.on('node:click', (event: any) => {
    console.log(event, 'e')
    const node = event.item // 获取点击的节点实例
    const nodeId = node.get('id') // 获取节点的 ID
    const nodeLabel = node.getModel().label // 获取节点的标签内容

    // 在控制台输出节点的信息
    console.log('Clicked Node ID:', nodeId)
    console.log('Clicked Node Label:', nodeLabel)

    // 在这里你可以根据需要处理节点信息,比如弹出详情框等操作
  })

  // 读取数据
  graph.value.data(data1)
  // 渲染图
  graph.value.render()

效果:

 

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

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

相关文章

控价有什么技巧吗

设置一个价格进行管控,简称控价,品牌做控价不光是为了自身利益,也是为了整个行业的健康和发展,同时控价还能保证经销商的利润,以及消费者的利益。如果品牌不控价,不管是新品发售还是常规品的销售&#xff0…

456. 132 模式

456. 132 模式 原题链接:完成情况:解题思路:参考代码:单调栈 原题链接: 456. 132 模式 https://leetcode.cn/problems/132-pattern/description/ 完成情况: 解题思路: /**解题思路&#xff…

内网搭建电影网站的实现和进行公网访问

如何实现内网搭建电影网站并进行公网访问 文章目录 如何实现内网搭建电影网站并进行公网访问前言1. 把软件分别安装到本地电脑上1.1 打开PHPStudy软件,安装一系列电影网站所需的支持软件1.2 设置MacCNS10的运行环境1.3 进入电影网页的安装程序1.4 对运行环境进行检测…

VSCode如何设置高亮

一、概述 本文主要介绍在 VSCode 看代码时,怎样使某个单词高亮显示,主要通过以下三步实现: 安装 highlight-words 插件 配置 highlight-words 插件 设置高亮快捷键F8 工作是嵌入式开发的,代码主要是C/C的,之前一直用…

通过网关访问微服务,一次正常,一次不正常 (nacos配置的永久实例却未启动导致)

微服务直接访问没问题,通过网关访问,就一次正常访问,一次401错误,交替正常和出错 负载均衡试了 路由配置检查了 最后发现nacos下竟然有2个order服务实例,我明明只开启了一个呀 原来之前的8080端口微服务还残留&…

PyQt5控件布局管理

Qt Designer提供了四种窗口布局:Vertical Layout(垂直布局) ,Horizontal Layout(水平布局),Grid Layout(栅格布局),Form Layout(表单布局),以及一种隐藏的布局—绝对布局 一般进行布局有两种方式: 一是通…

二次封装element-plus上传组件,提供校验、回显等功能

二次封装element-plus上传组件 0 相关介绍1 效果展示2 组件主体3 视频组件4 Demo 0 相关介绍 基于element-plus框架,视频播放器使用西瓜视频播放器组件 相关能力 提供图片、音频、视频的预览功能提供是否为空、文件类型、文件大小、文件数量、图片宽高校验提供图片…

Github标星98k,企业级Spring Boot项目开发实战笔记,太强了

准备又到了一年一度的金九银十招聘高峰期的时间,虽然这两年因为疫情以及经济环境不太好,互联网行业的各大厂都再裁员,但是今年下半年Java行情在慢慢的复苏,在慢慢的变好。 随着上半年病态卷的常态在慢慢的退去,互联网…

【Java】2021 RoboCom 机器人开发者大赛-高职组(初赛)题解

7-1 机器人打招呼 机器人小白要来 RoboCom 参赛了,在赛场中遇到人要打个招呼。请你帮它设置好打招呼的这句话:“ni ye lai can jia RoboCom a?”。 输入格式: 本题没有输入。 输出格式: 在一行中输出 ni ye lai can jia Robo…

【Linux】简单线程池的设计与实现 -- 单例模式

前言对锁的封装整体代码LockGuard - RALLRALLMutex封装 对线程创建的封装整体代码成员函数解释声明 业务处理封装-加减乘除(可有可无)整体代码成员函数解释声明 线程池的设计与实现整体代码成员函数解释声明 展示 前言 线程池: 一种线程使用模式。线程过…

Mybatis 源码 ∞ :杂七杂八

文章目录 一、前言二、TypeHandler三、KeyGenerator四、Plugin1 Interceptor2 org.apache.ibatis.plugin.Plugin3. 调用场景 五、Mybatis 嵌套映射 BUG1. 示例2. 原因3. 解决方案 六、discriminator 标签七、其他1. RowBounds2. ResultHandler3. MapKey 一、前言 Mybatis 官网…

无涯教程-Perl - seekdir函数

描述 此功能将DIRHANDLE中的当前位置设置为POS。 POS的值必须是Telldir先前返回的值。 seekdir()函数类似于Unix seekdir()系统调用。 语法 以下是此函数的简单语法- seekdir DIRHANDLE, POS返回值 如果失败,此函数返回0,如果成功,则返回1。 例 以下是显示其基本用法的…

VMware Workstation 如何启用复制粘贴

产品:VMware Workstation 16 Pro 版本:16.1.1 build-17801498 我们刚安装好的 VMware Workstation 会发现无法复制粘贴文件到虚拟机中,如下为解决方案: 1.点击 虚拟机,点击 安装 VMware Tools(T)...。 2.虚拟机下面会…

从零实战SLAM-第五课(最小二乘法)

在七月算法报的班,老师讲的蛮好。好记性不如烂笔头,关键内容还是记录一下吧,课程入口,感兴趣的同学可以学习一下。 --------------------------------------------------------------------------------------------------------…

Windows 搜索指定软件启动路径

Windows 搜索指定软件启动路径 通过指定软件名称,使用命令搜索软件安装路径 # 示例:搜索“钉钉”的启动路径 echo off rem 指定待搜索的文件 set "FileNameDingTalk.exe" rem echo 正在搜索,请稍候... for %%a in (C D E F G H I J…

javaswing人事管理系统企业员工工资管理mysql数据库MVC三层框架gui源代码

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、主要功能 人事管理:添加员工、工资管理、部门管理 …

sykwalking8.2和mysql5.7快速部署

1.SkyWalking 是什么? 分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。 提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。 2.SkyWalking 有哪些功能…

考公-判断推理-定义判断

第九节课 例题 例题 例题 例题 例题 例题 脚一滑,就是工伤,这难道不是操作不当吗 例题 不要较真,公务员,把没有全局观念的人排除在公务员队伍之外 例题 例题 下次看到不字,先给我画上 例题 例题 例题 例题…

Scratch 之 3D 画笔程序使用

目录 Part1 摄像头固定的3D效果 Part2 尝试移动摄像头 Part3 边缘裁剪 总结: Part1 摄像头固定的3D效果 首先,我们知道sc中有xy坐标。 现在让我们在sc中引入一个新坐标——z坐标。z轴垂直于电脑屏幕,从屏幕外指向屏幕里。(如下图) z坐标…

O2OA (翱途) o2server 调用 webServices jaxws 样例

本文分两部分介绍如何在 o2server 服务器中调用 webServices(jaxws)服务. 第一部分介绍如何在tomcat上搭建一个webServices(jaxws)服务. 第二部分介绍如何在o2server服务器上来调用上面创建的服务. O2OA (翱途)官网:http://www.o2oa.net 一、在tomcat上搭建一个…