From 142bba8f75d7a1b6a5b3f6b1afcf3b3da71506c5 Mon Sep 17 00:00:00 2001 From: Layne Cai <15506906353@163.com> Date: Thu, 24 Mar 2022 14:53:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E8=B0=83=E6=95=B4=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=A0=B9=E7=9B=AE=E5=BD=95=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/system/domain/vo/RouterVo.java | 13 ++++++++ .../service/impl/SysMenuServiceImpl.java | 1 + ruoyi-vue3/src/router/index.js | 30 ++++++++++++------- ruoyi-vue3/src/store/modules/permission.js | 4 +++ ruoyi-vue3/src/views/login.vue | 3 +- 5 files changed, 39 insertions(+), 12 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java index 2d4a2b80..685b154a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RouterVo.java @@ -21,6 +21,11 @@ public class RouterVo */ private String path; + /** + * 是否为一级路由,关系到是否带上根目录 + */ + private Boolean top; + /** * 是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现 */ @@ -76,6 +81,14 @@ public class RouterVo this.path = path; } + public Boolean getTop() { + return top; + } + + public void setTop(Boolean top) { + this.top = top; + } + public boolean getHidden() { return hidden; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 79a0f7ea..591d7360 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -157,6 +157,7 @@ public class SysMenuServiceImpl implements ISysMenuService if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType())) { router.setAlwaysShow(true); + router.setTop(true); router.setRedirect("noRedirect"); router.setChildren(buildMenus(cMenus)); } diff --git a/ruoyi-vue3/src/router/index.js b/ruoyi-vue3/src/router/index.js index 13f29934..d5bd1efc 100644 --- a/ruoyi-vue3/src/router/index.js +++ b/ruoyi-vue3/src/router/index.js @@ -31,7 +31,7 @@ export const constantRoutes = [ hidden: true, children: [ { - path: '/redirect/:path(.*)', + path: baseDir+'/redirect/:path(.*)', component: () => import('@/views/redirect/index.vue') } ] @@ -57,12 +57,12 @@ export const constantRoutes = [ hidden: true }, { - path: baseDir+'', + path: baseDir+'/', component: Layout, redirect: baseDir+'/index', children: [ { - path: '/index', + path: baseDir+'/index', component: () => import('@/views/index'), name: 'Index', meta: { title: '首页', icon: 'dashboard', affix: true } @@ -76,7 +76,7 @@ export const constantRoutes = [ redirect: 'noredirect', children: [ { - path: 'profile', + path: baseDir+'profile', component: () => import('@/views/system/user/profile/index'), name: 'Profile', meta: { title: '个人中心', icon: 'user' } @@ -89,7 +89,7 @@ export const constantRoutes = [ hidden: true, children: [ { - path: 'role/:userId(\\d+)', + path: baseDir+'role/:userId(\\d+)', component: () => import('@/views/system/user/authRole'), name: 'AuthRole', meta: { title: '分配角色', activeMenu: '/system/user' } @@ -102,7 +102,7 @@ export const constantRoutes = [ hidden: true, children: [ { - path: 'user/:roleId(\\d+)', + path: baseDir+'user/:roleId(\\d+)', component: () => import('@/views/system/role/authUser'), name: 'AuthUser', meta: { title: '分配用户', activeMenu: '/system/role' } @@ -115,7 +115,7 @@ export const constantRoutes = [ hidden: true, children: [ { - path: 'index/:dictId(\\d+)', + path: baseDir+'index/:dictId(\\d+)', component: () => import('@/views/system/dict/data'), name: 'Data', meta: { title: '字典数据', activeMenu: '/system/dict' } @@ -123,12 +123,12 @@ export const constantRoutes = [ ] }, { - path: '/monitor/job-log', + path: baseDir+'/monitor/job-log', component: Layout, hidden: true, children: [ { - path: 'index', + path: baseDir+'index', component: () => import('@/views/monitor/job/log'), name: 'JobLog', meta: { title: '调度日志', activeMenu: '/monitor/job' } @@ -136,12 +136,12 @@ export const constantRoutes = [ ] }, { - path: '/tool/gen-edit', + path: baseDir+'/tool/gen-edit', component: Layout, hidden: true, children: [ { - path: 'index/:tableId(\\d+)', + path: baseDir+'index/:tableId(\\d+)', component: () => import('@/views/tool/gen/editTable'), name: 'GenEdit', meta: { title: '修改生成配置', activeMenu: '/tool/gen' } @@ -162,4 +162,12 @@ const router = createRouter({ }, }); +let fora = function (routes) { + routes.forEach((r)=>{ + debugger + console.log(r.path); + if (r.children !=undefined && r.children.length > 0) fora(r.children); + }) +} + export default router; \ No newline at end of file diff --git a/ruoyi-vue3/src/store/modules/permission.js b/ruoyi-vue3/src/store/modules/permission.js index 067ca3e3..34335da9 100644 --- a/ruoyi-vue3/src/store/modules/permission.js +++ b/ruoyi-vue3/src/store/modules/permission.js @@ -6,6 +6,7 @@ import InnerLink from '@/layout/components/InnerLink' // 匹配views里面所有的.vue文件 const modules = import.meta.glob('./../../views/**/*.vue') +const baseDir = import.meta.env.VITE_APP_BASE_DIR; const permission = { state: { @@ -56,6 +57,9 @@ const permission = { // 遍历后台传来的路由字符串,转换为组件对象 function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) { return asyncRouterMap.filter(route => { + if (route.top){//一级路由带上目录 + route.path = baseDir + route.path; + } if (type && route.children) { route.children = filterChildren(route.children) } diff --git a/ruoyi-vue3/src/views/login.vue b/ruoyi-vue3/src/views/login.vue index 40cae27f..5b6f00f6 100644 --- a/ruoyi-vue3/src/views/login.vue +++ b/ruoyi-vue3/src/views/login.vue @@ -94,6 +94,7 @@ const captchaOnOff = ref(true); // 注册开关 const register = ref(false); const redirect = ref(undefined); +const baseDir = import.meta.env.VITE_APP_BASE_DIR; function handleLogin() { proxy.$refs.loginRef.validate(valid => { @@ -112,7 +113,7 @@ function handleLogin() { } // 调用action的登录方法 store.dispatch("Login", loginForm.value).then(() => { - router.push({ path: redirect.value || "/" }); + router.push({ path: redirect.value || baseDir + "/"}); }).catch(() => { loading.value = false; // 重新获取验证码