热门标签 | 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)})},

推荐阅读
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • EPPlus绘制刻度线的方法及示例代码
    本文介绍了使用EPPlus绘制刻度线的方法,并提供了示例代码。通过ExcelPackage类和List对象,可以实现在Excel中绘制刻度线的功能。具体的方法和示例代码在文章中进行了详细的介绍和演示。 ... [详细]
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社区 版权所有