提交 98491905 authored 作者: 王鹏飞's avatar 王鹏飞

fix: #3286

上级 fc48b505
...@@ -39,28 +39,35 @@ function findMenu(path: string, menus: IMenuItem[]) { ...@@ -39,28 +39,35 @@ function findMenu(path: string, menus: IMenuItem[]) {
<nav class="menu"> <nav class="menu">
<ul> <ul>
<li v-for="item in menus" :key="item.path" :class="{ 'is-active': item.path === currentMenu?.path }"> <li v-for="item in menus" :key="item.path" :class="{ 'is-active': item.path === currentMenu?.path }">
<el-tooltip :content="item.name" placement="right"> <div class="menu-item">
<template v-if="item.children">
<RouterLink :to="item.path">
<component :is="item.icon" class="menu-icon"></component>
</RouterLink>
</template>
<el-tooltip :content="item.name" placement="right" v-else>
<RouterLink :to="item.path"> <RouterLink :to="item.path">
<component :is="item.icon" class="menu-icon"></component> <component :is="item.icon" class="menu-icon"></component>
</RouterLink> </RouterLink>
</el-tooltip> </el-tooltip>
</li> </div>
</ul> <nav class="submenu" v-if="item.children">
</nav> <h1 class="submenu-title">{{ item.name }}</h1>
<nav class="submenu" v-if="currentMenu?.children?.length">
<h1 class="submenu-title">{{ currentMenu.name }}</h1>
<ul> <ul>
<li <li
v-for="item in currentMenu.children" v-for="submenu in item.children"
:key="item.path" :key="submenu.path"
:class="{ 'is-active': item.path === currentSubmenu?.path }"> :class="{ 'is-active': submenu.path === currentSubmenu?.path }">
<RouterLink :to="item.path"> <RouterLink :to="submenu.path">
<component :is="item.icon" class="submenu-icon" v-if="item.icon"></component> <component :is="submenu.icon" class="submenu-icon" v-if="submenu.icon"></component>
{{ item.name }} {{ submenu.name }}
</RouterLink> </RouterLink>
</li> </li>
</ul> </ul>
</nav> </nav>
</li>
</ul>
</nav>
</aside> </aside>
</template> </template>
...@@ -70,18 +77,19 @@ function findMenu(path: string, menus: IMenuItem[]) { ...@@ -70,18 +77,19 @@ function findMenu(path: string, menus: IMenuItem[]) {
top: 0; top: 0;
display: flex; display: flex;
height: 100vh; height: 100vh;
overflow-x: hidden; // overflow-x: hidden;
overflow-y: auto; // overflow-y: auto;
box-sizing: content-box; box-sizing: content-box;
z-index: 2001;
.menu { .menu {
width: 60px; width: 60px;
height: 100%; height: 100%;
background: #fff; background: #fff;
box-sizing: border-box; box-sizing: border-box;
overflow-y: auto; > ul > li {
overflow-x: hidden; padding: 8px;
li { }
margin: 8px; .menu-item {
height: 44px; height: 44px;
text-align: center; text-align: center;
border-radius: 4px; border-radius: 4px;
...@@ -90,10 +98,10 @@ function findMenu(path: string, menus: IMenuItem[]) { ...@@ -90,10 +98,10 @@ function findMenu(path: string, menus: IMenuItem[]) {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
}
svg { svg {
fill: var(--main-color); fill: var(--main-color);
} }
}
&.is-active { &.is-active {
background-color: var(--main-color); background-color: var(--main-color);
...@@ -102,8 +110,17 @@ function findMenu(path: string, menus: IMenuItem[]) { ...@@ -102,8 +110,17 @@ function findMenu(path: string, menus: IMenuItem[]) {
} }
} }
} }
> ul > li:hover {
.submenu {
display: block;
}
}
} }
.submenu { .submenu {
display: none;
position: absolute;
left: 100%;
top: 0;
width: 200px; width: 200px;
height: 100vh; height: 100vh;
background: #efefef; background: #efefef;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论