【新增】新增左上角折叠菜单功能

This commit is contained in:
xiaonuobase 2023-04-03 15:01:01 +08:00
parent a4cfc69126
commit 1521fcc529
4 changed files with 33 additions and 36 deletions

View File

@ -21,7 +21,7 @@
</a-menu-item> </a-menu-item>
</a-menu> </a-menu>
</div> </div>
<div v-else> <div v-else class="panel-item hidden-sm-and-down">
<a-popover v-if="menu.length > 1" placement="bottomLeft"> <a-popover v-if="menu.length > 1" placement="bottomLeft">
<template #content> <template #content>
<a-row :gutter="[0, 5]" class="module-row"> <a-row :gutter="[0, 5]" class="module-row">
@ -35,9 +35,7 @@
</div> </div>
</a-row> </a-row>
</template> </template>
<div class="module-comp"> <appstore-outlined />
<appstore-outlined />
</div>
</a-popover> </a-popover>
</div> </div>
</template> </template>
@ -123,18 +121,6 @@
color: white; color: white;
font-size: 8px; font-size: 8px;
} }
.module-comp {
display: flex;
padding: 0 15px;
height: 49px;
text-align: center;
justify-content: center;
align-items: center;
cursor: pointer;
}
.module-comp:hover {
background: var(--header-color-split);
}
.ant-menu-horizontal > .ant-menu-item::after, .ant-menu-horizontal > .ant-menu-item::after,
.ant-menu-horizontal > .ant-menu-submenu::after { .ant-menu-horizontal > .ant-menu-submenu::after {
content: none; content: none;

View File

@ -204,18 +204,6 @@
align-items: center; align-items: center;
height: 100%; height: 100%;
} }
.user-bar .panel-item {
padding: 0 10px;
cursor: pointer;
height: 100%;
display: flex;
align-items: center;
}
.user-bar .panel-item i {
}
.user-bar .panel-item:hover {
background: var(--header-color-split);
}
.user-bar .user-avatar { .user-bar .user-avatar {
height: 49px; height: 49px;
display: flex; display: flex;

View File

@ -28,17 +28,21 @@
@select="onSelect" @select="onSelect"
@openChange="onOpenChange" @openChange="onOpenChange"
> >
<NavMenu :nav-menus="menu"></NavMenu> <NavMenu :nav-menus="menu" />
</a-menu> </a-menu>
</div> </div>
</div> </div>
</a-layout-sider> </a-layout-sider>
<!-- 手机端情况下的左侧菜单 --> <!-- 手机端情况下的左侧菜单 -->
<Side-m v-if="ismobile"></Side-m> <Side-m v-if="ismobile" />
<!-- 右侧布局 --> <!-- 右侧布局 -->
<a-layout> <a-layout>
<div id="snowyHeader" class="snowy-header"> <div id="snowyHeader" class="snowy-header">
<div class="snowy-header-left" style="padding-left: 0px"> <div class="snowy-header-left" style="padding-left: 0px">
<div v-if="!ismobile" class="panel-item hidden-sm-and-down" @click="menuIsCollapseClick">
<MenuUnfoldOutlined v-if="menuIsCollapse" />
<MenuFoldOutlined v-else />
</div>
<moduleMenu @switchModule="switchModule" /> <moduleMenu @switchModule="switchModule" />
<Topbar v-if="!ismobile && breadcrumbOpen" /> <Topbar v-if="!ismobile && breadcrumbOpen" />
</div> </div>
@ -47,7 +51,7 @@
</div> </div>
</div> </div>
<!-- 多标签 --> <!-- 多标签 -->
<Tags v-if="!ismobile && layoutTagsOpen"></Tags> <Tags v-if="!ismobile && layoutTagsOpen" />
<a-layout-content class="main-content-wrapper"> <a-layout-content class="main-content-wrapper">
<div id="adminui-main" class="adminui-main"> <div id="adminui-main" class="adminui-main">
<router-view v-slot="{ Component }"> <router-view v-slot="{ Component }">
@ -55,7 +59,7 @@
<component :is="Component" :key="$route.name" v-if="routeShow" /> <component :is="Component" :key="$route.name" v-if="routeShow" />
</keep-alive> </keep-alive>
</router-view> </router-view>
<iframe-view></iframe-view> <iframe-view />
<div class="main-bottom-wrapper"> <div class="main-bottom-wrapper">
<a style="color: #a0a0a0" :href="sysBaseConfig.SNOWY_SYS_COPYRIGHT_URL" target="_blank">{{ <a style="color: #a0a0a0" :href="sysBaseConfig.SNOWY_SYS_COPYRIGHT_URL" target="_blank">{{
sysBaseConfig.SNOWY_SYS_COPYRIGHT sysBaseConfig.SNOWY_SYS_COPYRIGHT
@ -132,14 +136,18 @@
:theme="secondMenuSideTheme" :theme="secondMenuSideTheme"
@select="onSelect" @select="onSelect"
> >
<NavMenu :nav-menus="nextMenu"></NavMenu> <NavMenu :nav-menus="nextMenu" />
</a-menu> </a-menu>
</a-layout-sider> </a-layout-sider>
<!-- 手机端情况下的左侧菜单 --> <!-- 手机端情况下的左侧菜单 -->
<Side-m v-if="ismobile"></Side-m> <Side-m v-if="ismobile" />
<a-layout> <a-layout>
<div id="snowyHeader" class="snowy-header"> <div id="snowyHeader" class="snowy-header">
<div class="snowy-header-left" style="padding-left: 0px"> <div class="snowy-header-left" style="padding-left: 0px">
<div v-if="!ismobile" class="panel-item hidden-sm-and-down" @click="menuIsCollapseClick">
<MenuUnfoldOutlined v-if="menuIsCollapse" />
<MenuFoldOutlined v-else />
</div>
<moduleMenu @switchModule="switchModule" /> <moduleMenu @switchModule="switchModule" />
<Topbar v-if="!ismobile && breadcrumbOpen" /> <Topbar v-if="!ismobile && breadcrumbOpen" />
</div> </div>
@ -156,7 +164,7 @@
<component :is="Component" v-if="routeShow" :key="$route.name" /> <component :is="Component" v-if="routeShow" :key="$route.name" />
</keep-alive> </keep-alive>
</router-view> </router-view>
<iframe-view></iframe-view> <iframe-view />
<div class="main-bottom-wrapper"> <div class="main-bottom-wrapper">
<a style="color: #a0a0a0" :href="sysBaseConfig.SNOWY_SYS_COPYRIGHT_URL" target="_blank">{{ <a style="color: #a0a0a0" :href="sysBaseConfig.SNOWY_SYS_COPYRIGHT_URL" target="_blank">{{
sysBaseConfig.SNOWY_SYS_COPYRIGHT sysBaseConfig.SNOWY_SYS_COPYRIGHT
@ -184,7 +192,7 @@
import moduleMenu from './components/moduleMenu.vue' import moduleMenu from './components/moduleMenu.vue'
import { ThemeModeEnum } from '@/utils/enum' import { ThemeModeEnum } from '@/utils/enum'
import { globalStore, keepAliveStore } from '@/store' import { globalStore, keepAliveStore } from '@/store'
import { mapState, mapActions } from 'pinia' import { mapState, mapStores, mapActions } from 'pinia'
import tool from '@/utils/tool' import tool from '@/utils/tool'
export default defineComponent({ export default defineComponent({
@ -213,6 +221,7 @@
} }
}, },
computed: { computed: {
...mapStores(globalStore),
...mapState(globalStore, [ ...mapState(globalStore, [
'theme', 'theme',
'ismobile', 'ismobile',
@ -454,6 +463,9 @@
}) })
return newMap return newMap
}, },
menuIsCollapseClick() {
this.globalStore.toggleConfig('menuIsCollapse')
},
// 退 // 退
exitMaximize() { exitMaximize() {
document.getElementById('app').classList.remove('main-maximize') document.getElementById('app').classList.remove('main-maximize')

View File

@ -236,6 +236,17 @@ a, button, input, textarea {
align-items: center; align-items: center;
} }
.panel-item {
padding: 0 10px;
cursor: pointer;
height: 100%;
display: flex;
align-items: center;
}
.panel-item:hover {
background: var(--header-color-split);
}
/* 多标签 */ /* 多标签 */
.snowy-tags { .snowy-tags {
height: 40px; height: 40px;