Vue.js 使用AntV X6的示例步骤

 更新时间:2021年05月27日 11:44:05   作者:淮南一只猫  
X6 是 AntV 旗下的图编辑引擎,提供了一系列开箱即用的交互组件和简单易用的节点定制能力,方便我们快速搭建流程图、DAG 图、ER 图等图应用。接下来就看看vue如何使用它

0x0 前言

因为项目用到流程图,并且需求也算是不详细,所以选择比较灵活的 x6 图形编辑器作为流程图编辑器,从文档来看不算复杂,这边就是作为参考教程。

Antv X6 文档

0x1 安装

根据教程提示安装 x6 依赖即可,然后新建个容器进行实例化:

<div ref="containerRef" class="area-center-container" />
const data = {
  // 节点
  nodes: [
    {
      id: 'node1', // String,可选,节点的唯一标识
      x: 40,       // Number,必选,节点位置的 x 值
      y: 40,       // Number,必选,节点位置的 y 值
      width: 80,   // Number,可选,节点大小的 width 值
      height: 40,  // Number,可选,节点大小的 height 值
      label: 'hello', // String,节点标签
    },
    {
      id: 'node2', // String,节点的唯一标识
      x: 160,      // Number,必选,节点位置的 x 值
      y: 180,      // Number,必选,节点位置的 y 值
      width: 80,   // Number,可选,节点大小的 width 值
      height: 40,  // Number,可选,节点大小的 height 值
      label: 'world', // String,节点标签
    },
  ],
  // 边
  edges: [
    {
      source: 'node1', // String,必须,起始节点 id
      target: 'node2', // String,必须,目标节点 id
    },
  ],
}

function initGraph() {
  const graph = new Graph({
    container: this.$refs.containerRef,
    grid: {
      size: 10, // 网格大小 10px
      visible: true // 渲染网格背景
    },
    snapline: {
      enabled: true, // 对齐线
      sharp: true
    },
    scroller: {
      enabled: true,
      pageVisible: false,
      pageBreak: false,
      pannable: true
    }
  })
  // 画布居中
  graph.centerContent()

  graph.fromJSON(data)
}

就这样最简单例子实现了,上面不同的参数请参考文档对应的解释。

0x2 节点侧边栏

根据文档的 stencil 例子,可以简化很多代码量,直接用封装好的业务就行了,和上面一样直接写个容器实例化即可:

<el-aside ref="stencilRef" class="area-left" />
this.stencil = new Stencil({
    title: '流程节点侧边栏',
    target: graph,
    search: false,
    collapsable: true,
    stencilGraphWidth: this.$refs.stencilRef.$el.clientWidth,
    stencilGraphHeight: this.$refs.stencilRef.$el.clientHeight,
    groups: [
        {
            name: 'group',
            title: '流程图节点',
            collapsable: false
          }
        ],
    getDropNode: node => {
        let cloneNode = node.clone()
        switch (node.shape) {
            case 'rect':
                cloneNode = new RectShape()
                break
            case 'circle':
                cloneNode = new CircleShape()
                break
            case 'polygon':
                cloneNode = new PolylineShape()
                break
        }
        cloneNode.updateInPorts(graph)
        return cloneNode
    }
})
// 加载节点
this.stencil.load([new Rect(rectInfo), new Circle(circleInfo), new Polygon(polygonInfo)], 'group')

0x3 整合例子

在线:https://codesandbox.io/s/icy-meadow-rqihx

以上就是Vue.js 使用Antv X6的示例步骤的详细内容,更多关于Vue.js 使用 Antv X6的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:

相关文章

  • 打通前后端构建一个Vue+Express的开发环境

    打通前后端构建一个Vue+Express的开发环境

    这篇文章主要介绍了打通前后端构建一个Vue+Express的开发环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • vue项目展示pdf文件的方法实现

    vue项目展示pdf文件的方法实现

    本文主要介绍了vue项目展示pdf文件的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • vuex存取值和映射函数使用说明

    vuex存取值和映射函数使用说明

    这篇文章主要介绍了vuex存取值和映射函数使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Vue 3.0中jsx语法的使用

    Vue 3.0中jsx语法的使用

    这篇文章主要介绍了Vue 3.0 中 jsx 语法使用,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2020-11-11
  • ElementUI radio组件选中小改造

    ElementUI radio组件选中小改造

    这篇文章主要介绍了ElementUI radio组件选中小改造,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Vue嵌套iframe时$router.go(-1)后退bug的原因解析

    Vue嵌套iframe时$router.go(-1)后退bug的原因解析

    这篇文章主要介绍了Vue嵌套iframe,$router.go(-1)后退bug的问题原因及解决方法,本文给大家分享问题原因所在及解决方案,需要的朋友可以参考下吧
    2023-09-09
  • 关于el-select组件设置默认值的实现方式

    关于el-select组件设置默认值的实现方式

    这篇文章主要介绍了关于el-select组件设置默认值的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • vue如何遍历data所有变量并赋值

    vue如何遍历data所有变量并赋值

    这篇文章主要介绍了vue如何遍历data所有变量并赋值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue编写的功能强大的swagger-ui页面及使用方式

    vue编写的功能强大的swagger-ui页面及使用方式

    swagger是一种标准的数据格式的定义,对于不同语言进行实现一些注解API式的东西,能快速生成这种描述restful格式的api信息的json串,本文给大家详细介绍vue编写的功能强大的swagger-ui页面,感兴趣的朋友跟随小编一起看看吧
    2022-02-02
  • Vue3+X6流程图实现数据双向绑定详解

    Vue3+X6流程图实现数据双向绑定详解

    这篇文章主要为大家详细介绍了Vue3如何结合X6流程图实现数据双向绑定,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03

最新评论