diff --git a/README.md b/README.md
index 312f3e1fd..9c5dbd784 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,8 @@
[](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus)
[](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/blob/master/LICENSE)
[](https://www.jetbrains.com/?from=RuoYi-Vue-Plus)
+[]()
+[]()
基于 RuoYi-Vue 集成 Mybatis-Plus Lombok Hutool 等便捷开发工具 适配重写相关业务 便于开发 定期与 RuoYi-Vue 同步
* 前端开发框架 Vue、Element UI
@@ -16,9 +18,15 @@
* 监控框架 spring-boot-admin 全方位服务监控
* 校验框架 validation 增强接口安全性 严谨性
* 文档框架 knife4j 美化接口文档
+* 序列化框架 统一使用 jackson 高效可靠
* 代码生成器 一键生成前后端代码
+* 多数据源框架 dynamic-datasource 支持主从与多种类数据库异构
+* Redis客户端 采用 Redisson 性能更强
+* 分布式锁 Lock4j 注解锁、工具锁 多种多样
## 参考文档
+
+使用框架前请仔细阅读文档重点注意事项
[参考文档 Wiki](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/wikis/pages)
## 修改RuoYi功能
@@ -34,7 +42,10 @@
* 集成 Feign 接口化管理 Http 请求(如三方请求 支付,短信,推送等)
* 移除 自带服务监控 改为 spring-boot-admin 全方位监控
* 增加 demo 模块示例(给不会增加模块的小伙伴做参考)
-* 增加 redisson 支持分布式锁 功能更强大
+* 增加 redisson 高性能 Redis 客户端
+* 移除 fastjson 统一使用 jackson 序列化
+* 集成 dynamic-datasource 多数据源(默认支持MySQL,其他种类需自行适配)
+* 集成 Lock4j 实现分布式 注解锁、工具锁 多种多样
### 代码改动
@@ -46,6 +57,7 @@
* 项目修改为 maven多环境配置
* 项目配置修改为 application.yml 统一管理
* 数据权限修改为 适配支持单表、多表
+* 使用 redisson 实现分布式锁注解与工具类
* 使用 redisson 实现 spring-cache 整合
* 增加 mybatis-plus 二级缓存 redis 存储
diff --git a/ruoyi-ui/.env.development b/ruoyi-ui/.env.development
index 28b97c7e1..abb97d464 100644
--- a/ruoyi-ui/.env.development
+++ b/ruoyi-ui/.env.development
@@ -1,3 +1,6 @@
+# 页面标题
+VUE_APP_TITLE = RuoYi-Vue-Plus后台管理系统
+
# 开发环境配置
ENV = 'development'
diff --git a/ruoyi-ui/.env.production b/ruoyi-ui/.env.production
index 27c717e97..7179b3291 100644
--- a/ruoyi-ui/.env.production
+++ b/ruoyi-ui/.env.production
@@ -1,3 +1,6 @@
+# 页面标题
+VUE_APP_TITLE = RuoYi-Vue-Plus后台管理系统
+
# 生产环境配置
ENV = 'production'
diff --git a/ruoyi-ui/.env.staging b/ruoyi-ui/.env.staging
index 619573673..b5723d7b8 100644
--- a/ruoyi-ui/.env.staging
+++ b/ruoyi-ui/.env.staging
@@ -1,3 +1,6 @@
+# 页面标题
+VUE_APP_TITLE = RuoYi-Vue-Plus后台管理系统
+
NODE_ENV = production
# 测试环境配置
diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json
index d90fdbac6..48009bed7 100644
--- a/ruoyi-ui/package.json
+++ b/ruoyi-ui/package.json
@@ -41,7 +41,7 @@
"clipboard": "2.0.6",
"core-js": "3.8.1",
"echarts": "4.9.0",
- "element-ui": "2.15.0",
+ "element-ui": "2.15.2",
"file-saver": "2.0.4",
"fuse.js": "6.4.3",
"highlight.js": "9.18.5",
@@ -55,6 +55,7 @@
"vue": "2.6.12",
"vue-count-to": "1.0.13",
"vue-cropper": "0.5.5",
+ "vue-meta": "^2.4.0",
"vue-router": "3.4.9",
"vuedraggable": "2.24.3",
"vuex": "3.6.0"
diff --git a/ruoyi-ui/src/App.vue b/ruoyi-ui/src/App.vue
index e448b1130..391d951c4 100644
--- a/ruoyi-ui/src/App.vue
+++ b/ruoyi-ui/src/App.vue
@@ -6,6 +6,14 @@
diff --git a/ruoyi-ui/src/api/demo/demo.js b/ruoyi-ui/src/api/demo/demo.js
new file mode 100644
index 000000000..fc9937df4
--- /dev/null
+++ b/ruoyi-ui/src/api/demo/demo.js
@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询测试单表列表
+export function listDemo(query) {
+ return request({
+ url: '/demo/demo/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询测试单表详细
+export function getDemo(id) {
+ return request({
+ url: '/demo/demo/' + id,
+ method: 'get'
+ })
+}
+
+// 新增测试单表
+export function addDemo(data) {
+ return request({
+ url: '/demo/demo',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改测试单表
+export function updateDemo(data) {
+ return request({
+ url: '/demo/demo',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除测试单表
+export function delDemo(id) {
+ return request({
+ url: '/demo/demo/' + id,
+ method: 'delete'
+ })
+}
+
+// 导出测试单表
+export function exportDemo(query) {
+ return request({
+ url: '/demo/demo/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/demo/test.js b/ruoyi-ui/src/api/demo/test.js
deleted file mode 100644
index f4c642115..000000000
--- a/ruoyi-ui/src/api/demo/test.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import request from '@/utils/request'
-
-// 查询测试列表
-export function listTest(query) {
- return request({
- url: '/demo/test/list',
- method: 'get',
- params: query
- })
-}
-
-// 查询测试详细
-export function getTest(id) {
- return request({
- url: '/demo/test/' + id,
- method: 'get'
- })
-}
-
-// 新增测试
-export function addTest(data) {
- return request({
- url: '/demo/test',
- method: 'post',
- data: data
- })
-}
-
-// 修改测试
-export function updateTest(data) {
- return request({
- url: '/demo/test',
- method: 'put',
- data: data
- })
-}
-
-// 删除测试
-export function delTest(id) {
- return request({
- url: '/demo/test/' + id,
- method: 'delete'
- })
-}
-
-// 导出测试
-export function exportTest(query) {
- return request({
- url: '/demo/test/export',
- method: 'get',
- params: query
- })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/assets/styles/ruoyi.scss b/ruoyi-ui/src/assets/styles/ruoyi.scss
index de1db7f34..dee6d091c 100644
--- a/ruoyi-ui/src/assets/styles/ruoyi.scss
+++ b/ruoyi-ui/src/assets/styles/ruoyi.scss
@@ -105,6 +105,15 @@
position: absolute;
}
+@media ( max-width : 768px) {
+ .pagination-container .el-pagination > .el-pagination__jump {
+ display: none !important;
+ }
+ .pagination-container .el-pagination > .el-pagination__sizes {
+ display: none !important;
+ }
+}
+
.el-table .fixed-width .el-button--mini {
padding-left: 0;
padding-right: 0;
diff --git a/ruoyi-ui/src/components/DictTag/index.vue b/ruoyi-ui/src/components/DictTag/index.vue
new file mode 100644
index 000000000..7431bbb34
--- /dev/null
+++ b/ruoyi-ui/src/components/DictTag/index.vue
@@ -0,0 +1,51 @@
+
+