Browse Source

侧边菜单点击默认打开一个

jwyu 2 years ago
parent
commit
dede805a7b
1 changed files with 18 additions and 7 deletions
  1. 18 7
      src/layout/component/Aside.vue

+ 18 - 7
src/layout/component/Aside.vue

@@ -16,9 +16,18 @@ watch(
     immediate: true,
   }
 );
-const submenuEvent = (path)=>{
-  // console.log(path)
-  router.push(path)
+
+//点击有二级菜单的默认打开第一个
+const submenuEvent = (e)=>{
+  // 查找当前点击的二级菜单如果当前的路由在二级菜单的子菜单中含有则不坐任何操作
+  let flag=false
+  e.children.forEach(item=>{
+    if(item.path==route.path){
+      flag=true
+    }
+  })
+  if(flag) return
+  router.push(e.path)
 }
 let menuList = reactive([
   {
@@ -117,17 +126,19 @@ watch(
 
 <template>
   <div class="aside-wrap">
-    <el-menu router :default-active="activePath" unique-opened @open="submenuEvent"
+    <el-menu router :default-active="activePath" unique-opened 
       text-color="#333" active-text-color="#F3A52F" class="el-menu-wrap">
       <template v-for="menu in menuList">
         <el-menu-item :index="menu.path" :key="menu.MenuId" v-if="!menu.children">
           <img class="menu-icon" :src="menu.icon_path" alt="" />
           <span class="menu-text">{{ menu.name }}</span>
         </el-menu-item>
-        <el-sub-menu :index="menu.path" :key="menu.MenuId" v-else>
+        <el-sub-menu :index="menu.path" :key="menu.MenuId"  v-else>
           <template #title>
-            <img class="menu-icon" :src="menu.icon_path" alt="" />
-            <span class="menu-text">{{ menu.name }}</span>
+            <div style="flex:1" @click="submenuEvent(menu)">
+              <img class="menu-icon" :src="menu.icon_path" alt="" />
+              <span class="menu-text">{{ menu.name }}</span>
+            </div>
           </template>
           <el-menu-item v-for="child in menu.children" :key="child.MenuId" :index="child.path" style="text-align: center">
             {{ child.name }}