From c466b7f253a93d3a9b58c658adf6ec75574f5bd8 Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期二, 17 六月 2025 09:06:38 +0800 Subject: [PATCH] 公司logo动态切换,整体样式修改 --- src/layout/components/Sidebar/index.vue | 64 +++++++++++++------------------ 1 files changed, 27 insertions(+), 37 deletions(-) diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue index fd78773..0732505 100644 --- a/src/layout/components/Sidebar/index.vue +++ b/src/layout/components/Sidebar/index.vue @@ -2,23 +2,11 @@ <div :class="{ 'has-logo': showLogo }" class="sidebar-container"> <logo v-if="showLogo" :collapse="isCollapse" /> <el-scrollbar wrap-class="scrollbar-wrapper"> - <el-menu - :default-active="activeMenu" - :collapse="isCollapse" - :background-color="getMenuBackground" - :text-color="getMenuTextColor" - :unique-opened="true" - :active-text-color="theme" - :collapse-transition="false" - mode="vertical" - :class="sideTheme" - > - <sidebar-item - v-for="(route, index) in sidebarRouters" - :key="route.path + index" - :item="route" - :base-path="route.path" - /> + <el-menu :default-active="activeMenu" :collapse="isCollapse" :background-color="getMenuBackground" + :text-color="getMenuTextColor" :unique-opened="true" :active-text-color="theme" :collapse-transition="false" + mode="vertical" :class="sideTheme"> + <sidebar-item v-for="(route, index) in sidebarRouters" :key="route.path + index" :item="route" + :base-path="route.path" /> </el-menu> </el-scrollbar> </div> @@ -32,46 +20,47 @@ import useSettingsStore from '@/store/modules/settings' import usePermissionStore from '@/store/modules/permission' -const route = useRoute(); +const route = useRoute() const appStore = useAppStore() const settingsStore = useSettingsStore() const permissionStore = usePermissionStore() -const sidebarRouters = computed(() => permissionStore.sidebarRouters); -const showLogo = computed(() => settingsStore.sidebarLogo); -const sideTheme = computed(() => settingsStore.sideTheme); -const theme = computed(() => settingsStore.theme); -const isCollapse = computed(() => !appStore.sidebar.opened); +const sidebarRouters = computed(() => permissionStore.sidebarRouters) +const showLogo = computed(() => settingsStore.sidebarLogo) +const sideTheme = computed(() => settingsStore.sideTheme) +const theme = computed(() => settingsStore.theme) +const isCollapse = computed(() => !appStore.sidebar.opened) +console.log(44444, settingsStore.isDark, sideTheme.value) // 鑾峰彇鑿滃崟鑳屾櫙鑹� const getMenuBackground = computed(() => { if (settingsStore.isDark) { - return 'var(--sidebar-bg)'; + return 'var(--sidebar-bg)' } - return sideTheme.value === 'theme-dark' ? variables.menuBg : variables.menuLightBg; -}); + return sideTheme.value === 'theme-dark' ? variables.menuBg : variables.menuLightBg +}) // 鑾峰彇鑿滃崟鏂囧瓧棰滆壊 const getMenuTextColor = computed(() => { if (settingsStore.isDark) { - return 'var(--sidebar-text)'; + return 'var(--sidebar-text)' } - return sideTheme.value === 'theme-dark' ? variables.menuText : variables.menuLightText; -}); + return sideTheme.value === 'theme-dark' ? variables.menuText : variables.menuLightText +}) const activeMenu = computed(() => { - const { meta, path } = route; + const { meta, path } = route if (meta.activeMenu) { - return meta.activeMenu; + return meta.activeMenu } - return path; -}); + return path +}) </script> <style lang="scss" scoped> .sidebar-container { background-color: v-bind(getMenuBackground); - + .scrollbar-wrapper { background-color: v-bind(getMenuBackground); } @@ -80,8 +69,9 @@ border: none; height: 100%; width: 100% !important; - - .el-menu-item, .el-sub-menu__title { + + .el-menu-item, + .el-sub-menu__title { &:hover { background-color: var(--menu-hover, rgba(0, 0, 0, 0.06)) !important; } @@ -89,7 +79,7 @@ .el-menu-item { color: v-bind(getMenuTextColor); - + &.is-active { color: var(--menu-active-text, #409eff); background-color: var(--menu-hover, rgba(0, 0, 0, 0.06)) !important; -- Gitblit v1.9.3