热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vue流程图简画

官网https:antv-x6.gitee.iozhdocstutorialgetting-started![预览](https:img-blog.csdnimg.cn14ba7

//官网 https://antv-x6.gitee.io/zh/docs/tutorial/getting-started
![预览](https://img-blog.csdnimg.cn/14ba7c8a89174d97a8c98816fdd3bec5.png)npm install @antv/x6 --save
import { Graph } from '@antv/x6';
//这个不能用v-show进行显示隐藏,目前我也不清楚为什么,因为我用v-show后,连接线会错乱。

huihua(){// 创建边const graph = new Graph({container: document.getElementById('container'),// scroller: {// enabled: true,// pannable: true,// pageVisible: true,// pageBreak: false,// },mousewheel: {enabled: true,modifiers: ['ctrl', 'meta'],},connecting: {allowBlank: true,},});var node1_width=window.screen.widthvar node1_height=window.screen.heightwindow.addEventListener("resize", () => {node1_width=window.screen.widthnode1_height=window.screen.heightconsole.log(node1_width,node1_height)});const node1 = graph.addNode({x: 300, // Number,必选,节点位置的 x 值y: 40, // Number,必选,节点位置的 y 值width: 150, // Number,可选,节点大小的 width 值height: 50, // Number,可选,节点大小的 height 值label: 'hello', // String,节点标签attrs: {body: {fill: '#1A6FC9',stroke: '#1A6FC9',border:0,},label: {text: '测试1',fill: '#ffffff',fontSize: 20,fontWeight: 'bold',}}})const node2 = graph.addNode({x: 600, // Number,必选,节点位置的 x 值y: 40, // Number,必选,节点位置的 y 值width: 150, // Number,可选,节点大小的 width 值height: 50, // Number,可选,节点大小的 height 值label: 'world', // String,节点标签attrs: {body: {fill: '#D89614',stroke: '#D89614',// strokeDasharray: '10,2',border:0,},label: {text: '测试2',fill: '#ffffff',fontSize: 20,fontWeight: 'bold',}}})const edge = graph.addEdge({source: node1,target: node2,attrs: {line: {stroke: '#ffffff',},},},)edge.setLabels({attrs: { text: { text: '查看', fill: '#ffffff'},rect: {ref: 'label',fill: '#111213',rx: 3,ry: 3,refWidth: 30,refHeight: 20,refX: -15,refY: -10,}, },})const node3 = graph.addNode({x: 900, // Number,必选,节点位置的 x 值y: 40, // Number,必选,节点位置的 y 值width: 150, // Number,可选,节点大小的 width 值height: 50, // Number,可选,节点大小的 height 值label: 'world', // String,节点标签attrs: {body: {fill: '#D89614',stroke: '#D89614',// strokeDasharray: '10,2',border:0,},label: {text: '测试3',fill: '#ffffff',fontSize: 20,fontWeight: 'bold',}}})const edge2 = graph.addEdge({source: node2,target: node3,attrs: {line: {stroke: '#ffffff',},},},)edge2.setLabels({attrs: { text: { text: '选择', fill: '#ffffff'},rect: {ref: 'label',fill: '#111213',rx: 3,ry: 3,refWidth: 30,refHeight: 20,refX: -15,refY: -10,}, },})const node4 = graph.addNode({x: 900, // Number,必选,节点位置的 x 值y: 200, // Number,必选,节点位置的 y 值width: 150, // Number,可选,节点大小的 width 值height: 50, // Number,可选,节点大小的 height 值label: 'world', // String,节点标签attrs: {body: {fill: '#1A6FC9',stroke: '#1A6FC9',// strokeDasharray: '10,2',border:0,},label: {text: '测试4',fill: '#ffffff',fontSize: 20,fontWeight: 'bold',}}})const edge3 = graph.addEdge({source: node3,target: node4,attrs: {line: {stroke: '#ffffff',},},},)edge3.setLabels({attrs: { text: { text: '测试4', fill: '#ffffff'},rect: {ref: 'label',fill: '#111213',rx: 3,ry: 3,refWidth: 30,refHeight: 20,refX: -15,refY: -10,}, },})const node5 = graph.addNode({x: 600, // Number,必选,节点位置的 x 值y: 200, // Number,必选,节点位置的 y 值width: 150, // Number,可选,节点大小的 width 值height: 50, // Number,可选,节点大小的 height 值label: 'world', // String,节点标签attrs: {body: {fill: '#1A6FC9',stroke: '#1A6FC9',// strokeDasharray: '10,2',border:0,},label: {text: '测试5',fill: '#ffffff',fontSize: 20,fontWeight: 'bold',}}})const edge4 = graph.addEdge({source: node5,target: node4,attrs: {line: {stroke: '#ffffff',},},},)const node6 = graph.addNode({x: 900, // Number,必选,节点位置的 x 值y: 360, // Number,必选,节点位置的 y 值width: 150, // Number,可选,节点大小的 width 值height: 50, // Number,可选,节点大小的 height 值label: 'world', // String,节点标签attrs: {body: {fill: '#D89614',stroke: '#D89614',// strokeDasharray: '10,2',border:0,},label: {text: '测试5',fill: '#ffffff',fontSize: 20,fontWeight: 'bold',}}})const edge5 = graph.addEdge({source: node4,target: node6,attrs: {line: {stroke: '#ffffff',},},},)edge5.setLabels({attrs: { text: { text: '采集', fill: '#ffffff'},rect: {ref: 'label',fill: '#111213',rx: 3,ry: 3,refWidth: 30,refHeight: 20,refX: -15,refY: -10,}, },})const node7 = graph.addNode({x: 1200, // Number,必选,节点位置的 x 值y: 500, // Number,必选,节点位置的 y 值width: 150, // Number,可选,节点大小的 width 值height: 50, // Number,可选,节点大小的 height 值label: 'world', // String,节点标签attrs: {body: {fill: '#1A6FC9',stroke: '#1A6FC9',// strokeDasharray: '10,2',border:0,},label: {text: '测试5',fill: '#ffffff',fontSize: 20,fontWeight: 'bold',}}})const edge6 = graph.addEdge({source: node4,target: node7,vertices: [ //相连途中需要途径两个点{ x: 1270, y: 225}, //点1// { x: 968, y: 242} //点2],attrs: {line: {stroke: '#ffffff',},},},)edge6.setLabels({attrs: { text: { text: '测试6', fill: '#ffffff'},rect: {ref: 'label',fill: '#111213',rx: 3,ry: 3,refWidth: 30,refHeight: 20,refX: -15,refY: -10,}, },position: {distance: 220,},})const node8 = graph.addNode({x: 900, // Number,必选,节点位置的 x 值y: 550, // Number,必选,节点位置的 y 值width: 150, // Number,可选,节点大小的 width 值height: 50, // Number,可选,节点大小的 height 值label: 'world', // String,节点标签attrs: {body: {fill: '#203175',stroke: '#203175',// strokeDasharray: '10,2',border:0,},label: {text: '测试7',fill: '#ffffff',fontSize: 20,fontWeight: 'bold',}}})const edge7 = graph.addEdge({source: node7,target: node8,vertices: [ //相连途中需要途径两个点{ x: 1275, y: 578}, //点1// { x: 968, y: 242} //点2],attrs: {line: {stroke: '#ffffff',},},},)edge7.setLabels({attrs: { text: { text: '生成', fill: '#ffffff'},rect: {ref: 'label',fill: '#111213',rx: 3,ry: 3,refWidth: 30,refHeight: 20,refX: -15,refY: -10,}, },})const node9 = graph.addNode({x: 900, // Number,必选,节点位置的 x 值y: 630, // Number,必选,节点位置的 y 值width: 150, // Number,可选,节点大小的 width 值height: 50, // Number,可选,节点大小的 height 值label: 'world', // String,节点标签attrs: {body: {fill: '#203175',stroke: '#203175',// strokeDasharray: '10,2',border:0,},label: {text: '测试8',fill: '#ffffff',fontSize: 20,fontWeight: 'bold',}}})const edge8 = graph.addEdge({source: node8,target: node9,// vertices: [ //相连途中需要途径两个点// { x: 1275, y: 578}, //点1// // { x: 968, y: 242} //点2// ],attrs: {line: {stroke: '#ffffff',},},},)//graph为自定义的画布 为画布上的node绑定点击事件 graph.on('node:click', ({ view, e }) => {e.stopPropagation() //禁止冒泡console.log(view) //返回当前节点id等元素交流技术加企鹅330586621console.log(e)})},

推荐阅读
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • 本文介绍了Cocos2dx学习笔记中的更新函数scheduleUpdate、进度计时器CCProgressTo和滚动视图CCScrollView的用法。详细介绍了scheduleUpdate函数的作用和使用方法,以及schedule函数的区别。同时,还提供了相关的代码示例。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 本文详细介绍了如何创建和使用VUE uni-app开发环境,包括通过HBuilderX可视化界面和通过vue-cli命令执行的方法。文章内容简单清晰,易于学习与理解。通过学习本文,读者可以深入了解VUE uni-app开发环境,并通过实践验证掌握具体的使用情况。编程笔记将为读者推送更多相关知识点的文章,欢迎关注! ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
author-avatar
mobiledu2502913921
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有