xDocxDoc
AI
前端
后端
iOS
Android
Flutter
AI
前端
后端
iOS
Android
Flutter
  • 滴滴开源流程图框架 LogicFlow2.0

🚀 一、LogicFlow 技术定位与核心价值

LogicFlow 是滴滴开源的业务流程可视化框架,专注于提供流程图编辑、节点自定义与逻辑编排能力,目标是通过轻量级内核+积木式扩展解决企业级流程建模问题。其核心优势包括:

  1. 语义化流程建模:每个图元(节点/连线)绑定明确业务语义(如审批节点、API调用节点),区别于通用图形引擎(如 G6、ReactFlow)。
  2. 分层架构设计:
    • 核心层(@logicflow/core):基础图渲染、事件交互、节点管理;
    • 扩展层(@logicflow/extension):插件化增强(BPMN规范、自动布局、调试器)。
  3. 跨框架适配:通过 @logicflow/vue 或 @logicflow/react 无缝嵌入主流前端框架。

⚙️ 二、2.0 版本升级亮点

1. 核心能力增强

  • 自定义节点简化:
    // 1.x 需继承类重写 | 2.0 通过 properties 直接配置
    lf.registerNode('custom-node', {
      width: 120, // 直接定义宽高
      height: 60,
      style: { fill: '#f0f5ff' } // 样式直配
    });
  • 节点 Resize 内置:无需插件,全局启用 allowResize 或节点配置 resizable: true 即可缩放。
  • 事件与状态优化:修复触摸板事件、静默模式快捷键失效等问题,提升交互稳定性。

2. 插件生态升级

插件升级内容
Label支持富文本编辑,节点可配置多文本标签(如条件节点显示表达式)
DynamicGroup替代旧版 Group 插件,解决 API 命名缺陷,支持动态节点分组
小地图重构实现逻辑,提升预览流畅度,减少画布移动性能消耗

3. 开发体验优化

  • 官网门户:支持在线调试画布,文档增加锚点导航与分类 API;
  • 自定义节点扩展包:
    • @logicflow/react-node-registry / @logicflow/vue-node-registry:
      import { register } from '@logicflow/vue-node-registry';
      register({ type: 'start-node', component: VueStartNode }, lf); // 直接注册 Vue 组件节点

🏢 三、企业级实践案例

1. 滴滴内部应用

  • 风控系统:日均处理 20 万+审批流,配置效率提升 40%;
  • 客服工单系统:支持 7000+H5 页面动态配置,故障率降低 60%。

2. 外部标杆场景

  • 美团/京东:用于供应链管理、仓储调度系统,集成 BPMN 规范节点;
  • 零代码平台:
    • 逻辑单元抽象:事件节点(JS 监听)、数据节点(Ajax 请求)、行为节点(修改组件属性);
    • 执行器引擎(LogicFlow Engine):
      class ApiTaskNode extends TaskNode {
        async action() {
          const res = await fetch(this.props.apiUrl); // 节点执行逻辑
          this.updateData(res);
        }
      }
    • 调试器支持:实时追踪节点执行路径,查看运行时数据。

🛠️ 四、开发实战指南(Vue3 集成)

<template>
  <div ref="container" class="lf-container"></div>
</template>

<script setup>
import { ref, onMounted } from 'vue';
import LogicFlow from '@logicflow/core';
import { register } from '@logicflow/vue-node-registry';
import CustomNode from './CustomNode.vue'; // Vue 自定义节点组件

const container = ref(null);
onMounted(() => {
  const lf = new LogicFlow({
    container: container.value,
    grid: true,
    plugins: [BpmnElement] // 启用 BPMN 插件
  });
  
  // 注册 Vue 自定义节点
  register({ type: 'custom-node', component: CustomNode }, lf);
  
  // 监听事件
  lf.on('edge:mouseenter', ({ data }) => {
    lf.setEdgeType(data.id, 'highlight-edge'); // 悬停高亮连线
  });
  
  lf.render(jsonData); // 渲染初始流程图
});
</script>

关键配置项:

  • partial: true:启用局部渲染优化性能;
  • edgeType: 'bezier':贝塞尔曲线连线;
  • nodeTextEdit: false:禁用节点文本编辑。

💎 五、总结:LogicFlow 的差异化价值

维度LogicFlow 优势对比竞品
业务适配语义化节点 + 流程校验机制BPMN.js 冗余,G6 需自建语义模型
扩展能力插件化扩展(AI布局/调试器)+ 多框架支持ReactFlow 无流程语义支持
性能优化虚拟渲染千级节点 + 局部渲染策略Canvas 引擎在大数据量下更优
开发效率Vue/React 组件直注册 + JSON 协议标准化BPMN.js 学习曲线陡峭

未来方向:

  • 低代码深度集成:强化逻辑编排与表单/数据源的联动;
  • 云原生流程引擎:与 Kubernetes 工作流引擎(如 Argo)对接。

实践建议:金融/电商场景优先采用 BPMN 插件保障合规性,内部工具可结合零代码实现页面逻辑编排。

更多案例可访问 https://cwcode.top 或 LogicFlow https://github.com/didi/LogicFlow。

最后更新: 2025/8/26 10:07