# workflow **Repository Path**: scbsnm/workflow ## Basic Information - **Project Name**: workflow - **Description**: 工作流 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2026-05-15 - **Last Updated**: 2026-05-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: 工作流, 动态表单 ## README # Low-Code 工作流平台 一个基于低代码理念构建的工作流管理平台,集成了数据模型设计、表单设计、流程设计和流程引擎等核心功能,支持快速搭建企业级业务流程应用。 ## 功能特性 - **数据模型管理**:支持创建项目和数据库表,可视化设计字段、索引及表间关系(ER图) - **表单设计器**:通过拖拽配置快速生成表单,支持多种组件类型(输入框、下拉框、日期选择器等)和字典绑定 - **流程设计器**:可视化设计审批流程,支持开始节点、表单节点、审批节点、条件分支节点和结束节点 - **流程引擎**:支持流程发起、任务流转、条件判断、审批(同意/拒绝)、抄送等功能 - **数据管理**:表单数据录入与历史数据查看,支持文件附件上传 - **系统管理**:用户管理、部门管理、角色管理、数据字典管理 - **JWT 认证**:基于 Token 的用户认证与权限控制 ## 软件架构 | 层级 | 技术栈 | |------|--------| | 前端 | Vue 2.7 + Element UI + Vue Router + Vuex + ECharts + Axios | | 后端 | Spring Boot 2.7 + MyBatis Plus 3.5 + JWT + Spring Security Crypto | | 数据库 | MySQL 8.0 | | 构建工具 | Maven(后端)/ Vue CLI(前端) | ``` frontend/ -- Vue 2 前端项目 backend/ -- Spring Boot 后端项目 database/ -- 数据库初始化脚本 ``` ## 安装教程 ### 环境要求 - JDK 1.8+ - Maven 3.6+ - Node.js 16+ - MySQL 8.0+ ### 1. 初始化数据库 执行 `database/init.sql` 脚本,创建数据库并导入初始数据: ```sql source database/init.sql; ``` 默认数据库连接信息: - 数据库:`workflow` 如需修改,编辑 `backend/src/main/resources/application.yml` 中的数据库配置。 ### 2. 启动后端服务 ```bash cd backend mvn clean package -DskipTests java -jar target/workflow-backend-1.0.0.jar ``` 服务默认运行在 `http://localhost:8080/api`。 ### 3. 启动前端服务 ```bash cd frontend npm install npm run serve ``` 前端开发服务器默认运行在 `http://localhost:8081`。 ### 4. 访问系统 打开浏览器访问 `http://localhost:8081`,使用以下账号登录: | 账号 | 密码 | 角色 | |------|------|------| | admin | 123456 | 管理员 | | zhangsan | 123456 | 普通用户 | | lisi | 123456 | 审批人 | ## 使用说明 ### 模型管理 1. 进入「模型管理 → 项目与数据表」,创建项目并添加数据表 2. 在数据表中定义字段,设置数据类型、长度、主键等属性 3. 通过 ER 图视图查看和管理表之间的关系 ### 表单管理 1. 进入「表单管理 → 表单设计器」,新建表单并关联数据表 2. 拖拽字段到表单布局区域,配置组件类型、校验规则等 3. 发布表单后,系统会自动生成对应的数据录入页面 ### 工作流管理 1. 进入「工作流管理 → 流程定义列表」,新建流程定义 2. 在流程设计器中拖拽节点,配置审批人(按角色/部门/上级)和表单 3. 设置条件分支:例如根据请假天数自动路由到不同审批人 4. 发布流程后,用户即可发起流程实例 ### 流程处理 1. 发起人在「表单管理 → 数据录入」中选择关联流程的表单提交数据 2. 审批人在「工作流管理 → 我的待办」中查看待审批任务 3. 选择同意或拒绝,填写审批意见后提交 4. 在「我的已办」和「我发起的」中查看历史记录 ## 项目结构 ``` workflow/ ├── backend/ # Spring Boot 后端 │ ├── src/main/java/com/workflow/ │ │ ├── common/ # 通用响应类 │ │ ├── config/ # 配置(安全、JWT、数据库初始化) │ │ ├── controller/ # REST 控制器 │ │ ├── dto/ # 数据传输对象 │ │ ├── entity/ # 实体类 │ │ ├── mapper/ # MyBatis Plus Mapper │ │ ├── service/ # 业务逻辑接口与实现 │ │ │ ├── WorkflowEngine.java # 流程引擎核心 │ │ │ ├── ConditionEvaluator.java # 条件判断器 │ │ │ └── AssigneeResolver.java # 审批人解析器 │ │ └── util/ # 工具类 │ └── src/main/resources/ │ └── application.yml # 应用配置 ├── frontend/ # Vue 2 前端 │ └── src/ │ ├── api/ # API 接口层 │ ├── components/ # 通用组件(ER图、字段表单等) │ ├── views/ # 页面视图 │ │ ├── ModelDesigner.vue # 数据模型设计器 │ │ ├── FormDesigner.vue # 表单设计器 │ │ ├── WorkflowDesigner.vue # 流程设计器 │ │ ├── WorkflowTodo.vue # 我的待办 │ │ ├── WorkflowDone.vue # 我的已办 │ │ └── ... # 其他页面 │ ├── router/ # 路由配置 │ ├── store/ # Vuex 状态管理 │ └── utils/ # 工具函数 └── database/ └── init.sql # 数据库初始化脚本(含示例数据) ``` ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request