diff --git a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm index b154472..a95916f 100644 --- a/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm +++ b/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> #foreach($column in $columns) #if($column.query) #set($dictType=$column.dictType) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index ece0159..37dcc19 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -176,7 +176,7 @@ public class SysMenuServiceImpl implements ISysMenuService else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) { router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); - router.setPath("/inner"); + router.setPath("/"); List<RouterVo> childrenList = new ArrayList<RouterVo>(); RouterVo children = new RouterVo(); String routerPath = innerLinkReplaceEach(menu.getPath()); diff --git a/ruoyi-ui/src/assets/styles/sidebar.scss b/ruoyi-ui/src/assets/styles/sidebar.scss index e9d5de3..43d5f9a 100644 --- a/ruoyi-ui/src/assets/styles/sidebar.scss +++ b/ruoyi-ui/src/assets/styles/sidebar.scss @@ -7,6 +7,10 @@ position: relative; } + .sidebarHide { + margin-left: 0!important; + } + .sidebar-container { -webkit-transition: width .28s; transition: width 0.28s; diff --git a/ruoyi-ui/src/components/TopNav/index.vue b/ruoyi-ui/src/components/TopNav/index.vue index 1b7c4d9..cabb258 100644 --- a/ruoyi-ui/src/components/TopNav/index.vue +++ b/ruoyi-ui/src/components/TopNav/index.vue @@ -71,7 +71,7 @@ export default { for (var item in router.children) { if (router.children[item].parentPath === undefined) { if(router.path === "/") { - router.children[item].path = "/redirect/" + router.children[item].path; + router.children[item].path = "/" + router.children[item].path; } else { if(!this.ishttp(router.children[item].path)) { router.children[item].path = router.path + "/" + router.children[item].path; @@ -87,22 +87,23 @@ export default { // 默认激活的菜单 activeMenu() { const path = this.$route.path; - let activePath = this.defaultRouter(); + let activePath = path; if (path.lastIndexOf("/") > 0) { const tmpPath = path.substring(1, path.length); activePath = "/" + tmpPath.substring(0, tmpPath.indexOf("/")); + this.$store.dispatch('app/toggleSideBarHide', false); } else if ("/index" == path || "" == path) { if (!this.isFrist) { this.isFrist = true; } else { activePath = "index"; } + this.$store.dispatch('app/toggleSideBarHide', true); + } else if(!this.$route.children) { + activePath = path; + this.$store.dispatch('app/toggleSideBarHide', true); } - var routes = this.activeRoutes(activePath); - if (routes.length === 0) { - activePath = this.currentIndex || this.defaultRouter() - this.activeRoutes(activePath); - } + this.activeRoutes(activePath); return activePath; }, }, @@ -121,29 +122,21 @@ export default { const width = document.body.getBoundingClientRect().width / 3; this.visibleNumber = parseInt(width / 85); }, - // 默认激活的路由 - defaultRouter() { - let router; - Object.keys(this.routers).some((key) => { - if (!this.routers[key].hidden) { - router = this.routers[key].path; - return true; - } - }); - return router; - }, // 菜单选择事件 handleSelect(key, keyPath) { this.currentIndex = key; + const route = this.routers.find(item => item.path === key); if (this.ishttp(key)) { // http(s):// 路径新窗口打开 window.open(key, "_blank"); - } else if (key.indexOf("/redirect") !== -1) { - // /redirect 路径内部打开 - this.$router.push({ path: key.replace("/redirect", "") }); + } else if (!route || !route.children) { + // 没有子路由路径内部打开 + this.$router.push({ path: key }); + this.$store.dispatch('app/toggleSideBarHide', true); } else { // 显示左侧联动菜单 this.activeRoutes(key); + this.$store.dispatch('app/toggleSideBarHide', false); } }, // 当前激活的路由 @@ -159,9 +152,8 @@ export default { if(routes.length > 0) { this.$store.commit("SET_SIDEBAR_ROUTERS", routes); } - return routes; }, - ishttp(url) { + ishttp(url) { return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1 } }, diff --git a/ruoyi-ui/src/layout/components/Settings/index.vue b/ruoyi-ui/src/layout/components/Settings/index.vue index bd2f553..9986e89 100644 --- a/ruoyi-ui/src/layout/components/Settings/index.vue +++ b/ruoyi-ui/src/layout/components/Settings/index.vue @@ -108,6 +108,7 @@ export default { value: val }) if (!val) { + this.$store.dispatch('app/toggleSideBarHide', false); this.$store.commit("SET_SIDEBAR_ROUTERS", this.$store.state.permission.defaultRoutes); } } diff --git a/ruoyi-ui/src/layout/index.vue b/ruoyi-ui/src/layout/index.vue index 4d6fe02..45844fd 100644 --- a/ruoyi-ui/src/layout/index.vue +++ b/ruoyi-ui/src/layout/index.vue @@ -1,8 +1,8 @@ <template> <div :class="classObj" class="app-wrapper" :style="{'--current-color': theme}"> <div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside"/> - <sidebar class="sidebar-container"/> - <div :class="{hasTagsView:needTagsView}" class="main-container"> + <sidebar v-if="!sidebar.hide" class="sidebar-container" /> + <div :class="{hasTagsView:needTagsView,sidebarHide:sidebar.hide}" class="main-container"> <div :class="{'fixed-header':fixedHeader}"> <navbar /> <tags-view v-if="needTagsView" /> diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js index 447f5b0..0ef9d70 100644 --- a/ruoyi-ui/src/router/index.js +++ b/ruoyi-ui/src/router/index.js @@ -164,6 +164,12 @@ export const dynamicRoutes = [ } ] +// 防止连续点击多次路由报错 +let routerPush = Router.prototype.push; +Router.prototype.push = function push(location) { + return routerPush.call(this, location).catch(err => err) +} + export default new Router({ mode: 'history', // 去掉url中的# scrollBehavior: () => ({ y: 0 }), diff --git a/ruoyi-ui/src/store/modules/app.js b/ruoyi-ui/src/store/modules/app.js index c8d8ee9..e506730 100644 --- a/ruoyi-ui/src/store/modules/app.js +++ b/ruoyi-ui/src/store/modules/app.js @@ -3,7 +3,8 @@ import Cookies from 'js-cookie' const state = { sidebar: { opened: Cookies.get('sidebarStatus') ? !!+Cookies.get('sidebarStatus') : true, - withoutAnimation: false + withoutAnimation: false, + hide: false }, device: 'desktop', size: Cookies.get('size') || 'medium' @@ -30,6 +31,9 @@ const mutations = { SET_SIZE: (state, size) => { state.size = size Cookies.set('size', size) + }, + SET_SIDEBAR_HIDE: (state, status) => { + state.sidebar.hide = status } } @@ -45,6 +49,9 @@ const actions = { }, setSize({ commit }, size) { commit('SET_SIZE', size) + }, + toggleSideBarHide({ commit }, status) { + commit('SET_SIDEBAR_HIDE', status) } } diff --git a/ruoyi-ui/src/store/modules/permission.js b/ruoyi-ui/src/store/modules/permission.js index 8c3c339..e3ce028 100644 --- a/ruoyi-ui/src/store/modules/permission.js +++ b/ruoyi-ui/src/store/modules/permission.js @@ -22,12 +22,7 @@ const permission = { state.defaultRoutes = constantRoutes.concat(routes) }, SET_TOPBAR_ROUTES: (state, routes) => { - // 顶部导航菜单默认添加统计报表栏指向首页 - const index = [{ - path: 'index', - meta: { title: '统计报表', icon: 'dashboard' } - }] - state.topbarRouters = routes.concat(index); + state.topbarRouters = routes }, SET_SIDEBAR_ROUTERS: (state, routes) => { state.sidebarRouters = routes diff --git a/ruoyi-ui/src/views/monitor/job/index.vue b/ruoyi-ui/src/views/monitor/job/index.vue index 7cba770..a927756 100644 --- a/ruoyi-ui/src/views/monitor/job/index.vue +++ b/ruoyi-ui/src/views/monitor/job/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="任务名称" prop="jobName"> <el-input v-model="queryParams.jobName" diff --git a/ruoyi-ui/src/views/monitor/job/log.vue b/ruoyi-ui/src/views/monitor/job/log.vue index 885c81e..d7c36f4 100644 --- a/ruoyi-ui/src/views/monitor/job/log.vue +++ b/ruoyi-ui/src/views/monitor/job/log.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="任务名称" prop="jobName"> <el-input v-model="queryParams.jobName" diff --git a/ruoyi-ui/src/views/monitor/logininfor/index.vue b/ruoyi-ui/src/views/monitor/logininfor/index.vue index ac8eca6..e9490e7 100644 --- a/ruoyi-ui/src/views/monitor/logininfor/index.vue +++ b/ruoyi-ui/src/views/monitor/logininfor/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="登录地址" prop="ipaddr"> <el-input v-model="queryParams.ipaddr" diff --git a/ruoyi-ui/src/views/monitor/online/index.vue b/ruoyi-ui/src/views/monitor/online/index.vue index e76500d..64411ef 100644 --- a/ruoyi-ui/src/views/monitor/online/index.vue +++ b/ruoyi-ui/src/views/monitor/online/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> <el-form-item label="登录地址" prop="ipaddr"> <el-input v-model="queryParams.ipaddr" diff --git a/ruoyi-ui/src/views/monitor/operlog/index.vue b/ruoyi-ui/src/views/monitor/operlog/index.vue index f211446..aa8c3b0 100644 --- a/ruoyi-ui/src/views/monitor/operlog/index.vue +++ b/ruoyi-ui/src/views/monitor/operlog/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="系统模块" prop="title"> <el-input v-model="queryParams.title" diff --git a/ruoyi-ui/src/views/system/config/index.vue b/ruoyi-ui/src/views/system/config/index.vue index e483d00..f580b98 100644 --- a/ruoyi-ui/src/views/system/config/index.vue +++ b/ruoyi-ui/src/views/system/config/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="参数名称" prop="configName"> <el-input v-model="queryParams.configName" diff --git a/ruoyi-ui/src/views/system/dept/index.vue b/ruoyi-ui/src/views/system/dept/index.vue index d82774d..5b898a2 100644 --- a/ruoyi-ui/src/views/system/dept/index.vue +++ b/ruoyi-ui/src/views/system/dept/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> <el-form-item label="部门名称" prop="deptName"> <el-input v-model="queryParams.deptName" diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/ruoyi-ui/src/views/system/dict/data.vue index e650290..2bd8cbb 100644 --- a/ruoyi-ui/src/views/system/dict/data.vue +++ b/ruoyi-ui/src/views/system/dict/data.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="字典名称" prop="dictType"> <el-select v-model="queryParams.dictType"> <el-option diff --git a/ruoyi-ui/src/views/system/dict/index.vue b/ruoyi-ui/src/views/system/dict/index.vue index 27cecde..d26d140 100644 --- a/ruoyi-ui/src/views/system/dict/index.vue +++ b/ruoyi-ui/src/views/system/dict/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="字典名称" prop="dictName"> <el-input v-model="queryParams.dictName" diff --git a/ruoyi-ui/src/views/system/menu/index.vue b/ruoyi-ui/src/views/system/menu/index.vue index d61753d..c30be85 100644 --- a/ruoyi-ui/src/views/system/menu/index.vue +++ b/ruoyi-ui/src/views/system/menu/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> <el-form-item label="菜单名称" prop="menuName"> <el-input v-model="queryParams.menuName" diff --git a/ruoyi-ui/src/views/system/notice/index.vue b/ruoyi-ui/src/views/system/notice/index.vue index e8555b4..7982b54 100644 --- a/ruoyi-ui/src/views/system/notice/index.vue +++ b/ruoyi-ui/src/views/system/notice/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="公告标题" prop="noticeTitle"> <el-input v-model="queryParams.noticeTitle" diff --git a/ruoyi-ui/src/views/system/post/index.vue b/ruoyi-ui/src/views/system/post/index.vue index d4702af..444bf63 100644 --- a/ruoyi-ui/src/views/system/post/index.vue +++ b/ruoyi-ui/src/views/system/post/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="岗位编码" prop="postCode"> <el-input v-model="queryParams.postCode" diff --git a/ruoyi-ui/src/views/system/role/authUser.vue b/ruoyi-ui/src/views/system/role/authUser.vue index 15eb18e..9704963 100644 --- a/ruoyi-ui/src/views/system/role/authUser.vue +++ b/ruoyi-ui/src/views/system/role/authUser.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> <el-form-item label="用户名称" prop="userName"> <el-input v-model="queryParams.userName" diff --git a/ruoyi-ui/src/views/system/role/index.vue b/ruoyi-ui/src/views/system/role/index.vue index 72e38a4..339ab4e 100644 --- a/ruoyi-ui/src/views/system/role/index.vue +++ b/ruoyi-ui/src/views/system/role/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> <el-form-item label="角色名称" prop="roleName"> <el-input v-model="queryParams.roleName" diff --git a/ruoyi-ui/src/views/system/role/selectUser.vue b/ruoyi-ui/src/views/system/role/selectUser.vue index c5dec87..e0f83fa 100644 --- a/ruoyi-ui/src/views/system/role/selectUser.vue +++ b/ruoyi-ui/src/views/system/role/selectUser.vue @@ -1,7 +1,7 @@ <template> <!-- 授权用户 --> <el-dialog title="选择用户" :visible.sync="visible" width="800px" top="5vh" append-to-body> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"> <el-form-item label="用户名称" prop="userName"> <el-input v-model="queryParams.userName" diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue index 29aca77..4a031cb 100644 --- a/ruoyi-ui/src/views/system/user/index.vue +++ b/ruoyi-ui/src/views/system/user/index.vue @@ -27,7 +27,7 @@ </el-col> <!--用户数据--> <el-col :span="20" :xs="24"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="用户名称" prop="userName"> <el-input v-model="queryParams.userName" diff --git a/ruoyi-ui/src/views/tool/gen/importTable.vue b/ruoyi-ui/src/views/tool/gen/importTable.vue index 24b91ea..9d738be 100644 --- a/ruoyi-ui/src/views/tool/gen/importTable.vue +++ b/ruoyi-ui/src/views/tool/gen/importTable.vue @@ -1,7 +1,7 @@ <template> <!-- 导入表 --> <el-dialog title="导入表" :visible.sync="visible" width="800px" top="5vh" append-to-body> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"> <el-form-item label="表名称" prop="tableName"> <el-input v-model="queryParams.tableName" diff --git a/ruoyi-ui/src/views/tool/gen/index.vue b/ruoyi-ui/src/views/tool/gen/index.vue index 06c773b..4b44b86 100644 --- a/ruoyi-ui/src/views/tool/gen/index.vue +++ b/ruoyi-ui/src/views/tool/gen/index.vue @@ -1,6 +1,6 @@ <template> <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" inline="true" v-show="showSearch" label-width="68px"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="表名称" prop="tableName"> <el-input v-model="queryParams.tableName"