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="拼命加载中">
-
+
+
@@ -18,6 +19,7 @@
import MainNavbar from './main-navbar'
import MainSidebar from './main-sidebar'
+ import MainSidebarHover from './main-sidebar-hover'
import MainContent from './main-content'
export default {
@@ -40,6 +42,7 @@
components: {
MainNavbar,
MainSidebar,
+ MainSidebarHover,
MainContent
},
computed: {
@@ -96,9 +99,16 @@
this.$store.commit('user/updateUserDisplay', val)
}
},
+ useHoverMenu: {
+ get() {
+ return this.$store.state.common.useHoverMenu
+ }
+ },
},
created() {
this.getUserInfo()
+ // 确保悬浮菜单模式启用
+ this.$store.commit('common/updateUseHoverMenu', true)
},
mounted() {
this.resetDocumentClientHeight()