【工作流】LogicFlow:一款高颜值、高易用性的前端流程编排神器!

【工作流】LogicFlow:一款高颜值、高易用性的前端流程编排神器!

文章目录


在这里插入图片描述

引言:什么是 LogicFlow?

想象一下,你需要在你管理的后台系统中,加入一个功能:让用户能够像搭积木一样,通过拖拽来定义一个复杂的业务流程(比如审批流、数据流转等)。

官网地址:https://07.logic-flow.cn/

你会怎么做?

  1. 使用现成的流程图工具? (如 draw.io 嵌入) -> 功能固定,难以与业务深度集成。
  2. 从零开始用 CanvasSVG 手写一个? -> 工程量巨大,坑多到怀疑人生。

这时候,LogicFlow 就像一位“天降神兵”,它是一款专注于业务流程图编辑的前端开源框架。它不关心你的后端是什么,只专注于在前端页面上,为你提供一个功能强大、易于扩展的流程图绘制区域。

🎯核心定位:让开发者能快速、轻松地在自己的网页应用中集成一个专业的流程图设计器。

一、 为什么选择 LogicFlow?它的核心优势是什么?

在这里插入图片描述
  1. 极易上手,API 设计友好
    LogicFlow 的 API 设计非常直观。只需几行代码,你就能创建一个基础的流程图编辑器。对于新手极其友好。
  2. 高扩展性,你的想象力是唯一的限制
    这是 LogicFlow 最强大的地方。它几乎允许你自定义所有东西:
    • 节点:除了基础矩形、圆形,你可以自定义成“用户任务”、“系统任务”、“网关”等任何业务节点。
    • 连线:自定义连线的样式、箭头,甚至在线条上嵌入文案或图标。
    • 插件:官方和社区提供了丰富的插件,如菜单、缩略图、BPMN适配等。
  3. 数据驱动,与业务无缝集成
    LogicFlow 采用纯粹的数据驱动模式。你不需要直接操作 DOM,只需关心图的数据。获取到的 JSON 数据可以轻松保存到数据库或发送给后端。
  4. 国产开源,中文文档齐全
    由国内团队精心打造,拥有完善的中文文档和活跃的社区,沟通无障碍,解决问题快人一步。
提示:LogicFlow 支持 htmlvuereact 等前端框架,本文使用 html 集成。

二、 核心概念快速理解

在开始写代码前,我们先建立三个核心心智模型:

概念是什么?类比
GraphModel (图模型)整个流程图的数据和逻辑核心。它管理着所有的节点和边。一个家族的“族谱”,记录了所有成员(节点)和他们之间的关系(边)。
Node (节点)流程图中的一个个基础元素,比如步骤、任务。族谱中的一个个“人”,比如父亲、儿子。
Edge (边/连线)连接两个节点的线,表示流程的走向。族谱中的“父子关系”,连接着两个人。
理解了这三点,你就掌握了 LogicFlow 80% 的运作方式。

三、 实战:5分钟创建一个你的第一个流程图

俗话说,光说不练假把式。让我们来真刀真枪地创建一个简单的流程图。

步骤 1:初始化项目并安装

# 创建一个新的目录并初始化mkdir my-logicflow-demo cd my-logicflow-demo npm init -y # 安装 LogicFlownpminstall @logicflow/core 

步骤 2:创建 HTML 容器

创建一个 index.html 文件:

<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>我的第一个 LogicFlow 流程图</title><linkrel="stylesheet"href="https://cdn.jsdelivr.net/npm/@logicflow/core/dist/style/index.css"/></head><body><!-- 准备一个容器,LogicFlow 会在这个 div 里渲染画布 --><divid="container"style="width: 1000px;height: 600px;border: 1px solid #aaa;"></div><scriptsrc="./app.js"></script></body></html>

步骤 3:编写 JavaScript 逻辑

创建一个 app.js 文件:

// 引入 LogicFlowimport{ LogicFlow }from'@logicflow/core';// 注意:如果直接在浏览器中运行,请使用 CDN 方式引入,这里为了演示使用 ES Module。// 1. 配置画布const lf =newLogicFlow({ container: document.querySelector('#container'), grid:true,// 开启网格,方便对齐// width: 1000,// height: 600,});// 2. 渲染画布 lf.render();// 3. 设置默认节点和连线类型(这样拖拽出来的节点才是我们想要的) lf.setDefaultEdgeType('polyline');// 设置默认连线为折线// 4. 举个栗子:在画布上添加一些初始节点和连线 lf.addNode({ type:'rect', x:100, y:100, text:'开始节点',}); lf.addNode({ type:'circle', x:300, y:100, text:'处理节点',}); lf.addEdge({ type:'polyline', sourceNodeId:1,// 第一个节点的ID targetNodeId:2,// 第二个节点的ID});
注意:上面的 ES Module 写法在部分浏览器中可能直接运行会报错。更稳妥的方式是使用构建工具(如 Vite, Webpack)或者直接通过 CDN <script> 标签引入。CDN 方式如下:

index.html</body> 前加入:

<scriptsrc="https://cdn.jsdelivr.net/npm/@logicflow/core/dist/logic-flow.js"></script><script>// 将 app.js 的内容放在这里const{ LogicFlow }= window.LogicFlow;// ... 其余代码与上面 app.js 相同</script>

步骤 4:查看结果!

用浏览器打开你的 index.html 文件,你将看到一个包含两个节点和一条连线的流程图!你可以尝试用鼠标拖拽它们。

四、 进阶:自定义一个业务节点

基础节点太单调?我们来创建一个“审批节点”。

// 继承 RectNode 来创建自定义节点import{ RectNode, RectNodeModel }from'@logicflow/core';// 1. 定义视图(View):控制节点的外观长什么样classApprovalNodeextendsRectNode{// 这里可以重写获取形状的方法,比如添加图标}// 2. 定义模型(Model):控制节点的数据和行为逻辑classApprovalNodeModelextendsRectNodeModel{// 在构造函数中设置自定义属性initNodeData(data){super.initNodeData(data);this.width =120;this.height =80;this.radius =10;// 圆角矩形this.stroke ='#2980b9';// 边框颜色this.fill ='#d6eaf8';// 填充颜色}// 自定义节点文字样式getTextStyle(){const style =super.getTextStyle(); style.fontSize =16; style.color ='#2c3e50';return style;}}// 3. 注册自定义节点 lf.register('approval',{ view: ApprovalNode, model: ApprovalNodeModel,});// 4. 现在,你可以添加这个自定义节点了! lf.addNode({ type:'approval',// 使用注册的类型名 x:500, y:200, text:'主管审批',});

刷新页面,你会看到一个风格独特的“主管审批”节点!通过这种强大的自定义能力,你可以构建出完全贴合你业务需求的流程图。

五、 数据:流程图的输入与输出

LogicFlow 的核心是数据。

  • 获取数据(保存):当你设计好流程图后,调用 lf.getGraphData() 即可得到一个 JSON 数据。这个数据描述了整个图的结构,你可以把它存到数据库里。
const graphData = lf.getGraphData(); console.log(JSON.stringify(graphData));// 输出: {"nodes": [...], "edges": [...]}
  • 渲染数据(回显):当你从后端拿到之前保存的 JSON 数据时,只需在 lf.render() 时传入即可。
const previouslySavedData ={...};// 从API获取的数据 lf.render(previouslySavedData);

六、 生态系统与未来

LogicFlow 拥有一个繁荣的插件生态系统:

  • @logicflow/extension: 官方扩展包,包含了:
    • BPMN: 让你能绘制符合 BPMN 2.0 规范的流程图。
    • MiniMap: 缩略图,用于在大图中快速导航。
    • SelectionSelect: 框选工具。
    • …等等

使用插件通常非常简单:

import{ BpmnElement }from'@logicflow/extension';// 注册插件 lf.use(BpmnElement);// 之后你就可以使用 'bpmn:startEvent' 等 BPMN 类型的节点了

总结

  1. LogicFlow 是什么?
    它是一个强大、易扩展的前端流程图编辑框架。
  2. 它解决了什么问题?
    它让在网页应用中嵌入一个专业的、可高度定制的流程图设计器变得异常简单,极大地提升了开发效率和用户体验。
  3. 它的学习曲线如何?
    入门极快,核心概念清晰。官方文档和示例非常丰富,能让你在短时间内搭建出可用的原型。而它的高扩展性又能支撑起极其复杂的业务场景。

无论是做 OA 审批、自动化运维、低代码平台,还是任何需要可视化编排的场景,LogicFlow 都绝对值得你花时间去了解和尝试。

Read more

Qwen3-ASR-0.6B零基础入门:多方言自动识别WebUI快速上手教程

Qwen3-ASR-0.6B零基础入门:多方言自动识别WebUI快速上手教程 你是不是也遇到过这样的场景?开会录音需要整理成文字,但方言口音太重,通用工具识别不准;或者想给一段外语视频加字幕,手动听写效率太低。语音转文字的需求无处不在,但找到一个既准确、又支持方言、还简单好用的工具却不容易。 今天要介绍的Qwen3-ASR-0.6B,就是为解决这些问题而生的。它是一个轻量级但功能强大的语音识别模型,最吸引人的是它支持52种语言和方言,包括22种中文方言。更棒的是,它提供了一个直观的Web界面,让你不用写一行代码,就能轻松完成语音转文字。 这篇文章,我就带你从零开始,手把手学会怎么用这个工具。无论你是技术小白,还是有一定经验的开发者,都能在10分钟内上手。 1. 它能做什么?先看看效果 在讲具体操作之前,我们先看看Qwen3-ASR-0.6B到底能做什么。简单来说,它就是一个“耳朵”特别灵的语音识别工具。 核心能力有三点: 1. 听得懂多种语言和方言:除了英语、日语、韩语等30种主流语言,它还专门支持22种中文方言。这意味着,四川话、广东话、上海话、

前端实战:手把手教你实现浏览器通知功能

前端实战:手把手教你实现浏览器通知功能

前端入门:浏览器通知功能从0到1实现指南 作为前端学习者,你可能见过这样的场景:打开网页版聊天工具,就算把浏览器最小化,桌面也会弹出“新消息”提醒;或者某些网站的活动通知,会直接显示在电脑/手机桌面上。这种功能就是「浏览器桌面通知」,今天我们就从零开始,搞懂它、学会用它。 一、先搞懂3个基础问题 1. 什么是浏览器桌面通知? 简单说,就是网页能在浏览器窗口外面(比如电脑桌面、手机屏幕)给你发提醒。哪怕浏览器最小化、甚至页面切到后台,只要权限允许,都能收到通知,不用一直盯着网页。 2. 什么时候会用到它? 常见场景很贴近日常: * 网页版微信/QQ的新消息提醒; * 工作系统的审批提醒、任务到期通知; * 电商网站的订单状态更新(比如“你的快递已发货”); * 新闻/小说网站的订阅内容更新提醒。 3. 用起来难吗?有什么限制? 不难!核心就2步:先让用户同意开启通知(申请权限)

前端Vue3基础教程超全——下载学习2026.2.5-2.9

一、Vue简介(什么是Vue,为什么选择Vue,开发前的准备) 1.Vue是一款优秀的前端渐进式框架,是目前企业主流的框架技术需求,并且学习难度低。 2.它基于标准的HTML、CSS、JS构建,并提供一套声明式、组件化的编程模型。 3.渐进式框架:是一个框架,也是一个生态。可以某个功能单个、模块中使用,甚至在完整的项目中使用。 4.Vue官方文档: 简介 | Vue.jshttps://cn.vuejs.org/guide/introduction5.Vue API风格:选项式API和组合式API(两种风格不一样但是实现的效果是一致的) 选项式API(Vue2): <script> export default { data() { return { count: 0 } }, methods: { increment() { this.

【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦

【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦

目录 【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦 一、为什么要做全局错误处理? 1、将业务逻辑与错误处理解耦 2、为监控和埋点提供统一入口 二、Vue 中的基础全局错误处理方式 1、Vue 中全局错误处理写法 2、它会捕获哪些错误? 3、它不会捕获哪些错误? 4、errorHandler 的参数含义 三、全局错误处理的进阶设计 1、定义“可识别的业务错误” 2、在 errorHandler 中做真正的“分类处理” 3、补齐 Promise reject 的捕获能力 4、错误处理的策略化封装 四、结语         作者:watermelo37         ZEEKLOG优质创作者、华为云云享专家、阿里云专家博主、腾讯云“