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

fix: #3286

上级 fc48b505
...@@ -39,25 +39,32 @@ function findMenu(path: string, menus: IMenuItem[]) { ...@@ -39,25 +39,32 @@ 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">
<RouterLink :to="item.path"> <template v-if="item.children">
<component :is="item.icon" class="menu-icon"></component> <RouterLink :to="item.path">
</RouterLink> <component :is="item.icon" class="menu-icon"></component>
</el-tooltip> </RouterLink>
</li> </template>
</ul> <el-tooltip :content="item.name" placement="right" v-else>
</nav> <RouterLink :to="item.path">
<nav class="submenu" v-if="currentMenu?.children?.length"> <component :is="item.icon" class="menu-icon"></component>
<h1 class="submenu-title">{{ currentMenu.name }}</h1> </RouterLink>
<ul> </el-tooltip>
<li </div>
v-for="item in currentMenu.children" <nav class="submenu" v-if="item.children">
:key="item.path" <h1 class="submenu-title">{{ item.name }}</h1>
:class="{ 'is-active': item.path === currentSubmenu?.path }"> <ul>
<RouterLink :to="item.path"> <li
<component :is="item.icon" class="submenu-icon" v-if="item.icon"></component> v-for="submenu in item.children"
{{ item.name }} :key="submenu.path"
</RouterLink> :class="{ 'is-active': submenu.path === currentSubmenu?.path }">
<RouterLink :to="submenu.path">
<component :is="submenu.icon" class="submenu-icon" v-if="submenu.icon"></component>
{{ submenu.name }}
</RouterLink>
</li>
</ul>
</nav>
</li> </li>
</ul> </ul>
</nav> </nav>
...@@ -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,9 +98,9 @@ function findMenu(path: string, menus: IMenuItem[]) { ...@@ -90,9 +98,9 @@ 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 {
...@@ -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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论