From e7367d03f7bb50643e56c7e1d4a4b6bafd905aa5 Mon Sep 17 00:00:00 2001 From: runphp Date: Sat, 12 Feb 2022 10:23:00 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AD=90=E8=8F=9C=E5=8D=95na?= =?UTF-8?q?me=E5=90=8D=E7=A7=B0=E5=86=B2=E7=AA=81=EF=BC=8Cvue=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E8=AD=A6=E5=91=8A[vue-router]=20Duplicate=20named=20r?= =?UTF-8?q?outes=20definition?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysMenuController.java | 2 +- .../ruoyi/system/service/ISysMenuService.java | 5 +++-- .../system/service/impl/SysMenuServiceImpl.java | 17 +++++++++-------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java index c5ae0e3c..bd312b8b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuController.java @@ -154,6 +154,6 @@ public class SysMenuController extends BaseController { Long userId = SecurityUtils.getUserId(); List menus = menuService.selectMenuTreeByUserId(userId); - return AjaxResult.success(menuService.buildMenus(menus)); + return AjaxResult.success(menuService.buildMenus(menus, null)); } } \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java index 9c4daf4a..4bda9b07 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java @@ -56,11 +56,12 @@ public interface ISysMenuService /** * 构建前端路由所需要的菜单 - * + * * @param menus 菜单列表 + * @param parentRouter 父级菜单 * @return 路由列表 */ - public List buildMenus(List menus); + public List buildMenus(List menus, RouterVo parentRouter); /** * 构建前端所需要树结构 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 76673e93..be03a964 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 @@ -136,34 +136,35 @@ public class SysMenuServiceImpl implements ISysMenuService /** * 构建前端路由所需要的菜单 - * + * * @param menus 菜单列表 + * @param parentRouter 父级菜单 * @return 路由列表 */ @Override - public List buildMenus(List menus) + public List buildMenus(List menus, RouterVo parentRouter) { - List routers = new LinkedList(); + List routers = new LinkedList<>(); for (SysMenu menu : menus) { RouterVo router = new RouterVo(); router.setHidden("1".equals(menu.getVisible())); - router.setName(getRouteName(menu)); + router.setName(StringUtils.isNull(parentRouter)?getRouteName(menu):parentRouter.getName()+"_"+getRouteName(menu)); router.setPath(getRouterPath(menu)); router.setComponent(getComponent(menu)); router.setQuery(menu.getQuery()); router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); List cMenus = menu.getChildren(); - if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType())) + if (!cMenus.isEmpty() && UserConstants.TYPE_DIR.equals(menu.getMenuType())) { router.setAlwaysShow(true); router.setRedirect("noRedirect"); - router.setChildren(buildMenus(cMenus)); + router.setChildren(buildMenus(cMenus, router)); } else if (isMenuFrame(menu)) { router.setMeta(null); - List childrenList = new ArrayList(); + List childrenList = new ArrayList<>(); RouterVo children = new RouterVo(); children.setPath(menu.getPath()); children.setComponent(menu.getComponent()); @@ -177,7 +178,7 @@ public class SysMenuServiceImpl implements ISysMenuService { router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); router.setPath("/inner"); - List childrenList = new ArrayList(); + List childrenList = new ArrayList<>(); RouterVo children = new RouterVo(); String routerPath = innerLinkReplaceEach(menu.getPath()); children.setPath(routerPath);