开源一个 Flowable 版 BPMN 设计器:vue-bpmn-designer
大家好,我最近把一个自己长期在维护的流程设计器开源了:vue-bpmn-designer。
它是一个基于 Vue 3 + Vite 6 + TypeScript + bpmn-js 的现代化 BPMN 设计器,重点面向 Flowable 场景。
- 在线预览: tsai996.github.io/vue-bpmn-de…
- GitHub: github.com/tsai996/vue…
- Gitee: gitee.com/cai_xiao_fe…
为什么做这个项目?
很多同学在做工作流平台时都会遇到这些问题:
- 原生
bpmn-js可用,但业务侧改造成本高。 - Flowable 扩展字段多,属性面板要自己补大量逻辑。
- 校验、模拟、小地图、网格、节点扩展等能力要自己拼装。
- 前端工程化与类型系统不统一,后期维护成本高。
vue-bpmn-designer 的目标就是:
把“可用的 BPMN 编辑器”提升到“可落地的 Flowable 流程设计器”。
项目亮点
1. Flowable 深度适配
- 内置 Flowable moddle 扩展(
flowable:前缀)。 - 面向 Flowable 的任务类型和属性配置能力更完整。
2. 开箱即用的流程设计能力
- 画布编辑、导入导出 XML、导出 SVG。
- 撤销/重做、自动布局、缩放、适配视口。
- 网格背景、小地图、深色模式切换。
3. 内置流程质量保障
- 集成
bpmn-js-bpmnlint,支持实时规则校验。 - 内置一组规则(如节点标签、连线约束、事件配置等),减少“能画不能跑”的流程。
4. 可扩展性强
- 自定义 Palette、ContextPad、PopupMenu、Renderer、Replace。
- 属性面板按节点类型动态渲染,便于二开和业务扩展。
5. 现代前端工程栈
- Vue 3 + TS + Pinia + Element Plus + SCSS。
- 自动导入(
unplugin-auto-import/unplugin-vue-components)。 - 内置 ESLint + Prettier + 类型检查流程。
适用场景
- 自研工作流平台(BPMN 在线建模)。
- OA/审批/低代码平台流程设计模块。
- Flowable 项目中台化、可视化配置建设。
- 需要“可二开”的 BPMN 前端底座。
快速开始
# 1) 克隆项目
git clone https://github.com/tsai996/vue-bpmn-designer.git
# 2) 进入目录
cd vue-bpmn-designer
# 3) 安装依赖(仅 pnpm)
pnpm install
# 4) 启动开发
pnpm dev
设计理念(给二开同学)
在 BPMN 编辑这类场景里,我比较坚持两点:
-
模型操作必须走
modeling命令体系
这样撤销栈、重做、事件流、联动渲染才能保持一致。 -
属性编辑与节点语义解耦
通过组件化面板 + 类型化上下文,扩展新节点和新业务字段时更稳。
下一步计划
- 持续补充更多 Flowable 业务面板与规则。
- 增强多语言和配置化能力。
- 提供更完整的嵌入式接入示例(用于业务系统快速集成)。
欢迎交流与共建
如果你正在做流程平台,或者也在折腾 BPMN / Flowable,欢迎来交流:
- 点个 Star 支持一下项目持续迭代。
- 提 Issue / PR 一起完善能力边界。
- 也欢迎分享你们的业务场景,我会优先补齐高频需求。
项目地址再次放一下:
- GitHub: github.com/tsai996/vue…
- Gitee: gitee.com/cai_xiao_fe…