【前端】跟着maxkb学习logicflow流程图画法

news2025/7/10 18:32:56

文章目录

  • 背景
    • 1. 选定学习对象-maxkb应用逻辑编排
    • 2. 确定实现框架
    • 3. 关键逻辑:查看app-node.js
    • 4. 学习开始节点绘制
      • 流程数据形式
    • 5. 给节点增加表单输入框
    • 遇到过的问题

背景

看看前端如何绘制流程图,界面好看点。

  • "@logicflow/core": "1.2.27",
    
  • "@logicflow/extension": "1.2.27",
    

1. 选定学习对象-maxkb应用逻辑编排

在这里插入图片描述

2. 确定实现框架

maxkb采用vue3 + ts + logicflow实现上面的界面,我们选择vue2 + js跟着学。

3. 关键逻辑:查看app-node.js

import { HtmlResize } from '@logicflow/extension'

app-node.js是maxkb的基础节点, 所有的节点基本都是由此扩展而来,以开始节点为例,其定义的js为:

import StartNodeVue from './index.vue'
import { AppNode, AppNodeModel } from '@/workflow/common/app-node'
class StartNode extends AppNode {
  constructor (props) {
    super(props, StartNodeVue)
  }
}
export default {
  type: 'start-node',
  model: AppNodeModel,
  view: StartNode
}

而配置开始节点的属性字段、通过表单录入的逻辑则是在startNode/index.vue中编写。

4. 学习开始节点绘制

我们绘制一个demo级别的开始节点,通过logicflow
在这里插入图片描述
可以看到很简陋,那么我们尝试自定义节点样式,通过logicflow提供的html节点方法。
在这里插入图片描述

流程数据形式

{
    "nodes": [
        {
            "id": "1",
            "type": "start-node",
            "x": 580,
            "y": 160,
            "properties": {
                "name": "Default Node",
                "body": "Node content"
            }
        },
        {
            "id": "2",
            "type": "end-node",
            "x": 1160,
            "y": 160,
            "properties": {
                "name": "Default Node",
                "body": "Node content"
            }
        }
    ],
    "edges": [
        {
            "id": "0cc6a7da-1a06-4f7e-b792-dc11c8c91c97",
            "type": "bezier",
            "sourceNodeId": "1",
            "targetNodeId": "2",
            "startPoint": {
                "x": 730,
                "y": 160
            },
            "endPoint": {
                "x": 1010,
                "y": 160
            },
            "properties": {},
            "pointsList": [
                {
                    "x": 730,
                    "y": 160
                },
                {
                    "x": 830,
                    "y": 160
                },
                {
                    "x": 910,
                    "y": 160
                },
                {
                    "x": 1010,
                    "y": 160
                }
            ]
        }
    ]
}

5. 给节点增加表单输入框

vue节点组件中,emit回传数据, 然后通过this.lf.on处理属性更新。
需要注意input框使用@blur监听, 如果是@input可能需要防抖处理。

this.lf.on("update:properties", (model) => { // 处理节点emit回来的事件数据
  this.lf.setProperties(model.id, model.properties);
});

在这里插入图片描述

遇到过的问题

  • 节点有几个锚点,以及锚点坐标位置定义 ok
  • 通过vue + js 定义一个自定义节点 ok
  • 拖拽生成节点 no
  • 点击锚点上的加号, 选择下一步节点 no

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2340457.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【漏洞复现】CVE-2024-38856(ApacheOfbiz RCE)

【漏洞复现】CVE-2024-38856(ApacheOfbiz RCE) 1. 漏洞描述 Apache OFBiz 是一个开源的企业资源规划(ERP)系统。它提供了一套企业应用程序,用于集成和自动化企业的许多业务流程。 这个漏洞是由于对 CVE-2023-51467 的…

超详细VMware虚拟机扩容磁盘容量-无坑版

1.环境: 虚拟机:VMware Workstation 17 Pro-17.5.2 Linux系统:Ubuntu 22.04 LTS 2.硬盘容量 虚拟机当前硬盘容量180G -> 扩展至 300G 3.操作步骤 (1)在虚拟机关机的状态下,虚拟机硬盘扩容之前必…

全面理解Linux 系统日志:核心文件与查看方法

全文目录 1 Linux 系统日志分类及功能1.1 通用日志1.1.1 ‌/var/log/messages1.1.2 ‌/var/log/syslog 1.2 安全相关日志1.2.1 ‌/var/log/auth.log‌(Debian/Ubuntu)或 ‌/var/log/secure‌(RHEL/CentOS)1.2.2 /var/log/audit/au…

机器学习-08-关联规则更新

总结 本系列是机器学习课程的系列课程,主要介绍机器学习中关联规则和协同过滤。 参考 机器学习(三):Apriori算法(算法精讲) Apriori 算法 理论 重点 【手撕算法】【Apriori】关联规则Apriori原理、代码…

Flutter与FastAPI的OSS系统实现

作者:孙嘉成 目录 一、对象存储 二、FastAPI与对象存储 2.1 缤纷云S4服务API对接与鉴权实现 2.2 RESTful接口设计与异步路由优化 三、Flutter界面与数据交互开发 3.1 应用的创建 3.2页面的搭建 3.3 文件的上传 关键词:对象存储、FastAPI、Flutte…

Kubernetes控制平面组件:API Server详解(二)

云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…

MySQL-锁机制3-意向共享锁与意向排它锁、死锁

文章目录 一、意向锁二、死锁应该如何避免死锁问题? 总结 一、意向锁 在表获取共享锁或者排它锁时,需要先检查该表有没有被其它事务获取过X锁,通过意向锁可以避免大量的行锁扫描,提升表获取锁的效率。意向锁是一种表级锁&#xf…

报告系统状态的连续日期 mysql + pandas(连续值判断)

本题用到知识点:row_number(), union, date_sub(), to_timedelta()…… 目录 思路 pandas Mysql 思路 链接:报告系统状态的连续日期 思路: 判断连续性常用的一个方法,增量相同的两个列的差值是固定的。 让日期与行号 * 天数…

Tailwind 武林奇谈:bg-blue-400 失效,如何重拾蓝衣神功?

前言 江湖有云,Tailwind CSS,乃前端武林中的轻功秘籍。习得此技,排版如行云流水,配色似御风随形,收放自如,随心所欲。 某日,小侠你奋笔敲码,正欲施展“蓝衣神功”(bg-blue-400),让按钮怒气冲冠、蓝光满面,怎料一招使出,画面竟一片白茫茫大地真干净,毫无半点杀气…

开始放飞之先搞个VSCode

文章目录 开始放飞之先搞个VSCode重要提醒安装VSCode下载MinGW-w64回到VSCode中去VSCode原生调试键盘问题遗留问题参考文献 开始放飞之先搞个VSCode 突然发现自己的新台式机上面连个像样的编程环境都没有,全是游戏了!!!&#xff…

基于SA模拟退火算法的车间调度优化matlab仿真,输出甘特图和优化收敛曲线

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于SA模拟退火算法的车间调度优化matlab仿真,输出甘特图和优化收敛曲线。输出指标包括最小平均流动时间,最大完工时间,最小间隙时间。 2…

【仿Mudou库one thread per loop式并发服务器实现】SERVER服务器模块实现

SERVER服务器模块实现 1. Buffer模块2. Socket模块3. Channel模块4. Poller模块5. EventLoop模块5.1 TimerQueue模块5.2 TimeWheel整合到EventLoop5.1 EventLoop与线程结合5.2 EventLoop线程池 6. Connection模块7. Acceptor模块8. TcpServer模块 1. Buffer模块 Buffer模块&…

uniapp h5接入地图选点组件

uniapp h5接入地图选点组件 1、申请腾讯地图key2、代码接入2.1入口页面 (pages/map/map)templatescript 2.2选点页面(pages/map/mapselect/mapselect)templatescript 该内容只针对uniapp 打包h5接入地图选点组件做详细说明&#x…

【随缘更新,免积分下载】Selenium chromedriver驱动下载(最新版135.0.7049.42)

目录 一、chromedriver概述 二、chromedriver使用方式 三、chromedriver新版本下载🔥🔥🔥 四、Selenium与Chrome参数设置🔥🔥 五、Selenium直接操控已打开的Chrome浏览器🔥🔥🔥…

jenkins批量复制Job项目的shell脚本实现

背景 现在需要将“测试” 目录中的所有job全部复制到 一个新目录中 test2。可以结合jenkins提供的apilinux shell 进行实现。 测试目录的实际文件夹名称是 test。 脚本运行效果如下: [qdevsom5f-dev-hhyl shekk]$ ./copy_jenkins_job.sh 创建文件夹 test2 获取源…

iOS Google登录

iOS Google登录 SDK下载地址在 Firebase 有下载,要下载整个SDK文件,然后拿其中的Google 登录SDK来使用 Firebase 官方文档 github 下载链接

嵌入式工程师( C / C++ )笔试面试题汇总

注:本文为 “嵌入式工程师笔试面试题” 相关文章合辑。 未整理去重。 如有内容异常,请看原文。 嵌入式必会 C 语言笔试题汇总 Z 沉浮 嵌入式之旅 2021 年 01 月 19 日 00:00 用预处理指令 #define 声明一个常数,用以表明 1 年中有多少秒&a…

重构便携钢琴专业边界丨特伦斯便携钢琴V30Pro定义新一代便携电钢琴

在便携电钢琴领域,特伦斯推出的V30Pro折叠钢琴以"技术革新场景适配"的双重升级引发关注。这款产品不仅延续了品牌标志性的折叠结构,更通过声学系统重构与智能交互优化,重新定义了便携乐器的专业边界。 ▶ 核心特点:技术…

DiffuRec: A Diffusion Model for Sequential Recommendation

DiffuRec: A Diffusion Model for Sequential Recommendation Background 序列推荐(Sequential Recommendation, SR)领域,主流方法是将用户与物品表示为fixed embedding。然而,这种静态向量表达方式难以全面刻画用户多样化的兴趣…

多模态大语言模型arxiv论文略读(三十三)

Jailbreaking Attack against Multimodal Large Language Model ➡️ 论文标题:Jailbreaking Attack against Multimodal Large Language Model ➡️ 论文作者:Zhenxing Niu, Haodong Ren, Xinbo Gao, Gang Hua, Rong Jin ➡️ 研究机构: Xidian Univer…