first commit
53
.gitignore
vendored
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
######################################################################
|
||||||
|
# Build Tools
|
||||||
|
|
||||||
|
.gradle
|
||||||
|
/build/
|
||||||
|
!gradle/wrapper/gradle-wrapper.jar
|
||||||
|
|
||||||
|
target/
|
||||||
|
!.mvn/wrapper/maven-wrapper.jar
|
||||||
|
|
||||||
|
.flattened-pom.xml
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
# IDE
|
||||||
|
|
||||||
|
### STS ###
|
||||||
|
.apt_generated
|
||||||
|
.classpath
|
||||||
|
.factorypath
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
.springBeans
|
||||||
|
|
||||||
|
### IntelliJ IDEA ###
|
||||||
|
.idea
|
||||||
|
*.iws
|
||||||
|
*.iml
|
||||||
|
*.ipr
|
||||||
|
|
||||||
|
### NetBeans ###
|
||||||
|
nbproject/private/
|
||||||
|
build/*
|
||||||
|
nbbuild/
|
||||||
|
dist/
|
||||||
|
nbdist/
|
||||||
|
.nb-gradle/
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
# Others
|
||||||
|
*.log
|
||||||
|
*.xml.versionsBackup
|
||||||
|
*.swp
|
||||||
|
|
||||||
|
!*/build/*.java
|
||||||
|
!*/build/*.html
|
||||||
|
!*/build/*.xml
|
||||||
|
|
||||||
|
### JRebel ###
|
||||||
|
rebel.xml
|
||||||
|
|
||||||
|
application-my.yaml
|
||||||
|
|
||||||
|
/yudao-ui-app/unpackage/
|
BIN
.image/Java监控.jpg
Normal file
After Width: | Height: | Size: 112 KiB |
BIN
.image/MySQL.jpg
Normal file
After Width: | Height: | Size: 142 KiB |
BIN
.image/OA请假-列表.jpg
Normal file
After Width: | Height: | Size: 152 KiB |
BIN
.image/OA请假-发起.jpg
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
.image/OA请假-详情.jpg
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
.image/Redis.jpg
Normal file
After Width: | Height: | Size: 95 KiB |
BIN
.image/admin-uniapp/01.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
.image/admin-uniapp/02.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
.image/admin-uniapp/03.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
.image/admin-uniapp/04.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
.image/admin-uniapp/05.png
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
.image/admin-uniapp/06.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
.image/admin-uniapp/07.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
.image/admin-uniapp/08.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
.image/admin-uniapp/09.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
BIN
.image/common/ai-feature.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
.image/common/ai-preview.gif
Normal file
After Width: | Height: | Size: 348 KiB |
BIN
.image/common/bpm-feature.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
.image/common/crm-feature.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
.image/common/erp-feature.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
.image/common/infra-feature.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
.image/common/mall-feature.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
.image/common/mall-preview.png
Normal file
After Width: | Height: | Size: 204 KiB |
BIN
.image/common/project-vs.png
Normal file
After Width: | Height: | Size: 139 KiB |
BIN
.image/common/ruoyi-vue-pro-architecture.png
Normal file
After Width: | Height: | Size: 69 KiB |
BIN
.image/common/ruoyi-vue-pro-biz.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
.image/common/system-feature.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
.image/common/yudao-cloud-architecture.png
Normal file
After Width: | Height: | Size: 201 KiB |
BIN
.image/common/yudao-roadmap.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
.image/个人中心.jpg
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
.image/代码生成.jpg
Normal file
After Width: | Height: | Size: 130 KiB |
BIN
.image/令牌管理.jpg
Normal file
After Width: | Height: | Size: 89 KiB |
BIN
.image/任务列表-审批.jpg
Normal file
After Width: | Height: | Size: 89 KiB |
BIN
.image/任务列表-已办.jpg
Normal file
After Width: | Height: | Size: 160 KiB |
BIN
.image/任务列表-待办.jpg
Normal file
After Width: | Height: | Size: 150 KiB |
BIN
.image/任务日志.jpg
Normal file
After Width: | Height: | Size: 124 KiB |
BIN
.image/商户信息.jpg
Normal file
After Width: | Height: | Size: 83 KiB |
BIN
.image/在线用户.jpg
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
.image/大屏设计器-列表.jpg
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
.image/大屏设计器-编辑.jpg
Normal file
After Width: | Height: | Size: 109 KiB |
BIN
.image/大屏设计器-预览.jpg
Normal file
After Width: | Height: | Size: 69 KiB |
BIN
.image/字典数据.jpg
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
.image/字典类型.jpg
Normal file
After Width: | Height: | Size: 126 KiB |
BIN
.image/定时任务.jpg
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
.image/岗位管理.jpg
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
.image/应用信息-列表.jpg
Normal file
After Width: | Height: | Size: 93 KiB |
BIN
.image/应用信息-编辑.jpg
Normal file
After Width: | Height: | Size: 93 KiB |
BIN
.image/应用管理.jpg
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
.image/我的流程-列表.jpg
Normal file
After Width: | Height: | Size: 176 KiB |
BIN
.image/我的流程-发起.jpg
Normal file
After Width: | Height: | Size: 91 KiB |
BIN
.image/我的流程-详情.jpg
Normal file
After Width: | Height: | Size: 87 KiB |
BIN
.image/报表设计器-图形报表.jpg
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
.image/报表设计器-打印设计.jpg
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
.image/报表设计器-数据报表.jpg
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
.image/操作日志.jpg
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
.image/支付订单.jpg
Normal file
After Width: | Height: | Size: 208 KiB |
BIN
.image/敏感词.jpg
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
.image/数据库文档.jpg
Normal file
After Width: | Height: | Size: 97 KiB |
BIN
.image/文件管理.jpg
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
.image/文件管理2.jpg
Normal file
After Width: | Height: | Size: 114 KiB |
BIN
.image/文件配置.jpg
Normal file
After Width: | Height: | Size: 116 KiB |
BIN
.image/日志中心.jpg
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
.image/流程模型-列表.jpg
Normal file
After Width: | Height: | Size: 173 KiB |
BIN
.image/流程模型-定义.jpg
Normal file
After Width: | Height: | Size: 125 KiB |
BIN
.image/流程模型-设计.jpg
Normal file
After Width: | Height: | Size: 125 KiB |
BIN
.image/流程表单.jpg
Normal file
After Width: | Height: | Size: 148 KiB |
BIN
.image/生成效果.jpg
Normal file
After Width: | Height: | Size: 128 KiB |
BIN
.image/用户分组.jpg
Normal file
After Width: | Height: | Size: 82 KiB |
BIN
.image/用户管理.jpg
Normal file
After Width: | Height: | Size: 112 KiB |
BIN
.image/登录.jpg
Normal file
After Width: | Height: | Size: 93 KiB |
BIN
.image/登录日志.jpg
Normal file
After Width: | Height: | Size: 77 KiB |
BIN
.image/短信日志.jpg
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
.image/短信模板.jpg
Normal file
After Width: | Height: | Size: 248 KiB |
BIN
.image/短信渠道.jpg
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
.image/租户套餐.png
Normal file
After Width: | Height: | Size: 96 KiB |
BIN
.image/租户管理.jpg
Normal file
After Width: | Height: | Size: 115 KiB |
BIN
.image/系统接口.jpg
Normal file
After Width: | Height: | Size: 91 KiB |
BIN
.image/菜单管理.jpg
Normal file
After Width: | Height: | Size: 129 KiB |
BIN
.image/表单构建.jpg
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
.image/角色管理.jpg
Normal file
After Width: | Height: | Size: 85 KiB |
BIN
.image/访问日志.jpg
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
.image/退款订单.jpg
Normal file
After Width: | Height: | Size: 92 KiB |
BIN
.image/通知公告.jpg
Normal file
After Width: | Height: | Size: 77 KiB |
BIN
.image/部门管理.jpg
Normal file
After Width: | Height: | Size: 109 KiB |
BIN
.image/配置管理.jpg
Normal file
After Width: | Height: | Size: 89 KiB |
BIN
.image/链路追踪.jpg
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
.image/错误日志.jpg
Normal file
After Width: | Height: | Size: 110 KiB |
BIN
.image/错误码管理.jpg
Normal file
After Width: | Height: | Size: 131 KiB |
BIN
.image/首页.jpg
Normal file
After Width: | Height: | Size: 62 KiB |
20
LICENSE
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2021 ruoyi-vue-pro
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
364
README.md
Normal file
@ -0,0 +1,364 @@
|
|||||||
|
<p align="center">
|
||||||
|
<img src="https://img.shields.io/badge/Spring%20Boot-2.7.18-blue.svg" alt="Downloads">
|
||||||
|
<img src="https://img.shields.io/badge/Vue-3.2-blue.svg" alt="Downloads">
|
||||||
|
<img src="https://img.shields.io/github/license/YunaiV/ruoyi-vue-pro"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
**严肃声明:现在、未来都不会有商业版本,所有代码全部开源!!**
|
||||||
|
|
||||||
|
**「我喜欢写代码,乐此不疲」**
|
||||||
|
**「我喜欢做开源,以此为乐」**
|
||||||
|
|
||||||
|
我 🐶 在上海艰苦奋斗,早中晚在 top3 大厂认真搬砖,夜里为开源做贡献。
|
||||||
|
|
||||||
|
如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。
|
||||||
|
|
||||||
|
## 🐶 新手必读
|
||||||
|
|
||||||
|
* 演示地址【Vue3 + element-plus】:<http://dashboard-vue3.yudao.iocoder.cn>
|
||||||
|
* 演示地址【Vue3 + vben(ant-design-vue)】:<http://dashboard-vben.yudao.iocoder.cn>
|
||||||
|
* 演示地址【Vue2 + element-ui】:<http://dashboard.yudao.iocoder.cn>
|
||||||
|
* 启动文档:<https://doc.iocoder.cn/quick-start/>
|
||||||
|
* 视频教程:<https://doc.iocoder.cn/video/>
|
||||||
|
|
||||||
|
## 🐰 版本说明
|
||||||
|
|
||||||
|
| 版本 | JDK 8 + Spring Boot 2.7 | JDK 17/21 + Spring Boot 3.2 |
|
||||||
|
|---------------------------------------------------------------------|---------------------------------------------------------------------------|---------------------------------------------------------------------------------------|
|
||||||
|
| 【完整版】[ruoyi-vue-pro](https://gitee.com/zhijiantianya/ruoyi-vue-pro) | [`master`](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/) 分支 | [`master-jdk17`](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master-jdk17/) 分支 |
|
||||||
|
| 【精简版】[yudao-boot-mini](https://gitee.com/yudaocode/yudao-boot-mini) | [`master`](https://gitee.com/yudaocode/yudao-boot-mini/tree/master/) 分支 | [`master-jdk17`](https://gitee.com/yudaocode/yudao-boot-mini/tree/master-jdk17/) 分支 |
|
||||||
|
|
||||||
|
* 【完整版】:包括系统功能、基础设施、会员中心、数据报表、工作流程、商城系统、微信公众号、CRM、ERP 等功能
|
||||||
|
* 【精简版】:只包括系统功能、基础设施功能,不包括会员中心、数据报表、工作流程、商城系统、微信公众号、CRM、ERP 等功能
|
||||||
|
|
||||||
|
可参考 [《迁移文档》](https://doc.iocoder.cn/migrate-module/) ,只需要 5-10 分钟,即可将【完整版】按需迁移到【精简版】
|
||||||
|
|
||||||
|
## 🐯 平台简介
|
||||||
|
|
||||||
|
**芋道**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。
|
||||||
|
|
||||||
|
> 有任何问题,或者想要的功能,可以在 _Issues_ 中提给艿艿。
|
||||||
|
>
|
||||||
|
> 😜 给项目点点 Star 吧,这对我们真的很重要!
|
||||||
|
|
||||||
|
![架构图](/.image/common/ruoyi-vue-pro-architecture.png)
|
||||||
|
|
||||||
|
* Java 后端:`master` 分支为 JDK 8 + Spring Boot 2.7,`master-jdk17` 分支为 JDK 17/21 + Spring Boot 3.2
|
||||||
|
* 管理后台的电脑端:Vue3 提供 `element-plus`、`vben(ant-design-vue)` 两个版本,Vue2 提供 `element-ui` 版本
|
||||||
|
* 管理后台的移动端:采用 `uni-app` 方案,一份代码多终端适配,同时支持 APP、小程序、H5!
|
||||||
|
* 后端采用 Spring Boot 多模块架构、MySQL + MyBatis Plus、Redis + Redisson
|
||||||
|
* 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等
|
||||||
|
* 消息队列可使用 Event、Redis、RabbitMQ、Kafka、RocketMQ 等
|
||||||
|
* 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统,支持 SSO 单点登录
|
||||||
|
* 支持加载动态权限菜单,按钮级别权限控制,Redis 缓存提升性能
|
||||||
|
* 支持 SaaS 多租户,可自定义每个租户的权限,提供透明化的多租户底层封装
|
||||||
|
* 工作流使用 Flowable,支持动态表单、在线设计流程、会签 / 或签、多种任务分配方式
|
||||||
|
* 高效率开发,使用代码生成器可以一键生成 Java、Vue 前后端代码、SQL 脚本、接口文档,支持单表、树表、主子表
|
||||||
|
* 实时通信,采用 Spring WebSocket 实现,内置 Token 身份校验,支持 WebSocket 集群
|
||||||
|
* 集成微信小程序、微信公众号、企业微信、钉钉等三方登陆,集成支付宝、微信等支付与退款
|
||||||
|
* 集成阿里云、腾讯云等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务
|
||||||
|
* 集成报表设计器、大屏设计器,通过拖拽即可生成酷炫的报表与大屏
|
||||||
|
|
||||||
|
## 🐳 项目关系
|
||||||
|
|
||||||
|
![架构演进](/.image/common/yudao-roadmap.png)
|
||||||
|
|
||||||
|
三个项目的功能对比,可见社区共同整理的 [国产开源项目对比](https://www.yuque.com/xiatian-bsgny/lm0ec1/wqf8mn) 表格。
|
||||||
|
|
||||||
|
### 后端项目
|
||||||
|
|
||||||
|
| 项目 | Star | 简介 |
|
||||||
|
|-----------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
|
||||||
|
| [ruoyi-vue-pro](https://gitee.com/zhijiantianya/ruoyi-vue-pro) | [![Gitee star](https://gitee.com/zhijiantianya/ruoyi-vue-pro/badge/star.svg?theme=white)](https://gitee.com/zhijiantianya/ruoyi-vue-pro) [![GitHub stars](https://img.shields.io/github/stars/YunaiV/ruoyi-vue-pro.svg?style=social&label=Stars)](https://github.com/YunaiV/ruoyi-vue-pro) | 基于 Spring Boot 多模块架构 |
|
||||||
|
| [yudao-cloud](https://gitee.com/zhijiantianya/yudao-cloud) | [![Gitee star](https://gitee.com/zhijiantianya/yudao-cloud/badge/star.svg?theme=white)](https://gitee.com/zhijiantianya/yudao-cloud) [![GitHub stars](https://img.shields.io/github/stars/YunaiV/yudao-cloud.svg?style=social&label=Stars)](https://github.com/YunaiV/yudao-cloud) | 基于 Spring Cloud 微服务架构 |
|
||||||
|
| [Spring-Boot-Labs](https://gitee.com/yudaocode/SpringBoot-Labs) | [![Gitee star](https://gitee.com/yudaocode/SpringBoot-Labs/badge/star.svg?theme=white)](https://gitee.com/zhijiantianya/yudao-cloud) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/SpringBoot-Labs.svg?style=social&label=Stars)](https://github.com/yudaocode/SpringBoot-Labs) | 系统学习 Spring Boot & Cloud 专栏 |
|
||||||
|
|
||||||
|
### 前端项目
|
||||||
|
|
||||||
|
| 项目 | Star | 简介 |
|
||||||
|
|----------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
|
||||||
|
| [yudao-ui-admin-vue3](https://gitee.com/yudaocode/yudao-ui-admin-vue3) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vue3/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vue3) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vue3.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vue3) | 基于 Vue3 + element-plus 实现的管理后台 |
|
||||||
|
| [yudao-ui-admin-vben](https://gitee.com/yudaocode/yudao-ui-admin-vben) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vben/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vben) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vben.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vben) | 基于 Vue3 + vben(ant-design-vue) 实现的管理后台 |
|
||||||
|
| [yudao-mall-uniapp](https://gitee.com/yudaocode/yudao-mall-uniapp) | [![Gitee star](https://gitee.com/yudaocode/yudao-mall-uniapp/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-mall-uniapp) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-mall-uniapp.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-mall-uniapp) | 基于 uni-app 实现的商城小程序 |
|
||||||
|
| [yudao-ui-admin-vue2](https://gitee.com/yudaocode/yudao-ui-admin-vue2) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vue2/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vue2) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vue2.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vue2) | 基于 Vue2 + element-ui 实现的管理后台 |
|
||||||
|
| [yudao-ui-admin-uniapp](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-uniapp/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-uniapp.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-uniapp) | 基于 Vue2 + element-ui 实现的管理后台 |
|
||||||
|
| [yudao-ui-go-view](https://gitee.com/yudaocode/yudao-ui-go-view) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-go-view/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-go-view) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-go-view.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-go-view) | 基于 Vue3 + naive-ui 实现的大屏报表 |
|
||||||
|
|
||||||
|
## 😎 开源协议
|
||||||
|
|
||||||
|
**为什么推荐使用本项目?**
|
||||||
|
|
||||||
|
① 本项目采用比 Apache 2.0 更宽松的 [MIT License](https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/LICENSE) 开源协议,个人与企业可 100% 免费使用,不用保留类作者、Copyright 信息。
|
||||||
|
|
||||||
|
② 代码全部开源,不会像其他项目一样,只开源部分代码,让你无法了解整个项目的架构设计。[国产开源项目对比](https://www.yuque.com/xiatian-bsgny/lm0ec1/wqf8mn)
|
||||||
|
|
||||||
|
![开源项目对比](/.image/common/project-vs.png)
|
||||||
|
|
||||||
|
③ 代码整洁、架构整洁,遵循《阿里巴巴 Java 开发手册》规范,代码注释详细,113770 行 Java 代码,42462 行代码注释。
|
||||||
|
|
||||||
|
## 🤝 项目外包
|
||||||
|
|
||||||
|
我们也是接外包滴,如果你有项目想要外包,可以微信联系【**Aix9975**】。
|
||||||
|
|
||||||
|
团队包含专业的项目经理、架构师、前端工程师、后端工程师、测试工程师、运维工程师,可以提供全流程的外包服务。
|
||||||
|
|
||||||
|
项目可以是商城、SCRM 系统、OA 系统、物流系统、ERP 系统、CMS 系统、HIS 系统、支付系统、IM 聊天、微信公众号、微信小程序等等。
|
||||||
|
|
||||||
|
## 🐼 内置功能
|
||||||
|
|
||||||
|
系统内置多种多种业务功能,可以用于快速你的业务系统:
|
||||||
|
|
||||||
|
![功能分层](/.image/common/ruoyi-vue-pro-biz.png)
|
||||||
|
|
||||||
|
* 通用模块(必选):系统功能、基础设施
|
||||||
|
* 通用模块(可选):工作流程、支付系统、数据报表、会员中心
|
||||||
|
* 业务系统(按需):ERP 系统、CRM 系统、商城系统、微信公众号、AI 大模型
|
||||||
|
|
||||||
|
> 友情提示:本项目基于 RuoYi-Vue 修改,**重构优化**后端的代码,**美化**前端的界面。
|
||||||
|
>
|
||||||
|
> * 额外新增的功能,我们使用 🚀 标记。
|
||||||
|
> * 重新实现的功能,我们使用 ⭐️ 标记。
|
||||||
|
|
||||||
|
🙂 所有功能,都通过 **单元测试** 保证高质量。
|
||||||
|
|
||||||
|
### 系统功能
|
||||||
|
|
||||||
|
| | 功能 | 描述 |
|
||||||
|
|-----|-------|---------------------------------|
|
||||||
|
| | 用户管理 | 用户是系统操作者,该功能主要完成系统用户配置 |
|
||||||
|
| ⭐️ | 在线用户 | 当前系统中活跃用户状态监控,支持手动踢下线 |
|
||||||
|
| | 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 |
|
||||||
|
| | 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等,本地缓存提供性能 |
|
||||||
|
| | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 |
|
||||||
|
| | 岗位管理 | 配置系统用户所属担任职务 |
|
||||||
|
| 🚀 | 租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能 |
|
||||||
|
| 🚀 | 租户套餐 | 配置租户套餐,自定每个租户的菜单、操作、按钮的权限 |
|
||||||
|
| | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 |
|
||||||
|
| 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、腾讯云等主流短信平台 |
|
||||||
|
| 🚀 | 邮件管理 | 邮箱账号、邮件模版、邮件发送日志,支持所有邮件平台 |
|
||||||
|
| 🚀 | 站内信 | 系统内的消息通知,提供站内信模版、站内信消息 |
|
||||||
|
| 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 |
|
||||||
|
| ⭐️ | 登录日志 | 系统登录日志记录查询,包含登录异常 |
|
||||||
|
| 🚀 | 错误码管理 | 系统所有错误码的管理,可在线修改错误提示,无需重启服务 |
|
||||||
|
| | 通知公告 | 系统通知公告信息发布维护 |
|
||||||
|
| 🚀 | 敏感词 | 配置系统敏感词,支持标签分组 |
|
||||||
|
| 🚀 | 应用管理 | 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式 |
|
||||||
|
| 🚀 | 地区管理 | 展示省份、城市、区镇等城市信息,支持 IP 对应城市 |
|
||||||
|
|
||||||
|
![功能图](/.image/common/system-feature.png)
|
||||||
|
|
||||||
|
### 工作流程
|
||||||
|
|
||||||
|
| | 功能 | 描述 |
|
||||||
|
|-----|-------|----------------------------------------|
|
||||||
|
| 🚀 | 流程模型 | 配置工作流的流程模型,支持文件导入与在线设计流程图,提供 7 种任务分配规则 |
|
||||||
|
| 🚀 | 流程表单 | 拖动表单元素生成相应的工作流表单,覆盖 Element UI 所有的表单组件 |
|
||||||
|
| 🚀 | 用户分组 | 自定义用户分组,可用于工作流的审批分组 |
|
||||||
|
| 🚀 | 我的流程 | 查看我发起的工作流程,支持新建、取消流程等操作,高亮流程图、审批时间线 |
|
||||||
|
| 🚀 | 待办任务 | 查看自己【未】审批的工作任务,支持通过、不通过、转发、委派、退回等操作 |
|
||||||
|
| 🚀 | 已办任务 | 查看自己【已】审批的工作任务,未来会支持回退操作 |
|
||||||
|
| 🚀 | OA 请假 | 作为业务自定义接入工作流的使用示例,只需创建请求对应的工作流程,即可进行审批 |
|
||||||
|
|
||||||
|
![功能图](/.image/common/bpm-feature.png)
|
||||||
|
|
||||||
|
### 支付系统
|
||||||
|
|
||||||
|
| | 功能 | 描述 |
|
||||||
|
|-----|------|---------------------------|
|
||||||
|
| 🚀 | 应用信息 | 配置商户的应用信息,对接支付宝、微信等多个支付渠道 |
|
||||||
|
| 🚀 | 支付订单 | 查看用户发起的支付宝、微信等的【支付】订单 |
|
||||||
|
| 🚀 | 退款订单 | 查看用户发起的支付宝、微信等的【退款】订单 |
|
||||||
|
| 🚀 | 回调通知 | 查看支付回调业务的【支付】【退款】的通知结果 |
|
||||||
|
| 🚀 | 接入示例 | 提供接入支付系统的【支付】【退款】的功能实战 |
|
||||||
|
|
||||||
|
### 基础设施
|
||||||
|
|
||||||
|
| | 功能 | 描述 |
|
||||||
|
|-----|-----------|----------------------------------------------|
|
||||||
|
| 🚀 | 代码生成 | 前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载 |
|
||||||
|
| 🚀 | 系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 |
|
||||||
|
| 🚀 | 数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 |
|
||||||
|
| | 表单构建 | 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件 |
|
||||||
|
| 🚀 | 配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 |
|
||||||
|
| ⭐️ | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 |
|
||||||
|
| 🚀 | 文件服务 | 支持将文件存储到 S3(MinIO、阿里云、腾讯云、七牛云)、本地、FTP、数据库等 |
|
||||||
|
| 🚀 | WebSocket | 提供 WebSocket 接入示例,支持一对一、一对多发送方式 |
|
||||||
|
| 🚀 | API 日志 | 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 |
|
||||||
|
| | MySQL 监控 | 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈 |
|
||||||
|
| | Redis 监控 | 监控 Redis 数据库的使用情况,使用的 Redis Key 管理 |
|
||||||
|
| 🚀 | 消息队列 | 基于 Redis 实现消息队列,Stream 提供集群消费,Pub/Sub 提供广播消费 |
|
||||||
|
| 🚀 | Java 监控 | 基于 Spring Boot Admin 实现 Java 应用的监控 |
|
||||||
|
| 🚀 | 链路追踪 | 接入 SkyWalking 组件,实现链路追踪 |
|
||||||
|
| 🚀 | 日志中心 | 接入 SkyWalking 组件,实现日志中心 |
|
||||||
|
| 🚀 | 服务保障 | 基于 Redis 实现分布式锁、幂等、限流功能,满足高并发场景 |
|
||||||
|
| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 |
|
||||||
|
| 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 |
|
||||||
|
|
||||||
|
![功能图](/.image/common/infra-feature.png)
|
||||||
|
|
||||||
|
### 数据报表
|
||||||
|
|
||||||
|
| | 功能 | 描述 |
|
||||||
|
|-----|-------|--------------------|
|
||||||
|
| 🚀 | 报表设计器 | 支持数据报表、图形报表、打印设计等 |
|
||||||
|
| 🚀 | 大屏设计器 | 拖拽生成数据大屏,内置几十种图表组件 |
|
||||||
|
|
||||||
|
### 微信公众号
|
||||||
|
|
||||||
|
| | 功能 | 描述 |
|
||||||
|
|-----|--------|-------------------------------|
|
||||||
|
| 🚀 | 账号管理 | 配置接入的微信公众号,可支持多个公众号 |
|
||||||
|
| 🚀 | 数据统计 | 统计公众号的用户增减、累计用户、消息概况、接口分析等数据 |
|
||||||
|
| 🚀 | 粉丝管理 | 查看已关注、取关的粉丝列表,可对粉丝进行同步、打标签等操作 |
|
||||||
|
| 🚀 | 消息管理 | 查看粉丝发送的消息列表,可主动回复粉丝消息 |
|
||||||
|
| 🚀 | 自动回复 | 自动回复粉丝发送的消息,支持关注回复、消息回复、关键字回复 |
|
||||||
|
| 🚀 | 标签管理 | 对公众号的标签进行创建、查询、修改、删除等操作 |
|
||||||
|
| 🚀 | 菜单管理 | 自定义公众号的菜单,也可以从公众号同步菜单 |
|
||||||
|
| 🚀 | 素材管理 | 管理公众号的图片、语音、视频等素材,支持在线播放语音、视频 |
|
||||||
|
| 🚀 | 图文草稿箱 | 新增常用的图文素材到草稿箱,可发布到公众号 |
|
||||||
|
| 🚀 | 图文发表记录 | 查看已发布成功的图文素材,支持删除操作 |
|
||||||
|
|
||||||
|
### 商城系统
|
||||||
|
|
||||||
|
演示地址:<https://doc.iocoder.cn/mall-preview/>
|
||||||
|
|
||||||
|
![功能图](/.image/common/mall-feature.png)
|
||||||
|
|
||||||
|
![功能图](/.image/common/mall-preview.png)
|
||||||
|
|
||||||
|
### 会员中心
|
||||||
|
|
||||||
|
| | 功能 | 描述 |
|
||||||
|
|-----|------|----------------------------------|
|
||||||
|
| 🚀 | 会员管理 | 会员是 C 端的消费者,该功能用于会员的搜索与管理 |
|
||||||
|
| 🚀 | 会员标签 | 对会员的标签进行创建、查询、修改、删除等操作 |
|
||||||
|
| 🚀 | 会员等级 | 对会员的等级、成长值进行管理,可用于订单折扣等会员权益 |
|
||||||
|
| 🚀 | 会员分组 | 对会员进行分组,用于用户画像、内容推送等运营手段 |
|
||||||
|
| 🚀 | 积分签到 | 回馈给签到、消费等行为的积分,会员可订单抵现、积分兑换等途径消耗 |
|
||||||
|
|
||||||
|
### ERP 系统
|
||||||
|
|
||||||
|
演示地址:<https://doc.iocoder.cn/erp-preview/>
|
||||||
|
|
||||||
|
![功能图](/.image/common/erp-feature.png)
|
||||||
|
|
||||||
|
### CRM 系统
|
||||||
|
|
||||||
|
演示地址:<https://doc.iocoder.cn/crm-preview/>
|
||||||
|
|
||||||
|
![功能图](/.image/common/crm-feature.png)
|
||||||
|
|
||||||
|
### AI 大模型
|
||||||
|
|
||||||
|
演示地址:<https://doc.iocoder.cn/ai-preview/>
|
||||||
|
|
||||||
|
![功能图](/.image/common/ai-feature.png)
|
||||||
|
|
||||||
|
![功能图](/.image/common/ai-preview.gif)
|
||||||
|
|
||||||
|
## 🐨 技术栈
|
||||||
|
|
||||||
|
### 模块
|
||||||
|
|
||||||
|
| 项目 | 说明 |
|
||||||
|
|-----------------------|--------------------|
|
||||||
|
| `yudao-dependencies` | Maven 依赖版本管理 |
|
||||||
|
| `yudao-framework` | Java 框架拓展 |
|
||||||
|
| `yudao-server` | 管理后台 + 用户 APP 的服务端 |
|
||||||
|
| `yudao-module-system` | 系统功能的 Module 模块 |
|
||||||
|
| `yudao-module-member` | 会员中心的 Module 模块 |
|
||||||
|
| `yudao-module-infra` | 基础设施的 Module 模块 |
|
||||||
|
| `yudao-module-bpm` | 工作流程的 Module 模块 |
|
||||||
|
| `yudao-module-pay` | 支付系统的 Module 模块 |
|
||||||
|
| `yudao-module-mall` | 商城系统的 Module 模块 |
|
||||||
|
| `yudao-module-erp` | ERP 系统的 Module 模块 |
|
||||||
|
| `yudao-module-crm` | CRM 系统的 Module 模块 |
|
||||||
|
| `yudao-module-ai` | AI 大模型的 Module 模块 |
|
||||||
|
| `yudao-module-mp` | 微信公众号的 Module 模块 |
|
||||||
|
| `yudao-module-report` | 大屏报表 Module 模块 |
|
||||||
|
|
||||||
|
### 框架
|
||||||
|
|
||||||
|
| 框架 | 说明 | 版本 | 学习指南 |
|
||||||
|
|---------------------------------------------------------------------------------------------|------------------|----------------|----------------------------------------------------------------|
|
||||||
|
| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.7.18 | [文档](https://github.com/YunaiV/SpringBoot-Labs) |
|
||||||
|
| [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 / 8.0+ | |
|
||||||
|
| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.23 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
|
||||||
|
| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.7 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) |
|
||||||
|
| [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.6.1 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) |
|
||||||
|
| [Redis](https://redis.io/) | key-value 数据库 | 5.0 / 6.0 /7.0 | |
|
||||||
|
| [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.32.0 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) |
|
||||||
|
| [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 5.3.24 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) |
|
||||||
|
| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.7.11 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) |
|
||||||
|
| [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.2.5 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) |
|
||||||
|
| [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 6.8.0 | [文档](https://doc.iocoder.cn/bpm/) |
|
||||||
|
| [Quartz](https://github.com/quartz-scheduler) | 任务调度组件 | 2.3.2 | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yudao) |
|
||||||
|
| [Springdoc](https://springdoc.org/) | Swagger 文档 | 1.7.0 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) |
|
||||||
|
| [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.12.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) |
|
||||||
|
| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.7.10 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) |
|
||||||
|
| [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.13.5 | |
|
||||||
|
| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.5.5.Final | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) |
|
||||||
|
| [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.18.34 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) |
|
||||||
|
| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.8.2 | - |
|
||||||
|
| [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 4.8.0 | - |
|
||||||
|
|
||||||
|
## 🐷 演示图
|
||||||
|
|
||||||
|
### 系统功能
|
||||||
|
|
||||||
|
| 模块 | biu | biu | biu |
|
||||||
|
|----------|-----------------------------|---------------------------|--------------------------|
|
||||||
|
| 登录 & 首页 | ![登录](/.image/登录.jpg) | ![首页](/.image/首页.jpg) | ![个人中心](/.image/个人中心.jpg) |
|
||||||
|
| 用户 & 应用 | ![用户管理](/.image/用户管理.jpg) | ![令牌管理](/.image/令牌管理.jpg) | ![应用管理](/.image/应用管理.jpg) |
|
||||||
|
| 租户 & 套餐 | ![租户管理](/.image/租户管理.jpg) | ![租户套餐](/.image/租户套餐.png) | - |
|
||||||
|
| 部门 & 岗位 | ![部门管理](/.image/部门管理.jpg) | ![岗位管理](/.image/岗位管理.jpg) | - |
|
||||||
|
| 菜单 & 角色 | ![菜单管理](/.image/菜单管理.jpg) | ![角色管理](/.image/角色管理.jpg) | - |
|
||||||
|
| 审计日志 | ![操作日志](/.image/操作日志.jpg) | ![登录日志](/.image/登录日志.jpg) | - |
|
||||||
|
| 短信 | ![短信渠道](/.image/短信渠道.jpg) | ![短信模板](/.image/短信模板.jpg) | ![短信日志](/.image/短信日志.jpg) |
|
||||||
|
| 字典 & 敏感词 | ![字典类型](/.image/字典类型.jpg) | ![字典数据](/.image/字典数据.jpg) | ![敏感词](/.image/敏感词.jpg) |
|
||||||
|
| 错误码 & 通知 | ![错误码管理](/.image/错误码管理.jpg) | ![通知公告](/.image/通知公告.jpg) | - |
|
||||||
|
|
||||||
|
### 工作流程
|
||||||
|
|
||||||
|
| 模块 | biu | biu | biu |
|
||||||
|
|---------|---------------------------------|---------------------------------|---------------------------------|
|
||||||
|
| 流程模型 | ![流程模型-列表](/.image/流程模型-列表.jpg) | ![流程模型-设计](/.image/流程模型-设计.jpg) | ![流程模型-定义](/.image/流程模型-定义.jpg) |
|
||||||
|
| 表单 & 分组 | ![流程表单](/.image/流程表单.jpg) | ![用户分组](/.image/用户分组.jpg) | - |
|
||||||
|
| 我的流程 | ![我的流程-列表](/.image/我的流程-列表.jpg) | ![我的流程-发起](/.image/我的流程-发起.jpg) | ![我的流程-详情](/.image/我的流程-详情.jpg) |
|
||||||
|
| 待办 & 已办 | ![任务列表-审批](/.image/任务列表-审批.jpg) | ![任务列表-待办](/.image/任务列表-待办.jpg) | ![任务列表-已办](/.image/任务列表-已办.jpg) |
|
||||||
|
| OA 请假 | ![OA请假-列表](/.image/OA请假-列表.jpg) | ![OA请假-发起](/.image/OA请假-发起.jpg) | ![OA请假-详情](/.image/OA请假-详情.jpg) |
|
||||||
|
|
||||||
|
### 基础设施
|
||||||
|
|
||||||
|
| 模块 | biu | biu | biu |
|
||||||
|
|---------------|-------------------------------|-----------------------------|---------------------------|
|
||||||
|
| 代码生成 | ![代码生成](/.image/代码生成.jpg) | ![生成效果](/.image/生成效果.jpg) | - |
|
||||||
|
| 文档 | ![系统接口](/.image/系统接口.jpg) | ![数据库文档](/.image/数据库文档.jpg) | - |
|
||||||
|
| 文件 & 配置 | ![文件配置](/.image/文件配置.jpg) | ![文件管理](/.image/文件管理2.jpg) | ![配置管理](/.image/配置管理.jpg) |
|
||||||
|
| 定时任务 | ![定时任务](/.image/定时任务.jpg) | ![任务日志](/.image/任务日志.jpg) | - |
|
||||||
|
| API 日志 | ![访问日志](/.image/访问日志.jpg) | ![错误日志](/.image/错误日志.jpg) | - |
|
||||||
|
| MySQL & Redis | ![MySQL](/.image/MySQL.jpg) | ![Redis](/.image/Redis.jpg) | - |
|
||||||
|
| 监控平台 | ![Java监控](/.image/Java监控.jpg) | ![链路追踪](/.image/链路追踪.jpg) | ![日志中心](/.image/日志中心.jpg) |
|
||||||
|
|
||||||
|
### 支付系统
|
||||||
|
|
||||||
|
| 模块 | biu | biu | biu |
|
||||||
|
|---------|---------------------------|---------------------------------|---------------------------------|
|
||||||
|
| 商家 & 应用 | ![商户信息](/.image/商户信息.jpg) | ![应用信息-列表](/.image/应用信息-列表.jpg) | ![应用信息-编辑](/.image/应用信息-编辑.jpg) |
|
||||||
|
| 支付 & 退款 | ![支付订单](/.image/支付订单.jpg) | ![退款订单](/.image/退款订单.jpg) | --- |
|
||||||
|
### 数据报表
|
||||||
|
|
||||||
|
| 模块 | biu | biu | biu |
|
||||||
|
|-------|---------------------------------|---------------------------------|---------------------------------------|
|
||||||
|
| 报表设计器 | ![数据报表](/.image/报表设计器-数据报表.jpg) | ![图形报表](/.image/报表设计器-图形报表.jpg) | ![报表设计器-打印设计](/.image/报表设计器-打印设计.jpg) |
|
||||||
|
| 大屏设计器 | ![大屏列表](/.image/大屏设计器-列表.jpg) | ![大屏预览](/.image/大屏设计器-预览.jpg) | ![大屏编辑](/.image/大屏设计器-编辑.jpg) |
|
||||||
|
|
||||||
|
### 移动端(管理后台)
|
||||||
|
|
||||||
|
| biu | biu | biu |
|
||||||
|
|----------------------------------|----------------------------------|----------------------------------|
|
||||||
|
| ![](/.image/admin-uniapp/01.png) | ![](/.image/admin-uniapp/02.png) | ![](/.image/admin-uniapp/03.png) |
|
||||||
|
| ![](/.image/admin-uniapp/04.png) | ![](/.image/admin-uniapp/05.png) | ![](/.image/admin-uniapp/06.png) |
|
||||||
|
| ![](/.image/admin-uniapp/07.png) | ![](/.image/admin-uniapp/08.png) | ![](/.image/admin-uniapp/09.png) |
|
||||||
|
|
||||||
|
目前已经实现登录、我的、工作台、编辑资料、头像修改、密码修改、常见问题、关于我们等基础功能。
|
4
lombok.config
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
config.stopBubbling = true
|
||||||
|
lombok.tostring.callsuper=CALL
|
||||||
|
lombok.equalsandhashcode.callsuper=CALL
|
||||||
|
lombok.accessors.chain=true
|
165
pom.xml
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
<modules>
|
||||||
|
<module>yudao-dependencies</module>
|
||||||
|
<module>yudao-framework</module>
|
||||||
|
<!-- Server 主项目 -->
|
||||||
|
<module>yudao-server</module>
|
||||||
|
<!-- 各种 module 拓展 -->
|
||||||
|
<module>yudao-module-system</module>
|
||||||
|
<module>yudao-module-infra</module>
|
||||||
|
<module>yudao-module-member</module>
|
||||||
|
<module>yudao-module-bpm</module>
|
||||||
|
<module>yudao-module-report</module>
|
||||||
|
<module>yudao-module-mp</module>
|
||||||
|
<module>yudao-module-pay</module>
|
||||||
|
<module>yudao-module-mall</module>
|
||||||
|
<module>yudao-module-crm</module>
|
||||||
|
<module>yudao-module-erp</module>
|
||||||
|
<!-- <module>yudao-module-ai</module>-->
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<name>${project.artifactId}</name>
|
||||||
|
<description>芋道项目基础脚手架</description>
|
||||||
|
<url>https://github.com/YunaiV/ruoyi-vue-pro</url>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<revision>2.1.0-jdk8-snapshot</revision>
|
||||||
|
<!-- Maven 相关 -->
|
||||||
|
<java.version>1.8</java.version>
|
||||||
|
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||||
|
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||||
|
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
|
||||||
|
<maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version>
|
||||||
|
<flatten-maven-plugin.version>1.6.0</flatten-maven-plugin.version>
|
||||||
|
<!-- 看看咋放到 bom 里 -->
|
||||||
|
<lombok.version>1.18.34</lombok.version>
|
||||||
|
<spring.boot.version>2.7.18</spring.boot.version>
|
||||||
|
<mapstruct.version>1.5.5.Final</mapstruct.version>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-dependencies</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
<type>pom</type>
|
||||||
|
<scope>import</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</dependencyManagement>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<pluginManagement>
|
||||||
|
<plugins>
|
||||||
|
<!-- maven-surefire-plugin 插件,用于运行单元测试。 -->
|
||||||
|
<!-- 注意,需要使用 3.0.X+,因为要支持 Junit 5 版本 -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
<version>${maven-surefire-plugin.version}</version>
|
||||||
|
</plugin>
|
||||||
|
<!-- maven-compiler-plugin 插件,解决 spring-boot-configuration-processor + Lombok + MapStruct 组合 -->
|
||||||
|
<!-- https://stackoverflow.com/questions/33483697/re-run-spring-boot-configuration-annotation-processor-to-update-generated-metada -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>${maven-compiler-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<annotationProcessorPaths>
|
||||||
|
<path>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||||
|
<version>${spring.boot.version}</version>
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>${lombok.version}</version>
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<groupId>org.mapstruct</groupId>
|
||||||
|
<artifactId>mapstruct-processor</artifactId>
|
||||||
|
<version>${mapstruct.version}</version>
|
||||||
|
</path>
|
||||||
|
</annotationProcessorPaths>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>flatten-maven-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</pluginManagement>
|
||||||
|
|
||||||
|
<plugins>
|
||||||
|
<!-- 统一 revision 版本 -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>flatten-maven-plugin</artifactId>
|
||||||
|
<version>${flatten-maven-plugin.version}</version>
|
||||||
|
<configuration>
|
||||||
|
<flattenMode>resolveCiFriendliesOnly</flattenMode>
|
||||||
|
<updatePomFile>true</updatePomFile>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>flatten</goal>
|
||||||
|
</goals>
|
||||||
|
<id>flatten</id>
|
||||||
|
<phase>process-resources</phase>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>clean</goal>
|
||||||
|
</goals>
|
||||||
|
<id>flatten.clean</id>
|
||||||
|
<phase>clean</phase>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<!-- 使用 huawei / aliyun 的 Maven 源,提升下载速度 -->
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>huaweicloud</id>
|
||||||
|
<name>huawei</name>
|
||||||
|
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
|
||||||
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>aliyunmaven</id>
|
||||||
|
<name>aliyun</name>
|
||||||
|
<url>https://maven.aliyun.com/repository/public</url>
|
||||||
|
</repository>
|
||||||
|
|
||||||
|
<repository>
|
||||||
|
<id>spring-milestones</id>
|
||||||
|
<name>Spring Milestones</name>
|
||||||
|
<url>https://repo.spring.io/milestone</url>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>false</enabled>
|
||||||
|
</snapshots>
|
||||||
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>spring-snapshots</id>
|
||||||
|
<name>Spring Snapshots</name>
|
||||||
|
<url>https://repo.spring.io/snapshot</url>
|
||||||
|
<releases>
|
||||||
|
<enabled>false</enabled>
|
||||||
|
</releases>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
|
||||||
|
</project>
|
49
script/docker/Docker-HOWTO.md
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Docker Build & Up
|
||||||
|
|
||||||
|
目标: 快速部署体验系统,帮助了解系统之间的依赖关系。
|
||||||
|
依赖:docker compose v2,删除`name: yudao-system`,降低`version`版本为`3.3`以下,支持`docker-compose`。
|
||||||
|
|
||||||
|
## 功能文件列表
|
||||||
|
|
||||||
|
```text
|
||||||
|
.
|
||||||
|
├── Docker-HOWTO.md
|
||||||
|
├── docker-compose.yml
|
||||||
|
├── docker.env <-- 提供docker-compose环境变量配置
|
||||||
|
├── yudao-server
|
||||||
|
│ └── Dockerfile
|
||||||
|
└── yudao-ui-admin
|
||||||
|
├── .dockerignore
|
||||||
|
├── Dockerfile
|
||||||
|
└── nginx.conf <-- 提供基础配置,gzip压缩、api转发
|
||||||
|
```
|
||||||
|
|
||||||
|
## 构建 jar 包
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# 创建maven缓存volume
|
||||||
|
docker volume create --name yudao-maven-repo
|
||||||
|
|
||||||
|
docker run -it --rm --name yudao-maven \
|
||||||
|
-v yudao-maven-repo:/root/.m2 \
|
||||||
|
-v $PWD:/usr/src/mymaven \
|
||||||
|
-w /usr/src/mymaven \
|
||||||
|
maven mvn clean install package '-Dmaven.test.skip=true'
|
||||||
|
```
|
||||||
|
|
||||||
|
## 构建启动服务
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker compose --env-file docker.env up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
首次运行会自动构建容器。可以通过`docker compose build [service]`来手动构建所有或某个docker镜像
|
||||||
|
|
||||||
|
`--env-file docker.env`为可选参数,只是展示了通过`.env`文件配置容器启动的环境变量,`docker-compose.yml`本身已经提供足够的默认参数来正常运行系统。
|
||||||
|
|
||||||
|
## 服务器的宿主机端口映射
|
||||||
|
|
||||||
|
- admin ui: http://localhost:8080
|
||||||
|
- api server: http://localhost:48080
|
||||||
|
- mysql: root/123456, port: 3306
|
||||||
|
- redis: port: 6379
|
84
script/docker/docker-compose.yml
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
version: "3.4"
|
||||||
|
|
||||||
|
name: yudao-system
|
||||||
|
|
||||||
|
services:
|
||||||
|
mysql:
|
||||||
|
container_name: yudao-mysql
|
||||||
|
image: mysql:8
|
||||||
|
restart: unless-stopped
|
||||||
|
tty: true
|
||||||
|
ports:
|
||||||
|
- "3306:3306"
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: ${MYSQL_DATABASE:-ruoyi-vue-pro}
|
||||||
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-123456}
|
||||||
|
volumes:
|
||||||
|
- mysql:/var/lib/mysql/
|
||||||
|
- ./sql/mysql/ruoyi-vue-pro.sql:/docker-entrypoint-initdb.d/ruoyi-vue-pro.sql:ro
|
||||||
|
|
||||||
|
redis:
|
||||||
|
container_name: yudao-redis
|
||||||
|
image: redis:6-alpine
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "6379:6379"
|
||||||
|
volumes:
|
||||||
|
- redis:/data
|
||||||
|
|
||||||
|
server:
|
||||||
|
container_name: yudao-server
|
||||||
|
build:
|
||||||
|
context: ./yudao-server/
|
||||||
|
image: yudao-server
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "48080:48080"
|
||||||
|
environment:
|
||||||
|
# https://github.com/polovyivan/docker-pass-configs-to-container
|
||||||
|
SPRING_PROFILES_ACTIVE: local
|
||||||
|
JAVA_OPTS:
|
||||||
|
${JAVA_OPTS:-
|
||||||
|
-Xms512m
|
||||||
|
-Xmx512m
|
||||||
|
-Djava.security.egd=file:/dev/./urandom
|
||||||
|
}
|
||||||
|
ARGS:
|
||||||
|
--spring.datasource.dynamic.datasource.master.url=${MASTER_DATASOURCE_URL:-jdbc:mysql://yudao-mysql:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true}
|
||||||
|
--spring.datasource.dynamic.datasource.master.username=${MASTER_DATASOURCE_USERNAME:-root}
|
||||||
|
--spring.datasource.dynamic.datasource.master.password=${MASTER_DATASOURCE_PASSWORD:-123456}
|
||||||
|
--spring.datasource.dynamic.datasource.slave.url=${SLAVE_DATASOURCE_URL:-jdbc:mysql://yudao-mysql:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true}
|
||||||
|
--spring.datasource.dynamic.datasource.slave.username=${SLAVE_DATASOURCE_USERNAME:-root}
|
||||||
|
--spring.datasource.dynamic.datasource.slave.password=${SLAVE_DATASOURCE_PASSWORD:-123456}
|
||||||
|
--spring.redis.host=${REDIS_HOST:-yudao-redis}
|
||||||
|
depends_on:
|
||||||
|
- mysql
|
||||||
|
- redis
|
||||||
|
|
||||||
|
admin:
|
||||||
|
container_name: yudao-admin
|
||||||
|
build:
|
||||||
|
context: ./yudao-ui-admin
|
||||||
|
args:
|
||||||
|
NODE_ENV:
|
||||||
|
ENV=${NODE_ENV:-production}
|
||||||
|
PUBLIC_PATH=${PUBLIC_PATH:-/}
|
||||||
|
VUE_APP_TITLE=${VUE_APP_TITLE:-芋道管理系统}
|
||||||
|
VUE_APP_BASE_API=${VUE_APP_BASE_API:-/prod-api}
|
||||||
|
VUE_APP_APP_NAME=${VUE_APP_APP_NAME:-/}
|
||||||
|
VUE_APP_TENANT_ENABLE=${VUE_APP_TENANT_ENABLE:-true}
|
||||||
|
VUE_APP_CAPTCHA_ENABLE=${VUE_APP_CAPTCHA_ENABLE:-true}
|
||||||
|
VUE_APP_DOC_ENABLE=${VUE_APP_DOC_ENABLE:-true}
|
||||||
|
VUE_APP_BAIDU_CODE=${VUE_APP_BAIDU_CODE:-fadc1bd5db1a1d6f581df60a1807f8ab}
|
||||||
|
image: yudao-admin
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "8080:80"
|
||||||
|
depends_on:
|
||||||
|
- server
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
mysql:
|
||||||
|
driver: local
|
||||||
|
redis:
|
||||||
|
driver: local
|
25
script/docker/docker.env
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
## mysql
|
||||||
|
MYSQL_DATABASE=ruoyi-vue-pro
|
||||||
|
MYSQL_ROOT_PASSWORD=123456
|
||||||
|
|
||||||
|
## server
|
||||||
|
JAVA_OPTS=-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom
|
||||||
|
|
||||||
|
MASTER_DATASOURCE_URL=jdbc:mysql://yudao-mysql:3306/${MYSQL_DATABASE}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
|
||||||
|
MASTER_DATASOURCE_USERNAME=root
|
||||||
|
MASTER_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||||
|
SLAVE_DATASOURCE_URL=${MASTER_DATASOURCE_URL}
|
||||||
|
SLAVE_DATASOURCE_USERNAME=${MASTER_DATASOURCE_USERNAME}
|
||||||
|
SLAVE_DATASOURCE_PASSWORD=${MASTER_DATASOURCE_PASSWORD}
|
||||||
|
REDIS_HOST=yudao-redis
|
||||||
|
|
||||||
|
## admin
|
||||||
|
NODE_ENV=production
|
||||||
|
PUBLIC_PATH=/
|
||||||
|
VUE_APP_TITLE=芋道管理系统
|
||||||
|
VUE_APP_BASE_API=/prod-api
|
||||||
|
VUE_APP_APP_NAME=/
|
||||||
|
VUE_APP_TENANT_ENABLE=true
|
||||||
|
VUE_APP_CAPTCHA_ENABLE=true
|
||||||
|
VUE_APP_DOC_ENABLE=true
|
||||||
|
VUE_APP_BAIDU_CODE=fadc1bd5db1a1d6f581df60a1807f8ab
|
20
script/idea/http-client.env.json
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"local": {
|
||||||
|
"baseUrl": "http://127.0.0.1:48080/admin-api",
|
||||||
|
"token": "test1",
|
||||||
|
"adminTenentId": "1",
|
||||||
|
|
||||||
|
"appApi": "http://127.0.0.1:48080/app-api",
|
||||||
|
"appToken": "test247",
|
||||||
|
"appTenentId": "1"
|
||||||
|
},
|
||||||
|
"gateway": {
|
||||||
|
"baseUrl": "http://127.0.0.1:8888/admin-api",
|
||||||
|
"token": "test1",
|
||||||
|
"adminTenentId": "1",
|
||||||
|
|
||||||
|
"appApi": "http://127.0.0.1:8888/app-api",
|
||||||
|
"appToken": "test1",
|
||||||
|
"appTenantId": "1"
|
||||||
|
}
|
||||||
|
}
|
60
script/jenkins/Jenkinsfile
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#!groovy
|
||||||
|
pipeline {
|
||||||
|
|
||||||
|
agent any
|
||||||
|
|
||||||
|
parameters {
|
||||||
|
string(name: 'TAG_NAME', defaultValue: '', description: '')
|
||||||
|
}
|
||||||
|
|
||||||
|
environment {
|
||||||
|
// DockerHub 凭证 ID(登录您的 DockerHub)
|
||||||
|
DOCKER_CREDENTIAL_ID = 'dockerhub-id'
|
||||||
|
// GitHub 凭证 ID (推送 tag 到 GitHub 仓库)
|
||||||
|
GITHUB_CREDENTIAL_ID = 'github-id'
|
||||||
|
// kubeconfig 凭证 ID (访问接入正在运行的 Kubernetes 集群)
|
||||||
|
KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
|
||||||
|
// 镜像的推送
|
||||||
|
REGISTRY = 'docker.io'
|
||||||
|
// DockerHub 账号名
|
||||||
|
DOCKERHUB_NAMESPACE = 'docker_username'
|
||||||
|
// GitHub 账号名
|
||||||
|
GITHUB_ACCOUNT = 'https://gitee.com/zhijiantianya/ruoyi-vue-pro'
|
||||||
|
// 应用名称
|
||||||
|
APP_NAME = 'yudao-server'
|
||||||
|
// 应用部署路径
|
||||||
|
APP_DEPLOY_BASE_DIR = '/media/pi/KINGTON/data/work/projects/'
|
||||||
|
}
|
||||||
|
|
||||||
|
stages {
|
||||||
|
stage('检出') {
|
||||||
|
steps {
|
||||||
|
git url: "https://gitee.com/will-we/ruoyi-vue-pro.git",
|
||||||
|
branch: "devops"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('构建') {
|
||||||
|
steps {
|
||||||
|
// TODO 解决多环境链接、密码不同配置临时方案
|
||||||
|
sh 'if [ ! -d "' + "${env.HOME}" + '/resources" ];then\n' +
|
||||||
|
' echo "配置文件不存在无需修改"\n' +
|
||||||
|
'else\n' +
|
||||||
|
' cp -rf ' + "${env.HOME}" + '/resources/*.yaml ' + "${env.APP_NAME}" + '/src/main/resources\n' +
|
||||||
|
' echo "配置文件替换"\n' +
|
||||||
|
'fi'
|
||||||
|
sh 'mvn clean package -Dmaven.test.skip=true'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
stage('部署') {
|
||||||
|
steps {
|
||||||
|
sh 'cp -f ' + ' bin/deploy.sh ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}"
|
||||||
|
sh 'cp -f ' + "${env.APP_NAME}" + '/target/*.jar ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" +'/build/'
|
||||||
|
archiveArtifacts "${env.APP_NAME}" + '/target/*.jar'
|
||||||
|
sh 'chmod +x ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh'
|
||||||
|
sh 'bash ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|