diff --git a/.editorconfig b/.editorconfig
index 8cfd37094..672defc11 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -10,9 +10,6 @@ end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
-[*.java]
-indent_style = tab
-
[*.{json,yml}]
indent_size = 2
diff --git a/README.md b/README.md
index 778b901f4..a46023682 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
[](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/blob/master/LICENSE)
[](https://www.jetbrains.com/?from=RuoYi-Vue-Plus)
-[](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus)
+[](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus)
[]()
[]()
[]()
diff --git a/docker/deploy.sh b/docker/deploy.sh
index 79fb9ae5b..28822ecfd 100644
--- a/docker/deploy.sh
+++ b/docker/deploy.sh
@@ -22,11 +22,16 @@ port(){
##放置挂载文件
mount(){
- #挂载配置文件
+ #挂载 nginx 配置文件
if test ! -f "/docker/nginx/conf/nginx.conf" ;then
mkdir -p /docker/nginx/conf
cp nginx/nginx.conf /docker/nginx/conf/nginx.conf
fi
+ #挂载 redis 配置文件
+ if test ! -f "/docker/redis/conf/redis.conf" ;then
+ mkdir -p /docker/redis/conf
+ cp redis/redis.conf /docker/redis/conf/redis.conf
+ fi
}
#启动基础模块
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 228ddbf29..1535f3d6f 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -65,10 +65,10 @@ services:
TZ: Asia/Shanghai
volumes:
# 配置文件
- - /docker/redis/conf/redis.conf:/redis.conf:rw
+ - /docker/redis/conf:/redis/config:rw
# 数据文件
- - /docker/redis/data:/data:rw
- command: "redis-server --appendonly yes"
+ - /docker/redis/data:/redis/data:rw
+ command: "redis-server /redis/config/redis.conf --appendonly yes"
privileged: true
restart: always
networks:
@@ -77,7 +77,7 @@ services:
minio:
image: minio/minio:RELEASE.2021-07-08T01-15-01Z
- hostname: "minio"
+ container_name: minio
ports:
# api 端口
- 9000:9000
@@ -103,14 +103,14 @@ services:
ipv4_address: 172.30.0.54
ruoyi-server1:
- image: "ruoyi/ruoyi-server:3.0.0"
+ image: "ruoyi/ruoyi-server:3.1.0"
+ container_name: ruoyi-server1
environment:
# 时区上海
TZ: Asia/Shanghai
volumes:
# 配置文件
- /docker/server1/logs/:/ruoyi/server/logs/
- - /docker/ruoyi/uploadPath/:/ruoyi/server/ruoyi/uploadPath/
privileged: true
restart: always
networks:
@@ -118,14 +118,14 @@ services:
ipv4_address: 172.30.0.60
ruoyi-server2:
- image: "ruoyi/ruoyi-server:3.0.0"
+ image: "ruoyi/ruoyi-server:3.1.0"
+ container_name: ruoyi-server2
environment:
# 时区上海
TZ: Asia/Shanghai
volumes:
# 配置文件
- /docker/server2/logs/:/ruoyi/server/logs/
- - /docker/ruoyi/uploadPath/:/ruoyi/server/ruoyi/uploadPath/
privileged: true
restart: always
networks:
@@ -133,7 +133,8 @@ services:
ipv4_address: 172.30.0.61
ruoyi-monitor-admin:
- image: "ruoyi/ruoyi-monitor-admin:3.0.0"
+ image: "ruoyi/ruoyi-monitor-admin:3.1.0"
+ container_name: ruoyi-monitor-admin
environment:
# 时区上海
TZ: Asia/Shanghai
diff --git a/docker/nginx/nginx.conf b/docker/nginx/nginx.conf
index 66ac29e3e..a511f351b 100644
--- a/docker/nginx/nginx.conf
+++ b/docker/nginx/nginx.conf
@@ -22,6 +22,7 @@ http {
access_log /var/log/nginx/access.log main;
upstream server {
+ ip_hash;
server 172.30.0.60:8080;
server 172.30.0.61:8080;
}
diff --git a/docker/redis/redis.conf b/docker/redis/redis.conf
new file mode 100644
index 000000000..213e9ba9e
--- /dev/null
+++ b/docker/redis/redis.conf
@@ -0,0 +1,2 @@
+# redis 密码
+# requirepass 123456
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index e0866bdad..75f36375c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,40 +6,40 @@
com.ruoyi
ruoyi-vue-plus
- 3.0.0
+ 3.1.0
RuoYi-Vue-Plus
https://gitee.com/JavaLionLi/RuoYi-Vue-Plus
RuoYi-Vue-Plus后台管理系统
- 3.0.0
- 2.5.3
+ 3.1.0
+ 2.5.4
UTF-8
UTF-8
1.8
- 3.1.1
+ 3.2.0
1.2.6
3.0.3
4.1.2
2.2.10
1.7
0.9.1
- 3.4.3
+ 3.4.3.3
3.9.1
- 5.7.7
+ 5.7.11
3.0.3
- 11.2
+ 11.6
4.9.1
- 2.5.0
- 3.16.1
+ 2.5.1
+ 3.16.2
2.2.1
3.4.1
7.8.0
- 3.13.0
- 5.6.47
+ 3.13.1
+ 5.6.51
8.3.0
diff --git a/ruoyi-extend/pom.xml b/ruoyi-extend/pom.xml
index 3bfe77021..2a348af4a 100644
--- a/ruoyi-extend/pom.xml
+++ b/ruoyi-extend/pom.xml
@@ -5,7 +5,7 @@
ruoyi-vue-plus
com.ruoyi
- 3.0.0
+ 3.1.0
4.0.0
ruoyi-extend
diff --git a/ruoyi-extend/ruoyi-monitor-admin/pom.xml b/ruoyi-extend/ruoyi-monitor-admin/pom.xml
index bada747b4..dc0830373 100644
--- a/ruoyi-extend/ruoyi-monitor-admin/pom.xml
+++ b/ruoyi-extend/ruoyi-monitor-admin/pom.xml
@@ -5,7 +5,7 @@
ruoyi-extend
com.ruoyi
- 3.0.0
+ 3.1.0
4.0.0
jar
diff --git a/ruoyi-ui/package.json b/ruoyi-ui/package.json
index 604d964c3..58a8c790e 100644
--- a/ruoyi-ui/package.json
+++ b/ruoyi-ui/package.json
@@ -1,6 +1,6 @@
{
"name": "ruoyi-vue-plus",
- "version": "3.0.0",
+ "version": "3.1.0",
"description": "RuoYi-Vue-Plus后台管理系统",
"author": "LionLi",
"license": "MIT",
diff --git a/ruoyi-ui/src/api/login.js b/ruoyi-ui/src/api/login.js
index 8b5b6cf22..abd49c7de 100644
--- a/ruoyi-ui/src/api/login.js
+++ b/ruoyi-ui/src/api/login.js
@@ -47,6 +47,7 @@ export function logout() {
export function getCodeImg() {
return request({
url: '/captchaImage',
- method: 'get'
+ method: 'get',
+ timeout: 20000
})
-}
+}
\ 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 c4b43658f..8fe1961b2 100644
--- a/ruoyi-ui/src/assets/styles/ruoyi.scss
+++ b/ruoyi-ui/src/assets/styles/ruoyi.scss
@@ -60,10 +60,17 @@
color: inherit;
}
-.el-dialog:not(.is-fullscreen){
+.el-dialog:not(.is-fullscreen) {
margin-top: 6vh !important;
}
+.el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body {
+ overflow: auto;
+ overflow-x: hidden;
+ max-height: 70vh;
+ padding: 10px 20px 0;
+}
+
.el-table {
.el-table__header-wrapper, .el-table__fixed-header-wrapper {
th {
@@ -130,7 +137,7 @@
/** 表格更多操作下拉样式 */
.el-table .el-dropdown-link {
cursor: pointer;
- color: #1890ff;
+ color: #409EFF;
margin-left: 5px;
}
diff --git a/ruoyi-ui/src/assets/styles/sidebar.scss b/ruoyi-ui/src/assets/styles/sidebar.scss
index 2f368c3dd..d2a7453f3 100644
--- a/ruoyi-ui/src/assets/styles/sidebar.scss
+++ b/ruoyi-ui/src/assets/styles/sidebar.scss
@@ -3,15 +3,15 @@
.main-container {
min-height: 100%;
transition: margin-left .28s;
- margin-left: $sideBarWidth;
+ margin-left: $base-sidebar-width;
position: relative;
}
.sidebar-container {
-webkit-transition: width .28s;
transition: width 0.28s;
- width: $sideBarWidth !important;
- background-color: $menuBg;
+ width: $base-sidebar-width !important;
+ background-color: $base-menu-background;
height: 100%;
position: fixed;
font-size: 0px;
@@ -81,12 +81,12 @@
}
& .theme-dark .is-active > .el-submenu__title {
- color: $subMenuActiveText !important;
+ color: $base-menu-color-active !important;
}
& .nest-menu .el-submenu>.el-submenu__title,
& .el-submenu .el-menu-item {
- min-width: $sideBarWidth !important;
+ min-width: $base-sidebar-width !important;
&:hover {
background-color: rgba(0, 0, 0, 0.06) !important;
@@ -95,10 +95,10 @@
& .theme-dark .nest-menu .el-submenu>.el-submenu__title,
& .theme-dark .el-submenu .el-menu-item {
- background-color: $subMenuBg !important;
+ background-color: $base-sub-menu-background !important;
&:hover {
- background-color: $subMenuHover !important;
+ background-color: $base-sub-menu-hover !important;
}
}
}
@@ -154,7 +154,7 @@
}
.el-menu--collapse .el-menu .el-submenu {
- min-width: $sideBarWidth !important;
+ min-width: $base-sidebar-width !important;
}
// mobile responsive
@@ -165,14 +165,14 @@
.sidebar-container {
transition: transform .28s;
- width: $sideBarWidth !important;
+ width: $base-sidebar-width !important;
}
&.hideSidebar {
.sidebar-container {
pointer-events: none;
transition-duration: 0.3s;
- transform: translate3d(-$sideBarWidth, 0, 0);
+ transform: translate3d(-$base-sidebar-width, 0, 0);
}
}
}
diff --git a/ruoyi-ui/src/assets/styles/variables.scss b/ruoyi-ui/src/assets/styles/variables.scss
index 452a1ece0..34484d47e 100644
--- a/ruoyi-ui/src/assets/styles/variables.scss
+++ b/ruoyi-ui/src/assets/styles/variables.scss
@@ -8,37 +8,47 @@ $tiffany: #4AB7BD;
$yellow:#FEC171;
$panGreen: #30B08F;
-// sidebar
-$menuText:#bfcbd9;
-$menuActiveText:#409EFF;
-$subMenuActiveText:#f4f4f5; // https://github.com/ElemeFE/element/issues/12951
+// 默认菜单主题风格
+$base-menu-color:#bfcbd9;
+$base-menu-color-active:#f4f4f5;
+$base-menu-background:#304156;
+$base-logo-title-color: #ffffff;
-$menuBg:#304156;
-$menuHover:#263445;
-$sidebarTitle: #ffffff;
+$base-menu-light-color:rgba(0,0,0,.70);
+$base-menu-light-background:#ffffff;
+$base-logo-light-title-color: #001529;
-$menuLightBg:#ffffff;
-$menuLightHover:#f0f1f5;
-$sidebarLightTitle: #001529;
+$base-sub-menu-background:#1f2d3d;
+$base-sub-menu-hover:#001528;
-$subMenuBg:#1f2d3d;
-$subMenuHover:#001528;
+// 自定义暗色菜单风格
+/**
+$base-menu-color:hsla(0,0%,100%,.65);
+$base-menu-color-active:#fff;
+$base-menu-background:#001529;
+$base-logo-title-color: #ffffff;
-$sideBarWidth: 200px;
+$base-menu-light-color:rgba(0,0,0,.70);
+$base-menu-light-background:#ffffff;
+$base-logo-light-title-color: #001529;
+
+$base-sub-menu-background:#000c17;
+$base-sub-menu-hover:#001528;
+*/
+
+$base-sidebar-width: 200px;
// the :export directive is the magic sauce for webpack
// https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass
:export {
- menuText: $menuText;
- menuActiveText: $menuActiveText;
- subMenuActiveText: $subMenuActiveText;
- menuBg: $menuBg;
- menuHover: $menuHover;
- menuLightBg: $menuLightBg;
- menuLightHover: $menuLightHover;
- subMenuBg: $subMenuBg;
- subMenuHover: $subMenuHover;
- sideBarWidth: $sideBarWidth;
- sidebarTitle: $sidebarTitle;
- sidebarLightTitle: $sidebarLightTitle
+ menuColor: $base-menu-color;
+ menuLightColor: $base-menu-light-color;
+ menuColorActive: $base-menu-color-active;
+ menuBackground: $base-menu-background;
+ menuLightBackground: $base-menu-light-background;
+ subMenuBackground: $base-sub-menu-background;
+ subMenuHover: $base-sub-menu-hover;
+ sideBarWidth: $base-sidebar-width;
+ logoTitleColor: $base-logo-title-color;
+ logoLightTitleColor: $base-logo-light-title-color
}
diff --git a/ruoyi-ui/src/components/Crontab/day.vue b/ruoyi-ui/src/components/Crontab/day.vue
new file mode 100644
index 000000000..9a38a1ca9
--- /dev/null
+++ b/ruoyi-ui/src/components/Crontab/day.vue
@@ -0,0 +1,179 @@
+
+
+
+
+ 日,允许的通配符[, - * / L M]
+
+
+
+
+
+ 不指定
+
+
+
+
+
+ 周期从
+ -
+ 日
+
+
+
+
+
+ 从
+ 号开始,每
+ 日执行一次
+
+
+
+
+
+ 每月
+ 号最近的那个工作日
+
+
+
+
+
+ 本月最后一天
+
+
+
+
+
+ 指定
+
+ {{item}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/Crontab/hour.vue b/ruoyi-ui/src/components/Crontab/hour.vue
new file mode 100644
index 000000000..50833fc19
--- /dev/null
+++ b/ruoyi-ui/src/components/Crontab/hour.vue
@@ -0,0 +1,122 @@
+
+
+
+
+ 小时,允许的通配符[, - * /]
+
+
+
+
+
+ 周期从
+ -
+ 小时
+
+
+
+
+
+ 从
+ 小时开始,每
+ 小时执行一次
+
+
+
+
+
+ 指定
+
+ {{item-1}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/Crontab/index.vue b/ruoyi-ui/src/components/Crontab/index.vue
new file mode 100644
index 000000000..629bad7a7
--- /dev/null
+++ b/ruoyi-ui/src/components/Crontab/index.vue
@@ -0,0 +1,425 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+ 重置
+ 取消
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/components/Crontab/min.vue b/ruoyi-ui/src/components/Crontab/min.vue
new file mode 100644
index 000000000..bd12ab597
--- /dev/null
+++ b/ruoyi-ui/src/components/Crontab/min.vue
@@ -0,0 +1,120 @@
+
+
+
+
+ 分钟,允许的通配符[, - * /]
+
+
+
+
+
+ 周期从
+ -
+ 分钟
+
+
+
+
+
+ 从
+ 分钟开始,每
+ 分钟执行一次
+
+
+
+
+
+ 指定
+
+ {{item-1}}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/Crontab/mouth.vue b/ruoyi-ui/src/components/Crontab/mouth.vue
new file mode 100644
index 000000000..7d0e0c84a
--- /dev/null
+++ b/ruoyi-ui/src/components/Crontab/mouth.vue
@@ -0,0 +1,128 @@
+
+
+
+
+ 月,允许的通配符[, - * /]
+
+
+
+
+
+ 周期从
+ -
+ 月
+
+
+
+
+
+ 从
+ 月开始,每
+ 月月执行一次
+
+
+
+
+
+ 指定
+
+ {{item}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/Crontab/result.vue b/ruoyi-ui/src/components/Crontab/result.vue
new file mode 100644
index 000000000..0e75b9ee2
--- /dev/null
+++ b/ruoyi-ui/src/components/Crontab/result.vue
@@ -0,0 +1,566 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/Crontab/second.vue b/ruoyi-ui/src/components/Crontab/second.vue
new file mode 100644
index 000000000..0776e7597
--- /dev/null
+++ b/ruoyi-ui/src/components/Crontab/second.vue
@@ -0,0 +1,133 @@
+
+
+
+
+ 秒,允许的通配符[, - * /]
+
+
+
+
+
+ 周期从
+ -
+ 秒
+
+
+
+
+
+ 从
+ 秒开始,每
+ 秒执行一次
+
+
+
+
+
+ 指定
+
+ {{item-1}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/Crontab/week.vue b/ruoyi-ui/src/components/Crontab/week.vue
new file mode 100644
index 000000000..cb4c542ba
--- /dev/null
+++ b/ruoyi-ui/src/components/Crontab/week.vue
@@ -0,0 +1,167 @@
+
+
+
+
+ 周,允许的通配符[, - * / L #]
+
+
+
+
+
+ 不指定
+
+
+
+
+
+ 周期从星期
+ -
+
+
+
+
+
+
+ 第
+ 周的星期
+
+
+
+
+
+
+ 本月最后一个星期
+
+
+
+
+
+
+ 指定
+
+ {{item}}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/Crontab/year.vue b/ruoyi-ui/src/components/Crontab/year.vue
new file mode 100644
index 000000000..8cb886f76
--- /dev/null
+++ b/ruoyi-ui/src/components/Crontab/year.vue
@@ -0,0 +1,144 @@
+
+
+
+
+ 不填,允许的通配符[, - * /]
+
+
+
+
+
+ 每年
+
+
+
+
+
+ 周期从
+ -
+
+
+
+
+
+
+ 从
+ 年开始,每
+ 年执行一次
+
+
+
+
+
+
+ 指定
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/components/DictTag/index.vue b/ruoyi-ui/src/components/DictTag/index.vue
index 7431bbb34..742f38c0c 100644
--- a/ruoyi-ui/src/components/DictTag/index.vue
+++ b/ruoyi-ui/src/components/DictTag/index.vue
@@ -31,12 +31,12 @@ export default {
type: Array,
default: null,
},
- value: [String, Array],
+ value: [Number, String, Array],
},
computed: {
values() {
- if (this.value) {
- return Array.isArray(this.value) ? this.value : [this.value];
+ if (this.value !== null && typeof this.value !== 'undefined') {
+ return Array.isArray(this.value) ? this.value : [String(this.value)];
} else {
return [];
}
diff --git a/ruoyi-ui/src/components/ThemePicker/index.vue b/ruoyi-ui/src/components/ThemePicker/index.vue
index b0df471ca..5589f5fff 100644
--- a/ruoyi-ui/src/components/ThemePicker/index.vue
+++ b/ruoyi-ui/src/components/ThemePicker/index.vue
@@ -31,13 +31,24 @@ export default {
immediate: true
},
async theme(val) {
+ await this.setTheme(val)
+ }
+ },
+ created() {
+ if(this.defaultTheme !== ORIGINAL_THEME) {
+ this.setTheme(this.defaultTheme)
+ }
+ },
+
+ methods: {
+ async setTheme(val) {
const oldVal = this.chalk ? this.theme : ORIGINAL_THEME
if (typeof val !== 'string') return
const themeCluster = this.getThemeCluster(val.replace('#', ''))
const originalCluster = this.getThemeCluster(oldVal.replace('#', ''))
const $message = this.$message({
- message: ' Compiling the theme',
+ message: ' 正在切换主题,请稍后...',
customClass: 'theme-message',
type: 'success',
duration: 0,
@@ -82,10 +93,9 @@ export default {
this.$emit('change', val)
$message.close()
- }
- },
- methods: {
+ },
+
updateStyle(style, oldCluster, newCluster) {
let newStyle = style
oldCluster.forEach((color, index) => {
diff --git a/ruoyi-ui/src/directive/dialog/dragHeight.js b/ruoyi-ui/src/directive/dialog/dragHeight.js
new file mode 100644
index 000000000..d1590f8df
--- /dev/null
+++ b/ruoyi-ui/src/directive/dialog/dragHeight.js
@@ -0,0 +1,34 @@
+/**
+* v-dialogDragWidth 可拖动弹窗高度(右下角)
+* Copyright (c) 2019 ruoyi
+*/
+
+export default {
+ bind(el) {
+ const dragDom = el.querySelector('.el-dialog');
+ const lineEl = document.createElement('div');
+ lineEl.style = 'width: 6px; background: inherit; height: 10px; position: absolute; right: 0; bottom: 0; margin: auto; z-index: 1; cursor: nwse-resize;';
+ lineEl.addEventListener('mousedown',
+ function(e) {
+ // 鼠标按下,计算当前元素距离可视区的距离
+ const disX = e.clientX - el.offsetLeft;
+ const disY = e.clientY - el.offsetTop;
+ // 当前宽度 高度
+ const curWidth = dragDom.offsetWidth;
+ const curHeight = dragDom.offsetHeight;
+ document.onmousemove = function(e) {
+ e.preventDefault(); // 移动时禁用默认事件
+ // 通过事件委托,计算移动的距离
+ const xl = e.clientX - disX;
+ const yl = e.clientY - disY
+ dragDom.style.width = `${curWidth + xl}px`;
+ dragDom.style.height = `${curHeight + yl}px`;
+ };
+ document.onmouseup = function(e) {
+ document.onmousemove = null;
+ document.onmouseup = null;
+ };
+ }, false);
+ dragDom.appendChild(lineEl);
+ }
+}
\ No newline at end of file
diff --git a/ruoyi-ui/src/directive/dialog/dragWidth.js b/ruoyi-ui/src/directive/dialog/dragWidth.js
new file mode 100644
index 000000000..d5cda3adb
--- /dev/null
+++ b/ruoyi-ui/src/directive/dialog/dragWidth.js
@@ -0,0 +1,30 @@
+/**
+* v-dialogDragWidth 可拖动弹窗宽度(右侧边)
+* Copyright (c) 2019 ruoyi
+*/
+
+export default {
+ bind(el) {
+ const dragDom = el.querySelector('.el-dialog');
+ const lineEl = document.createElement('div');
+ lineEl.style = 'width: 5px; background: inherit; height: 80%; position: absolute; right: 0; top: 0; bottom: 0; margin: auto; z-index: 1; cursor: w-resize;';
+ lineEl.addEventListener('mousedown',
+ function (e) {
+ // 鼠标按下,计算当前元素距离可视区的距离
+ const disX = e.clientX - el.offsetLeft;
+ // 当前宽度
+ const curWidth = dragDom.offsetWidth;
+ document.onmousemove = function (e) {
+ e.preventDefault(); // 移动时禁用默认事件
+ // 通过事件委托,计算移动的距离
+ const l = e.clientX - disX;
+ dragDom.style.width = `${curWidth + l}px`;
+ };
+ document.onmouseup = function (e) {
+ document.onmousemove = null;
+ document.onmouseup = null;
+ };
+ }, false);
+ dragDom.appendChild(lineEl);
+ }
+}
\ No newline at end of file
diff --git a/ruoyi-ui/src/directive/index.js b/ruoyi-ui/src/directive/index.js
index 550109b4d..5801640a1 100644
--- a/ruoyi-ui/src/directive/index.js
+++ b/ruoyi-ui/src/directive/index.js
@@ -1,17 +1,20 @@
import hasRole from './permission/hasRole'
import hasPermi from './permission/hasPermi'
import dialogDrag from './dialog/drag'
+import dialogDragWidth from './dialog/dragWidth'
+import dialogDragHeight from './dialog/dragHeight'
const install = function(Vue) {
Vue.directive('hasRole', hasRole)
Vue.directive('hasPermi', hasPermi)
Vue.directive('dialogDrag', dialogDrag)
+ Vue.directive('dialogDragWidth', dialogDragWidth)
+ Vue.directive('dialogDragHeight', dialogDragHeight)
}
if (window.Vue) {
window['hasRole'] = hasRole
window['hasPermi'] = hasPermi
- window['dialogDrag'] = dialogDrag
Vue.use(install); // eslint-disable-line
}
diff --git a/ruoyi-ui/src/layout/components/Navbar.vue b/ruoyi-ui/src/layout/components/Navbar.vue
index 466cd981e..69656f019 100644
--- a/ruoyi-ui/src/layout/components/Navbar.vue
+++ b/ruoyi-ui/src/layout/components/Navbar.vue
@@ -56,6 +56,7 @@ import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch'
import RuoYiGit from '@/components/RuoYi/Git'
import RuoYiDoc from '@/components/RuoYi/Doc'
+import config from '@/../vue.config'
export default {
components: {
@@ -102,7 +103,7 @@ export default {
type: 'warning'
}).then(() => {
this.$store.dispatch('LogOut').then(() => {
- location.href = '/index';
+ location.href = config.publicPath + 'index';
})
}).catch(() => {});
}
diff --git a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue
index 0de00ce14..416968737 100644
--- a/ruoyi-ui/src/layout/components/Sidebar/Logo.vue
+++ b/ruoyi-ui/src/layout/components/Sidebar/Logo.vue
@@ -1,13 +1,13 @@
-