LogicFlow 与 Turbo接口配合使用,用于流程配置及管理,根据前端配置流程图生成固定格式数据,这种格式可以被Turbo执行侧识别并被驱动执行
由于Logicflow默认的数据格式和Turbo默认的数据格式存在一定差异。所以我们需要使用TurboAdapter来实现将Logicflow的数据格式与Turbo数据格式的相互转换。TurboAdapter已经被封装为一个插件,所以直接当做插件使用即可
import LogicFlow from '@logicflow/core'
import { BpmnElement } from '@logicflow/extension'
import '@logicflow/core/dist/style/index.css'
import '@logicflow/extension/lib/style/index.css'
import turboAdapter from './turboAdapter'
this.lf = new LogicFlow({
// ...
plugins: [
BpmnElement,
turboAdapter,
]
})
如上源码所示:TurboAdapter默认将Turbo数据转换为bpmn节点,在实际项目中,可以完全自定义节点,而不是使用bpmn节点。具体用法请参考LogicFlow自定义节点(http://logic-flow.org/guide/basic/node.html) 插件代码以及文档地址:https://github.com/Logic-Flow/turbo-client
后端提供样例接口包含创建流程接口,保存流程模型接口,发布流程接口,查询单个流程接口,查询流程列表接口,使用方可以根据自身业务特点合理编排使用。代码参考 FlowController FlowControllerTest
a: 后端服务打包并启动
打包命令 mvn install; 启动命令 nohup java -jar demo-1.0.0-SNAPSHOT.jar > test.txt &;
b: 后端服务启动完成后,将前端代码中.env.development中的VITE_SERVER_ADDR地址改成后端服务地址;
c: 前端代码安装依赖并启动
安装依赖命令 npm install ; 启动命令 npm run dev;
d: 最后根据日志中提示地址访问即可
整体配置流程为 新建流程---> 编辑流程图---> 保存流程信息--->发布流程
用户任务节点(使用方执行任务的节点,比如需要用户提交信息)需要使用方实现。如果流程图中用到网关节点,则根据业务需要添加groovy表达式来决定流程走向,表达式中参数需要使用方传递
上述4步操作完成以后,流程图处于已发布状态(列表中可以根据流程名称查询流程信息),配置侧操作完成,可以驱动执行,具体样例参考 LeaveServiceImpl AfterSaleServiceImpl