lrf402788946 5 年之前
父节点
当前提交
d05219b78c
共有 2 个文件被更改,包括 47 次插入68 次删除
  1. 23 13
      src/layout/layout-part/newmenu.vue
  2. 24 55
      src/util/role_menu.js

+ 23 - 13
src/layout/layout-part/newmenu.vue

@@ -3,17 +3,28 @@
     <div id="menuBox">
       <el-col :span="24">
         <el-menu :unique-opened="true">
-          <el-submenu v-for="(item, index) in menu" :key="index" :index="`${index}`">
-            <template slot="title">
-              <i class="el-icon-s-grid"></i>
-              <span>{{ item.name }}</span>
+          <template v-for="item in menu">
+            <template v-if="!item.children">
+              <el-menu-item :index="item.path" @click="selectMenu(item.path)" :key="item.name">
+                <i v-if="item.icon" :class="item.icon"></i>
+                <span v-if="item.name" slot="title">{{ item.name }}</span>
+              </el-menu-item>
             </template>
-            <a v-for="(menu_item, menu_index) in item.menu" :key="menu_index" @click="turnTo(menu_item.uri)">
-              <el-menu-item :index="`${index}-${menu_index}`"
-                >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i class="el-icon-s-grid"></i>{{ menu_item.name }}</el-menu-item
-              >
-            </a>
-          </el-submenu>
+
+            <el-submenu v-else :index="item.name || item.path" :key="item.name">
+              <template slot="title">
+                <i v-if="item && item.icon" :class="item.icon"></i>
+                <span v-if="item && item.name" slot="title">{{ item.name }}</span>
+              </template>
+              <template v-for="(child, childIndex) in item.children">
+                <div :key="childIndex" v-if="!child.hidden">
+                  <el-menu-item :index="item.path || '' + child.path" @click="selectMenu(item.path || '' + child.path)">
+                    <span v-if="child && child.name" slot="title">{{ child.name }}</span>
+                  </el-menu-item>
+                </div>
+              </template>
+            </el-submenu>
+          </template>
         </el-menu>
       </el-col>
     </div>
@@ -80,10 +91,9 @@ export default {
       }
     },
 
-    turnTo(uri) {
-      this.$router.push({ path: uri });
+    selectMenu(path) {
+      this.$router.push({ path: path });
     },
-
     getMenuList() {
       let res = _.uniqBy(this.menuList, 'menuid');
       for (const item of res) {

+ 24 - 55
src/util/role_menu.js

@@ -1,140 +1,109 @@
-const api = process.env.NODE_ENV === 'production' ? '' : '';
 export const system = {
   name: '首页',
-  uri: '/',
+  path: '/',
 };
 export const government = {
   name: '科技政务',
-  menu: [
+  children: [
     {
       name: '科技政务',
-      uri: api + '/government/index',
+      path: '/government/index',
     },
   ],
 };
 
 export const policy = {
   name: '科技政策',
-  menu: [
+  children: [
     {
       name: '科技政策',
-      uri: api + '/policy/index',
+      path: '/policy/index',
     },
   ],
 };
 
 export const record = {
   name: '科技数据',
-  menu: [
+  children: [
     {
       name: '科技数据',
-      uri: api + '/record/index',
+      path: '/record/index',
     },
   ],
 };
 
 export const serve = {
   name: '科技服务',
-  menu: [
+  children: [
     {
       name: '科技服务',
-      uri: api + '/serve/index',
+      path: '/serve/index',
     },
   ],
 };
 
 export const personnel = {
   name: '科技人才',
-  menu: [
+  children: [
     {
       name: '栏目管理',
-      uri: '/personnel/column',
+      path: '/personnel/column',
     },
     {
       name: '招聘信息管理',
-      uri: api + '/personnel/recruit',
+      path: '/personnel/recruit',
     },
     {
       name: '人才信息管理',
-      uri: api + '/personnel/resume',
+      path: '/personnel/resume',
     },
     {
       name: '专家信息管理',
-      uri: api + '/personnel/experts',
+      path: '/personnel/experts',
     },
     {
       name: '基本信息管理',
-      uri: api + '/personnel/informate',
+      path: '/personnel/informate',
     },
   ],
 };
 export const enterprise = {
   name: '科技超市管理',
-  menu: [
+  children: [
     {
       name: '科技超市商品审核管理',
-      uri: api + '/enterprise/index',
+      path: '/enterprise/index',
     },
     {
       name: '科技超市交易状态审核管理',
-      uri: api + '/enterprise/transaction',
+      path: '/enterprise/transaction',
     },
   ],
 };
 
 export const duijiehui = {
   name: '对接会',
-  menu: [
-    {
-      name: '对接会',
-      uri: api + '/duijiehui/index',
-    },
-  ],
+  path: '/duijiehui/index',
 };
 
 export const site = {
   name: '站点信息管理',
-  menu: [
-    {
-      name: '站点信息管理',
-      uri: api + '/site/index',
-    },
-  ],
+  path: '/site/index',
 };
 
 export const user = {
   name: '用户管理',
-  menu: [
-    {
-      name: '用户管理',
-      uri: api + '/user/index',
-    },
-  ],
+  path: '/user/index',
 };
 export const links = {
   name: '友情链接管理',
-  menu: [
-    {
-      name: '友情链接管理',
-      uri: api + '/links/index',
-    },
-  ],
+  path: '/links/index',
 };
 export const permission = {
   name: '权限管理',
-  menu: [
-    {
-      name: '权限管理',
-      uri: api + '/permission/index',
-    },
-  ],
+  path: '/permission/index',
 };
 export const dictionary = {
   name: '平台字典管理',
-  menu: [
-    {
-      name: '平台字典管理',
-      uri: api + '/dictionary',
-    },
-  ],
+  path: '/dictionary',
 };