antv G6绘制流程图

本文介绍了如何利用antv G6库绘制流程图,重点讲解了节点的anchorPoints配置以及如何通过sourceAnchor和targetAnchor指定边的起始和终止锚点,以实现精确的连接线布局。在实践中,作者遇到并解决了由于连接线折点导致的问题,展示了通过设置锚点索引值达到理想效果的过程。
摘要由CSDN通过智能技术生成

先贴上实现的效果图

  G6官网,关于G6的使用,可以自行进入官网查看。

按照官网可以绘制出简单的流程

 但是当实际绘制流程图时,简直是要被连接线的折点给搞崩溃。

节点配置项

anchorPoints:指定边连入节点的连接点的位置(相对于该节点而言),可以为空。例如: [0, 0],代表节点左上角的锚点,[1, 1],代表节点右下角的锚点。

一个节点可以有多个锚点。(写法如 anchorPoints: [ [0.5, 0.5],[1, 0.5],[0,0.5] ])

如果只设置了节点的锚点,两个节点会就近寻找锚点进行连接,就会变成如下图的效果,显然不是我们想要的。

 那么需要固定连接线在起始节点和终止节点上的锚点,就需要对边配置项进行一些操作了。

sourceAnchor :边的起始节点上的锚点的索引值。

 argetAnchor:边的终止节点上的锚点的索引值。

把上图的2-7为例,2的锚点 anchorPoints: [[0.5, 0], [1, 0.5],[0.5, 1]], 

那么配置边 { source: "2", target: "7",sourceAnchor:2},指定了2-7连接线连接2锚点是2锚点中的第三个,也就是[0.5,1];同理8也是这样。固定了锚点索引值后,我们想要的效果就出来了。

 全部代码

<template>
    <div id="mountNode">
    </div>
</template>
<script>
import utils from "@/plugin/utils";
import G6 from '@antv/g6';
import insertCss from 'insert-css';
const data = {
   //节点
      nodes: [
        {
          id: "1",
          name: "**上报",
          x: 280,
          y: 30,
          anchorPoints: [
            [0.5, 0.5],[1, 0.5],[0,0.5]
          ],
        },
        {
          id: "2",
          name: "**受理",
          x: 280,
          y: 150,
          anchorPoints: [
            [0.5, 0],
            [1, 0.5],
            [0.5, 1],
          ],
        },
        {
          id: "3",
          name: "**上报",
          x: 450,
          y: 100,
          anchorPoints: [
            [0, 0.5],
            [1, 0.5],
          ],
        },
        {
          id: "4",
          name: "***初审",
          x: 30,
          y: 250,
          anchorPoints: [
            [0.5, 0],
            // [1, 0.5],
          ],
        },
        {
          id: "5",
          name: "**初审",
          x: 180,
          y: 250,
        },
        {
          id: "6",
          name: "***经办人初审",
          x: 350,
          y: 250,
        },
        {
          id: "7",
          name: "***经办人初审",
          x: 500,
          y: 250,
          anchorPoints:[
              [0.5,0]
          ]
        },
        {
          id: "8",
          name: "***经办人初审",
          x: 700,
          y: 250,
          anchorPoints:[
              [0.5,0]
          ]
        },
        {
          id: "9",
          name: "***审核",
          x: 180,
          y: 330,
          anchorPoints: [
            [0.5, 0],
            [0.5, 1],
          ]
        },
        {
          
AntV G6 是一个基于 JavaScript 的流程图绘制工具,可以帮助用户快速绘制各种类型的流程图。使用 G6 绘制流程图的基本步骤如下: 1. 安装 G6 库 在终端中使用 npm 命令安装 G6 库:npm install @antv/g6。 2. 创建画布 使用 G6 提供的 Graph 类创建一个画布,示例代码如下: ```javascript import G6 from '@antv/g6'; const graph = new G6.Graph({ container: 'container', width: 800, height: 500, }); ``` 其中,container 参数指定画布所在的容器,width 和 height 参数指定画布的宽度和高度。 3. 创建节点和边 使用 G6 提供的 API 创建节点和边,示例代码如下: ```javascript graph.addNode('node1', { x: 100, y: 100, size: 50, label: 'Node 1', }); graph.addNode('node2', { x: 300, y: 100, size: 50, label: 'Node 2', }); graph.addEdge('edge1', { source: 'node1', target: 'node2', }); ``` 其中,addNode 方法用于创建节点,addEdge 方法用于创建边。节点和边的属性可以通过第二个参数传入。 4. 渲染画布 使用 G6 提供的 render 方法渲染画布,示例代码如下: ```javascript graph.render(); ``` 5. 绘制节点和边的样式 使用 CSS 样式表为节点和边设置样式,示例代码如下: ```css .g6-node { fill: #fff; stroke: #666; stroke-width: 1px; } .g6-edge { stroke: #666; stroke-width: 1px; } ``` 以上就是使用 AntV G6 绘制流程图的基本步骤。除了流程图G6 还支持绘制其他类型的图表,例如关系图、树形图等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值