前言
做后台系统,审批流这块几乎绕不开。
以前用Activiti或者Flowable,功能确实强,但光建表就几十张,配个流程还得画BPMN图,学习成本不低。本文分享一个国产开源项目,第一感觉是"轻"——整个数据库只有8张表,流程定义用JSON存,设计流程全靠拖拽。刚好最近有个小项目要用审批,就拿它试了试,跑下来挺顺畅,写篇东西记录一下。
项目介绍
一款国产开源的工作流平台,官方给它的定位是"轻量、快速"。它既可以独立作为在线办公系统用,也能当工作流引擎嵌到别的业务系统里。
比较接地气的一点是,它把国内办公常见的审批玩法都支持了:退回、跳转、驳回、前加签、后加签,这些"中国式流程"开箱即用。
项目地址:https://gitee.com/yang-jiong/esflow-ui
演示地址:http://120.79.67.190:8002/#/login(账号admin,密码Super@2023)
项目功能
登录与权限控制:基于SaToken做的身份认证和会话管理
表定义与字段配置:支持动态创建业务数据表,字段类型包括文本、数字、日期、下拉框等
表单管理:可视化拖拽设计表单,支持编辑、预览、发布
流程定义:通过图形化编辑器拖拽节点,配置审批路径和分支条件
工单管理:发起申请、查看待办/已办任务
流程跟踪:实时查看流程图进度,以时间轴展示审批过程
催办:支持对长时间未处理的任务进行催办提醒
项目特点
数据库表极少:整个系统只有8张核心表,部署和运维负担小很多
流程定义用JSON存:比起BPMN的XML,JSON更轻量,也方便做版本管理
支持中国式审批:退回、驳回、加签这些操作,不用自己写额外逻辑去适配
零代码配置:流程设计、表单设计都靠拖拽,不用写一行前端代码
前后端分离:后端提供标准RESTful API,方便集成
启动即用:内置Flyway,启动时自动初始化数据库,基本开箱即用
技术栈较新:前端Vue3+Vite+TypeScript,后端Spring Boot+JDK17
项目技术
层级 | 技术选型 |
前端框架 | Vue 3.5+、Vite 6.0+ |
UI组件库 | Element Plus 2.9+ |
前端语言 | TypeScript 5.7+ |
后端框架 | Spring Boot 2.7+、JDK17 |
ORM框架 | Mybatis Plus |
权限验证 | SaToken |
表管理 | AnyLine |
项目基础 | Pure Admin开源版 |
项目代码
拉代码跑起来不复杂:
git clone https://gitee.com/yang-jiong/esflow-ui.gitpnpm installpnpm run dev后端需要先创建MySQL数据库,然后改一下application-dev.yml里的数据库连接信息。项目用了Flyway做数据库版本管理,启动时会自动执行初始化脚本,把8张表建好。
有一点要注意:pom.xml里有个<lib.path>配置,需要改成你本地lib文件夹的绝对路径,不然编译会报错。
项目效果
登录演示地址后,整体界面比较清爽。左侧菜单把表定义、表单、流程、工单这几个模块分得很清楚。
实际操作下来,从零搭一个审批流程大概分三步:先建表定义业务字段,再设计表单页面,最后拖拽画流程。流程设计器支持拉拽节点、连线,设置审批人类型(指定人、角色、部门负责人等),条件分支也支持。
演示系统里有一些预设数据,可以直接发起一个工单试试。审批过程中能看到流程图实时高亮当前节点,退回、加签这些操作在审批界面都有对应按钮,不用额外配置。
项目源码
前端:https://gitee.com/yang-jiong/esflow-ui
后端:https://gitee.com/yang-jiong/esflow
总结
项目不是一个追求大而全的重型BPM平台,它更像是一个"够用就好"的轻量级解决方案。8张表的结构让部署和维护都比较简单,拖拽式的流程设计也降低了使用门槛。
如果你只是需要在项目里快速加一套审批功能,或者想给中小团队搭一个OA基础平台,同时又不想被复杂的工作流框架折腾,这个项目值得花点时间看看。
关键词
作者:小码编匠
出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!
方便大家交流、资源共享和共同成长
纯技术交流群、需要的小伙伴请扫码
有收获?不妨分享让更多人受益
关注「程序员开源栈」,共同提升技术实力
</lib.path>
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!