扫一扫分享
LogicFlow 是一款流程图编辑框架,提供了一系列流程图交互、编辑所必需的功能和简单灵活的节点自定义、插件等拓展机制,方便我们快速在业务系统内满足类流程图的需求。
核心优势总结为 3 点,新手也能快速 get:
LogicFlow 不是单一工具,而是适配多业务场景的 “流程图解决方案”,尤其适合这些需求:
举个真实案例:某企业 OA 系统用 LogicFlow 重构后,流程配置页面开发周期从 15 天缩短至 3 天,后续新增流程类型仅需扩展自定义节点,无需修改核心逻辑。
既然是轻量化插件库,引入和使用也不很简单,跟着步骤就能快速实现一个简单流程图:
1. 安装依赖(以 npm 为例)
# 核心库
npm install @logicflow/core --save
# 基础样式(可选)
npm install @logicflow/theme --save2. 简单示例(Vue 3 为例)
<template>
<div id="flow-container"></div>
</template>
<script setup>
import { onMounted } from 'vue';
import { LogicFlow } from '@logicflow/core';
import '@logicflow/theme';
onMounted(() => {
// 初始化实例
const lf = new LogicFlow({
container: document.getElementById('flow-container'),
grid: true // 显示网格
});
// 添加节点
lf.addNode({
id: 'node1',
type: 'rect', // 矩形节点
x: 100,
y: 100,
text: '开始'
});
lf.addNode({
id: 'node2',
type: 'rect',
x: 400,
y: 100,
text: '结束'
});
// 添加连线
lf.addEdge({
sourceNodeId: 'node1',
targetNodeId: 'node2',
text: '流程流转'
});
// 渲染
lf.render();
});
</script>3. 关键配置说明
容器:必须指定宽高,否则无法正常渲染;
节点类型:内置 rect(矩形)、circle(圆形)、diamond(菱形)等基础类型,支持自定义;
交互:默认支持节点拖拽、连线编辑,可通过 stopDefaultBehavior 禁用默认交互。
1. 自定义节点样式
如果内置节点满足不了需求,可通过 registerNode 扩展:
// 自定义一个“审批节点”
lf.registerNode('approval-node', {
extends: 'rect', // 继承矩形节点
style: {
fill: '#e8f4f8',
stroke: '#4299e1',
strokeWidth: 2
},
// 自定义图标
icon: {
type: 'svg',
svg: '<svg width="20" height="20" viewBox="0 0 24 24"><path d="M12 2L2 7l10 5 10-5-10-5z"/></svg>'
}
});2. 监听事件,实现业务逻辑
LogicFlow 提供丰富的事件钩子,比如节点点击、连线变化:
// 监听节点点击
lf.on('node:click', (data) => {
console.log('点击了节点:', data.node.id);
// 这里可触发弹窗、表单编辑等业务逻辑
});
// 监听连线完成
lf.on('edge:add', (data) => {
console.log('新增连线:', data.edge);
// 校验连线合法性、保存到后端等
});3. 导出与导入
支持将流程图导出为 JSON,或从 JSON 恢复:
// 导出
const flowData = lf.getGraphData();
// 导入
lf.render(flowData);仅供个人学习参考/导航指引使用,具体请以第三方网站说明为准,本站不提供任何专业建议。如果地址失效或描述有误,请联系站长反馈~感谢您的理解与支持!
手机预览