Преглед изворни кода

三级菜单自动配置组件

RuoYi пре 5 година
родитељ
комит
20f85a37cf

+ 3 - 0
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/UserConstants.java

@@ -54,6 +54,9 @@ public class UserConstants
54 54
     /** Layout组件标识 */
55 55
     public final static String LAYOUT = "Layout";
56 56
 
57
+    /** ParentView组件标识 */
58
+    public final static String PARENT_VIEW = "ParentView";
59
+
57 60
     /** 校验返回结果码 */
58 61
     public final static String UNIQUE = "0";
59 62
 

+ 15 - 0
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java

@@ -364,6 +364,10 @@ public class SysMenuServiceImpl implements ISysMenuService
364 364
         {
365 365
             component = menu.getComponent();
366 366
         }
367
+        else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu))
368
+        {
369
+            component = UserConstants.PARENT_VIEW;
370
+        }
367 371
         return component;
368 372
     }
369 373
 
@@ -380,6 +384,17 @@ public class SysMenuServiceImpl implements ISysMenuService
380 384
     }
381 385
 
382 386
     /**
387
+     * 是否为parent_view组件
388
+     * 
389
+     * @param menu 菜单信息
390
+     * @return 结果
391
+     */
392
+    public boolean isParentView(SysMenu menu)
393
+    {
394
+        return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType());
395
+    }
396
+
397
+    /**
383 398
      * 根据父节点的ID获取所有子节点
384 399
      * 
385 400
      * @param list 分类表

+ 3 - 3
ruoyi-ui/src/views/system/log/index.vue

@@ -1,3 +1,3 @@
1
-<template >
2
-  <router-view />
3
-</template>
1
+<template >
2
+  <router-view />
3
+</template>

+ 1 - 0
ruoyi-ui/src/router/index.js

@@ -5,6 +5,7 @@ Vue.use(Router)
5 5
 
6 6
 /* Layout */
7 7
 import Layout from '@/layout'
8
+import ParentView from '@/components/ParentView';
8 9
 
9 10
 /**
10 11
  * Note: 路由配置项

+ 4 - 1
ruoyi-ui/src/store/modules/permission.js

@@ -1,6 +1,7 @@
1 1
 import { constantRoutes } from '@/router'
2 2
 import { getRouters } from '@/api/menu'
3 3
 import Layout from '@/layout/index'
4
+import ParentView from '@/components/ParentView';
4 5
 
5 6
 const permission = {
6 7
   state: {
@@ -33,9 +34,11 @@ const permission = {
33 34
 function filterAsyncRouter(asyncRouterMap) {
34 35
   return asyncRouterMap.filter(route => {
35 36
     if (route.component) {
36
-      // Layout组件特殊处理
37
+      // Layout ParentView 组件特殊处理
37 38
       if (route.component === 'Layout') {
38 39
         route.component = Layout
40
+      } else if (route.component === 'ParentView') {
41
+        route.component = ParentView
39 42
       } else {
40 43
         route.component = loadView(route.component)
41 44
       }

+ 1 - 1
sql/ry_20200924.sql

@@ -169,7 +169,7 @@ insert into sys_menu values('104',  '岗位管理',       '1',   '5',  'post',
169 169
 insert into sys_menu values('105',  '字典管理',       '1',   '6',  'dict',                                'system/dict/index',       1, 0, 'C', '0', '0', 'system:dict:list',        'dict',          'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '字典管理菜单');
170 170
 insert into sys_menu values('106',  '参数设置',       '1',   '7',  'config',                              'system/config/index',     1, 0, 'C', '0', '0', 'system:config:list',      'edit',          'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '参数设置菜单');
171 171
 insert into sys_menu values('107',  '通知公告',       '1',   '9',  'notice',                              'system/notice/index',     1, 0, 'C', '0', '0', 'system:notice:list',      'message',       'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '通知公告菜单');
172
-insert into sys_menu values('108',  '日志管理',       '1',   '10', 'log',                                 'system/log/index',        1, 0, 'M', '0', '0', '',                        'log',           'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '日志管理菜单');
172
+insert into sys_menu values('108',  '日志管理',       '1',   '10', 'log',                                 '',                        1, 0, 'M', '0', '0', '',                        'log',           'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '日志管理菜单');
173 173
 insert into sys_menu values('109',  '在线用户',       '2',   '1',  'online',                              'monitor/online/index',    1, 0, 'C', '0', '0', 'monitor:online:list',     'online',        'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '在线用户菜单');
174 174
 insert into sys_menu values('110',  '定时任务',       '2',   '2',  'job',                                 'monitor/job/index',       1, 0, 'C', '0', '0', 'monitor:job:list',        'job',           'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '定时任务菜单');
175 175
 insert into sys_menu values('111',  'Sentinel控制台', '2',   '3',  'http://localhost:8718',                '',                       1, 0, 'C', '0', '0', 'monitor:sentinel:list',   'sentinel',      'admin', '2018-03-16 11-33-00', 'ry', '2018-03-16 11-33-00', '流量控制菜单');