9k+ star!一款灵活的流程图框架,大厂都在用!

职场   2025-01-24 12:43   浙江  

大家好,我是开源小星呀!

在我们的开发工作中,经常会有一些需要编辑或者展示流程图的场景,例如在业务系统中需要定义和展示不同工单类型的业务流程,在人力资源管理系统中需要定义人员入职、离职、调岗等人资管理流程。这些系统中需要用到的流程图编辑和展示功能,如果全部由自己开发,那么会费时费力,到最后可能还不好用。

今天给大家介绍的这款开源流程图编辑框架——LogicFlow,也许可以帮你解决大部分的流程图绘制问题。

项目介绍

LogicFlow是一款由滴滴客服技术团队开源的流程图编辑框架,它提供了一系列流程图交互、编辑所必需的功能和简单灵活的节点自定义、插件等拓展机制,支持前端研发自定义开发各种逻辑编排场景,如流程图、ER图、BPMN流程等,在工作审批配置、机器人逻辑编排、无代码平台流程配置等方面有较好的应用。

一些大厂,例如美团、京东、华为,在他们的项目中,也经常会出现LogicFlow的身影。说实在,这个流程图框架确实是挺好用的,在github上拥有超过9k个星星,npm下载量累计超过300k,小星给大家强烈推荐了!

如何使用

首先通过npm安装:

# npm
$ npm install @logicflow/core @logicflow/extension --save

# yarn
$ yarn add @logicflow/core @logicflow/extension

# pnpm
$ pnpm add @logicflow/core @logicflow/extension

然后就创建一个流程图实例,并在画布上渲染:

<!-- LogicFlow 容器 DOM-->
<div id="container"></div>;
// 准备数据
const data = {
// 节点
nodes: [
    {
      id'21',
      type'rect',
      x100,
      y200,
      text'矩形节点',
    },
    {
      id'50',
      type'circle',
      x300,
      y400,
      text'圆形节点',
    },
  ],
// 边
edges: [
    {
      type'polyline',
      sourceNodeId'50',
      targetNodeId'21',
    },
  ],
};
// 渲染画布
const lf = new LogicFlow({
containerdocument.querySelector('#container'),
width700,
height600,
});

lf.render(data);

基础用法还是很简单,接口很直观,没有弯弯绕绕的东西,这给开发者留下了不错的第一印象。

应用场景

流程设计工具

在企业级应用中,LogicFlow可以用来设计工作流、业务流程等,帮助用户可视化地创建和管理复杂的业务流程。

下面是一个审批流程的例子。

组织架构图

LogicFlow可以用来绘制公司的组织架构图,展示公司内部各部门及其人员的关系。

比赛晋级图

LogicFlow可以轻松绘制各类比赛的人员晋级情况图,并在上面预言一下今年世界赛小组赛晋级情况。

在Vue中使用LogicFlow

下面是一个在Vue中使用LogicFlow的完整例子,编辑功能比较完整,包括添加删除节点、放大缩小画布和导出图片等基本功能。

最后,我来分享一下LogicFlow的架构设计特点。

  • 面向对象的设计模式:LogicFlow内部做好封装,用户可以做继承、重写接口,这样开发者可以对LogicFlow底层进行扩展。
  • 灵活的方法设计:方法有固定类型的输入和输出,提供LogicFlow.use(fn)在原型上拓展方法。
  • 观察者模式:通过on方法供宿主订阅各类内部事件。
  • 数据定制:节点、线的自定义业务属性以及流程图导出的数据都可以定制。
  • 插件化:支持节点和线的二次开发,可开发UI组件注册到LogicFlow的组件画布内。

开源地址:

https://github.com/didi/LogicFlow

官方网站:

https://site.logic-flow.cn/


前端新世界
关注前端技术,分享互联网热点
 最新文章