# cursor-code **Repository Path**: kuangyubo/cursor-code ## Basic Information - **Project Name**: cursor-code - **Description**: 全程基于cursor生成的代码 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-11 - **Last Updated**: 2025-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 审批流系统 基于 Spring Boot + Flowable + Vue + Element UI 的仿钉钉审批流系统 ## 项目结构 ``` cursor-test/ ├── backend/ # 后端项目 │ ├── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/approval/ │ │ │ ├── entity/ # 实体类 │ │ │ ├── repository/ # 数据访问层 │ │ │ ├── service/ # 业务逻辑层 │ │ │ ├── controller/ # 控制器层 │ │ │ ├── config/ # 配置类 │ │ │ ├── security/ # 安全认证 │ │ │ ├── dto/ # 数据传输对象 │ │ │ └── ApprovalSystemApplication.java │ │ └── resources/ │ │ └── application.yml │ └── pom.xml │ └── frontend/ # 前端项目 ├── public/ ├── src/ │ ├── api/ # API接口 │ ├── assets/ # 静态资源 │ ├── components/ # 公共组件 │ ├── layout/ # 布局组件 │ ├── router/ # 路由配置 │ ├── store/ # Vuex状态管理 │ ├── utils/ # 工具类 │ ├── views/ # 页面组件 │ ├── App.vue │ └── main.js ├── package.json └── vue.config.js ``` ## 技术栈 ### 后端 - **Spring Boot 2.7.14**: 核心框架 - **Flowable 6.8.0**: 工作流引擎 - **Spring Security + JWT**: 安全认证 - **Spring Data JPA**: 数据持久化 - **MySQL 8.0**: 数据库 - **Lombok**: 简化代码 ### 前端 - **Vue 2.6**: 前端框架 - **Vue Router**: 路由管理 - **Vuex**: 状态管理 - **Element UI**: UI组件库 - **Axios**: HTTP客户端 - **vuedraggable**: 拖拽组件 ## 功能特性 ### 1. 用户管理 - 用户注册/登录 - JWT Token认证 - 权限控制 ### 2. 流程管理 - 流程创建/编辑/删除 - 可视化流程设计器 - 动态表单设计器 - 流程分类管理 - 流程启用/禁用 ### 3. 审批功能 - 发起审批 - 待办任务处理 - 已办任务查看 - 我的申请管理 - 审批撤销 - 审批详情查看 - 审批流程跟踪 ### 4. 流程设计 - 节点拖拽设计 - 审批人设置 - 流程连线 - 自动部署到Flowable ### 5. 表单设计 - 动态表单配置 - 多种字段类型: - 单行文本 - 多行文本 - 数字 - 日期 - 下拉选择 ## 快速开始 ### 环境要求 - JDK 1.8+ - Maven 3.6+ - Node.js 14+ - MySQL 8.0+ ### 后端启动 1. 创建数据库 ```sql CREATE DATABASE approval_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 修改配置文件 编辑 `backend/src/main/resources/application.yml`,配置数据库连接: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/approval_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: root password: your_password ``` 3. 安装依赖并启动 ```bash cd backend mvn clean install mvn spring-boot:run ``` 后端服务将在 http://localhost:8080/api 启动 ### 前端启动 1. 安装依赖 ```bash cd frontend npm install ``` 2. 启动开发服务器 ```bash npm run serve ``` 前端应用将在 http://localhost:8081 启动 ## 使用说明 ### 1. 注册登录 - 访问 http://localhost:8081 - 点击"立即注册"创建账号 - 使用注册的账号登录系统 ### 2. 创建流程 1. 进入"流程管理"页面 2. 点击"创建流程" 3. 填写流程基本信息 4. 点击"设计表单"配置申请表单 5. 点击"设计流程"配置审批节点和审批人 6. 保存流程 ### 3. 发起审批 1. 在首页选择要发起的流程 2. 填写申请表单 3. 提交审批 ### 4. 处理审批 1. 进入"待办任务"页面 2. 点击"处理"按钮 3. 填写审批意见 4. 选择"同意"或"拒绝" ### 5. 查看审批 - **我的申请**: 查看自己发起的所有审批 - **已办任务**: 查看已处理的审批任务 - **审批详情**: 查看完整的审批流程和历史记录 ## 默认配置 ### 数据库配置 - 数据库名称: `approval_db` - 用户名: `root` - 密码: `root`(请根据实际情况修改) ### JWT配置 - 密钥: `approval-system-secret-key-2025` - 过期时间: 24小时 ### 端口配置 - 后端端口: 8080 - 前端端口: 8081 ## API文档 ### 认证接口 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/register` - 用户注册 - `GET /api/auth/current` - 获取当前用户 ### 流程接口 - `GET /api/processes` - 获取所有流程 - `GET /api/processes/active` - 获取启用的流程 - `GET /api/processes/{id}` - 获取流程详情 - `POST /api/processes` - 创建流程 - `PUT /api/processes/{id}` - 更新流程 - `DELETE /api/processes/{id}` - 删除流程 ### 审批接口 - `POST /api/instances/start` - 发起审批 - `POST /api/instances/complete` - 处理任务 - `GET /api/instances/my-applications` - 我的申请 - `GET /api/instances/my-tasks` - 待办任务 - `GET /api/instances/my-completed-tasks` - 已办任务 - `GET /api/instances/{id}` - 审批详情 - `POST /api/instances/{id}/cancel` - 撤销审批 ### 用户接口 - `GET /api/users` - 获取所有用户 - `GET /api/users/{id}` - 获取用户详情 ## 数据库表结构 ### 业务表 - `sys_user` - 用户表 - `approval_process` - 审批流程表 - `approval_instance` - 审批实例表 - `approval_task` - 审批任务表 ### Flowable表 系统会自动创建Flowable所需的表,包括: - `act_re_*` - 流程定义相关表 - `act_ru_*` - 运行时表 - `act_hi_*` - 历史记录表 - 等其他Flowable相关表 ## 注意事项 1. **首次启动**: 系统首次启动时会自动创建数据库表结构 2. **数据库权限**: 确保数据库用户有创建表的权限 3. **端口占用**: 确保8080和8081端口未被占用 4. **跨域配置**: 已配置CORS,开发环境可直接使用 5. **JWT Token**: Token存储在Cookie中,有效期24小时 ## 开发建议 ### 后端开发 - 使用IDEA或Eclipse导入Maven项目 - 安装Lombok插件 - 使用Postman测试API ### 前端开发 - 使用VS Code或WebStorm开发 - 安装Vue.js devtools浏览器插件 - 使用Chrome DevTools调试 ## 常见问题 ### 1. 数据库连接失败 检查MySQL服务是否启动,用户名密码是否正确 ### 2. 前端无法访问后端 检查后端是否启动,端口是否正确 ### 3. JWT Token过期 重新登录获取新的Token ### 4. Flowable表未创建 检查数据库用户权限,确保有创建表的权限 ## 后续优化 - [ ] 添加流程图可视化展示 - [ ] 支持会签、或签等复杂审批模式 - [ ] 添加消息通知功能 - [ ] 支持文件附件上传 - [ ] 添加审批统计分析 - [ ] 支持流程版本管理 - [ ] 添加流程模板市场 ## 许可证 MIT License ## 联系方式 如有问题,欢迎提Issue或PR --- **祝您使用愉快!** 🎉