diff --git a/src/store/modules/common.js b/src/store/modules/common.js index 1903bb4..0e8a4e7 100644 --- a/src/store/modules/common.js +++ b/src/store/modules/common.js @@ -12,6 +12,8 @@ export default { // 侧边栏, 菜单 menuList: [], menuActiveName: '', + // 菜单模式, true为悬浮菜单, false为传统菜单 + useHoverMenu: true, // 内容, 是否需要刷新 contentIsNeedRefresh: false, // 主入口标签页 @@ -45,6 +47,9 @@ export default { }, updateMainTabsActiveName (state, name) { state.mainTabsActiveName = name + }, + updateUseHoverMenu (state, useHover) { + state.useHoverMenu = useHover } } } diff --git a/src/views/main-navbar.vue b/src/views/main-navbar.vue index c87cba7..f88fa6a 100644 --- a/src/views/main-navbar.vue +++ b/src/views/main-navbar.vue @@ -9,6 +9,9 @@ + + + {{ pageLanguage.XjSysManage }} {{ pageLanguage.abbreviation }} @@ -252,6 +255,20 @@ export default { get() { return this.$store.state.user.userDisplay } + }, + useHoverMenu: { + get() { + return this.$store.state.common.useHoverMenu + }, + set(val) { + this.$store.commit('common/updateUseHoverMenu', val) + } + }, + menuModeIcon() { + return this.useHoverMenu ? 'zhedie' : 'zhedie' + }, + menuModeTitle() { + return this.useHoverMenu ? '切换到传统菜单' : '切换到悬浮菜单' } }, activated() { @@ -369,6 +386,11 @@ export default { }) }).catch(() => { }) + }, + // 切换菜单模式 + toggleMenuMode() { + this.useHoverMenu = !this.useHoverMenu + this.$message.success(this.useHoverMenu ? '已切换到悬浮菜单模式' : '已切换到传统菜单模式') } }, created() { @@ -398,5 +420,27 @@ export default { color: #3b4249; } +/* 菜单切换按钮悬停显示效果 */ +.menu-toggle-btn { + opacity: 0; + visibility: hidden; + transition: all 0.3s ease; + transform: translateX(-10px); +} + +.site-navbar__menu:hover .menu-toggle-btn, +.menu-toggle-btn:hover { + opacity: 1; + visibility: visible; + transform: translateX(0); +} + +/* 为了更好的用户体验,也可以在整个导航栏悬停时显示 */ +.site-navbar__brand:hover .menu-toggle-btn { + opacity: 1; + visibility: visible; + transform: translateX(0); +} + diff --git a/src/views/main-sidebar-hover.vue b/src/views/main-sidebar-hover.vue new file mode 100644 index 0000000..581be5f --- /dev/null +++ b/src/views/main-sidebar-hover.vue @@ -0,0 +1,795 @@ + + + + + diff --git a/src/views/main.vue b/src/views/main.vue index 4836262..12bf20b 100644 --- a/src/views/main.vue +++ b/src/views/main.vue @@ -6,7 +6,8 @@ element-loading-text="拼命加载中">