当前位置: 首页 > article >正文

使用Vue-Flow创建一个流程图可视化节点坐标查询器

在开发中遇到这样一个需求,需要后端返回数据前端网页生成流程图,由于流程图使用了Vue-Flow,所以需要坐标来辅助后端生成数据。

首先引入方法并定义添加节点数据

const { updateEdge, addEdges, addNodes} = useVueFlow()
const add_nodes = () => {const id = nodes.length + 1const newNode = {id: `${id}`,label: `Node ${id}`,position: { x: 100, y: 100 },sourcePosition: Position.Right,targetPosition: Position.Left,}addNodes([newNode])nodes.push(newNode)
}

nodes的数据结构请看这篇文章:基于Vue-Flow实现可变流程图

第二步将节点改为可连接节点

function onEdgeUpdateStart(edge) {console.log('start update', edge)
}function onEdgeUpdateEnd(edge) {console.log('end update', edge)
}function onEdgeUpdate({ edge, connection }) {updateEdge(edge, connection)
}function onConnect(params) {addEdges([params])
}
<VueFlow :nodes="nodes" :edges="edges" class="test" ref="vue_flow" @edge-update="onEdgeUpdate"@connect="onConnect"@edge-update-start="onEdgeUpdateStart" @edge-update-end="onEdgeUpdateEnd">
</VueFlow>

接下来定义查询坐标方法

let position_data = reactive([])
let edge_position_data = reactive([])
const get_position = () => {position_data.splice(0, position_data.length)edge_position_data.splice(0, edge_position_data.length)for (let i = 0; i < vue_flow.value.nodes.length; i++) {let obj = {id: vue_flow.value.nodes[i].id,label: vue_flow.value.nodes[i].data.label,type: vue_flow.value.nodes[i].type,position: vue_flow.value.nodes[i].position}let edge_obg={id: vue_flow.value.edges[i].id,source: vue_flow.value.edges[i].source,target: vue_flow.value.edges[i].target,type: vue_flow.value.edges[i].type,}position_data.push(obj)edge_position_data.push(edge_obg)}
}

使用pre标签展示数据

<div id="show_node_msg_box"><pre><span>nodes:</span>{{position_data }}</pre><pre><span>edges:</span>{{edge_position_data }}</pre>
</div>

相关文章:

使用Vue-Flow创建一个流程图可视化节点坐标查询器

在开发中遇到这样一个需求&#xff0c;需要后端返回数据前端网页生成流程图&#xff0c;由于流程图使用了Vue-Flow&#xff0c;所以需要坐标来辅助后端生成数据。 首先引入方法并定义添加节点数据 const { updateEdge, addEdges, addNodes} useVueFlow() const add_nodes …...

面试基础--Java 集合框架详解

Java 集合框架详解&#xff1a;从 ArrayList 到 HashMap 的底层原理 引言 在 Java 开发中&#xff0c;集合框架&#xff08;Collection Framework&#xff09;是处理数据存储和操作的核心工具。无论是日常开发还是大厂面试&#xff0c;对集合框架的理解都是考察的重点之一。本…...

轻量级日志管理平台Grafana Loki

文章目录 轻量级日志管理平台Grafana Loki背景什么是Loki为什么使用 Grafana Loki&#xff1f;架构Log Storage Grafana部署使用基于 Docker Compose 安装 LokiMinIO K8s集群部署Loki采集Helm 部署方式和案例 参考 轻量级日志管理平台Grafana Loki 背景 在微服务以及云原生时…...

回文串

长度为偶数的串&#xff0c;重排连续字串变成回文串。 Problem - D - Codeforces 代码&#xff1a; #include <bits/stdc.h> #define fi first #define se second using namespace std; typedef long long LL; typedef pair<int,int> PII; typedef pair<LL,L…...

《跟李沐学 AI》AlexNet论文逐段精读学习心得 | PyTorch 深度学习实战

前一篇文章&#xff0c;使用 AlexNet 实现图片分类 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 本篇文章内容来自于学习 9年后重读深度学习奠基作之一&#xff1a;AlexNet【下】【论文精读】】的心得。 《跟李沐…...

【电机控制器】FU6832S——持续更新

【电机控制器】FU6832S——持续更新 文章目录 [TOC](文章目录) 前言一、ADC二、UART三、PWM四、参考资料总结 前言 使用工具&#xff1a; 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、ADC 二、UART 三、PWM 四、参考资料 总结 本文仅仅简…...

Flutter屏幕适配终极方案:flutter_screenutil深度解析

在跨平台应用开发中&#xff0c;屏幕适配始终是开发者面临的核心挑战。Flutter虽然自带响应式布局体系&#xff0c;但面对复杂的设计稿标注时&#xff0c;手动计算比例效率低下。今天我们将深度解析目前Flutter社区最受欢迎的屏幕适配方案——flutter_screenutil&#xff0c;手…...

计算机视觉算法实战——产品分拣(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ 1. 领域简介✨✨ 产品分拣是工业自动化和物流领域的核心技术&#xff0c;旨在通过机器视觉系统对传送带上的物品进行快速识别、定位和分类&a…...

可视化报表

根据你的需求&#xff0c;以下是一些可以实现报表可视化的开源项目&#xff0c;这些项目提供了类似阿里巴巴 FBI 报表的功能&#xff0c;支持数据可视化、报表设计、仪表盘和大屏展示等功能&#xff1a; 1. DataEase DataEase 是一个开源的 BI 工具&#xff0c;帮助用户快速分…...

基于模块联邦的微前端架构:重构大型前端应用的模块化边界

引言&#xff1a;企业级前端的模块化困境 字节跳动广告系统采用Webpack 5模块联邦后&#xff0c;主应用构建时间从14分钟降至38秒&#xff0c;微应用独立发布频率提升至每天50次。在动态加载机制下&#xff0c;首屏资源加载体积减少79%&#xff0c;跨团队组件复用率达到92%。其…...

Android之图片保存相册及分享图片

文章目录 前言一、效果图二、实现步骤1.引入依赖库2.二维码生成3.布局转图片保存或者分享 总结 前言 其实现在很多分享都是我们自定义的&#xff0c;更多的是在界面加了很多东西&#xff0c;然后把整个界面转成图片保存相册和分享&#xff0c;而且现在分享都不需要第三方&…...

Linux放行端口

8080这个端口测试看telnet是不通的&#xff0c;您服务器内是否有对应的业务监听了这个端口呢&#xff1f;您到服务器内执行下&#xff1a; netstat -nltp |grep 8080 同时服务器内执行下&#xff1a; systemctl status firewalld iptables -nL 截图反馈下&#xff0c;我看下防火…...

Spring Boot延迟执行实现

说明&#xff1a;本文介绍如何在Spring Boot项目中&#xff0c;延迟执行某方法&#xff0c;及讨论延迟执行方法的是事务问题。 搭建Demo 首先&#xff0c;创建一个Spring Boot项目&#xff0c;pom.xml如下&#xff1a; <?xml version"1.0" encoding"UTF-…...

npm i 失败权限问题

安装完node之后, 测试全局安装一个最常用的 express 模块进行测试 失败&#xff0c;但是用管理员权限打开cmd 安装就成功。 报错如下&#xff1a; npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and …...

uniapp 微信小程序打包之后vendor.js 主包体积太大,解决办法,“subPackages“:true设置不生效

现在是打包的时候&#xff0c;vendor.js 的内容全部打到了主包里面&#xff0c; 说一下我的方法&#xff1a; 1. 通过发行 小程序打包 这样打包的体积是最小的&#xff0c;打包之后打开微信开发工具&#xff0c;然后再上传 2.manifest.json,在“mp-weixin”里添加代码 "…...

23.2、云计算安全机制与案例分析

目录 云计算安全保护机制与技术方案云计算安全保护机制与技术方案常见云计算网络安全机制云计算安全管理与运维云计算安全综合应用案例分析 - 阿里云云计算安全综合应用案例分析 - 腾讯云云计算安全综合应用案例分析 - 华为云 云计算安全保护机制与技术方案 首先针对云计算&am…...

游戏引擎学习第120天

仓库:https://gitee.com/mrxiao_com/2d_game_3 上次回顾&#xff1a;周期计数代码 我们正在进行一个项目的代码优化工作&#xff0c;目标是提高性能。当前正在优化某个特定的代码片段&#xff0c;已经将其执行周期减少到48个周期。为了实现这一目标&#xff0c;我们设计了一个…...

将DeepSeek接入vscode的N种方法

接入deepseek方法一:cline 步骤1:安装 Visual Studio Code 后,左侧导航栏上点击扩展。 步骤2:搜索 cline,找到插件后点击安装。 步骤3:在大模型下拉菜单中找到deep seek,然后下面的输入框输入你在deepseek申请的api key,就可以用了 让deepseek给我写了一首关于天气的…...

【知识】PyTorch中不同优化器的特点和使用

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 1. SGD&#xff08;随机梯度下降&#xff09; 2. Adam&#xff08;自适应矩估计&#xff09; 3. AdamW 4. Adagrad 5. Adadelta 6. Adafact…...

ubuntu windows双系统踩坑

我有个台式机&#xff0c;先安装的ubuntu&#xff0c;本来想专门用来做开发&#xff0c;后面儿子长大了&#xff0c;给他看了一下星际争霸、魔兽争霸&#xff0c;立马就迷上了。还有一台windows的笔记本&#xff0c;想着可以和他联局域网一起玩&#xff0c;在ubuntu上用wine跑魔…...

AI智算-k8s+SGLang实战:DeepSeek-r1:671b满血版多机多卡私有化部署全攻略

k8sSGLang实战&#xff1a;DeepSeek-r1:671b满血版多机多卡私有化部署全攻略 前言环境准备1. 模型下载2.软硬件环境介绍 正式部署1. 部署LWS API2. 通过 LWS 部署DeepSeek-r1模型3. 查看显存占用情况4. 服务对外暴露5. 测试部署效果5.1 通过 curl5.2 通过 OpenWebUIa. 部署 Ope…...

zlib编译https://www.cnblogs.com/MrOuqs/p/5751485.html

vs2015零基础编译zlib从失败到成功 vs2015零基础编译zlib从失败到成功_zlib vs2015-CSDN博客 c如何将文件夹打包成zip...

【蓝桥杯单片机】第十三届省赛第二场

一、真题 二、模块构建 1.编写初始化函数(init.c) void Cls_Peripheral(void); 关闭led led对应的锁存器由Y4C控制关闭蜂鸣器和继电器 2.编写LED函数&#xff08;led.c&#xff09; void Led_Disp(unsigned char ucLed); 将ucLed取反的值赋给P0 开启锁存器 关闭锁存…...

【安装及调试旧版Chrome + 多版本环境测试全攻略】

&#x1f468;&#x1f4bb; 安装及调试旧版Chrome 多版本环境测试全攻略 &#x1f310; &#xff08;新手友好版 | 覆盖安装/运行/调试全流程&#xff09; &#x1f570;️ 【背景篇】为什么我们需要旧版浏览器测试&#xff1f; &#x1f30d; &#x1f310; 浏览器世界的“…...

从零开始玩转TensorFlow:小明的机器学习故事 5

图像识别的挑战 1 故事引入&#xff1a;小明的“图像识别”大赛 小明从学校里听说了一个有趣的比赛&#xff1a;“美食图像识别”。参赛者需要训练计算机&#xff0c;看一张食物照片&#xff08;例如披萨、苹果、汉堡等&#xff09;&#xff0c;就能猜出这是什么食物。听起来…...

sql的索引与性能优化相关

之前面试的时候&#xff0c;由于在简历上提到优化sql代码&#xff0c;老是会被问到sql索引和性能优化问题&#xff0c;用这个帖子学习记录一下。 1.为什么要用索引 ------------------------------------------------------------------------------------------------------…...

Snapshot Compressed Imaging:打破传统成像的新视界

在我们的日常生活中,拍照、拍视频已经成为记录生活的常规操作。无论是用手机捕捉美丽的风景,还是用相机拍摄珍贵的瞬间,传统的成像方式似乎已经满足了我们大部分的需求。但你是否想过,在某些特殊的场景下,传统成像技术可能会遇到一些难题,而一种名为 Snapshot Compressed…...

git 命令 设置别名

在 Git 中&#xff0c;你可以通过配置别名来简化常用的命令。这样&#xff0c;你可以使用更短或更易记的命令来完成相同的操作。要设置 Git 命令的别名&#xff0c;你可以使用 git config 命令。 全局设置 如果你想为所有 Git 仓库设置别名&#xff0c;可以使用 --global 选项…...

在Spark中如何配置Executor内存以优化性能

在Spark中&#xff0c;配置Executor内存以优化性能是一个关键步骤。以下是一些具体的配置方法和建议&#xff1a; 一、Executor内存配置参数 在Spark中&#xff0c;Executor的内存配置主要通过以下几个参数进行&#xff1a; --executor-memory 或 spark.executor.memory&…...

Go语言--语法基础2--下载安装

2、下载安装 1、下载源码包&#xff1a; go1.18.4.linux-amd64.tar.gz。 官方地址&#xff1a;https://golang.google.cn/dl/ 云盘地址&#xff1a;链接&#xff1a; https://pan.baidu.com/s/1N2jrRHaPibvmmNFep3VYag 提 取码&#xff1a; zkc3 2、将下载的源码包解压…...