From 64d172717748c383a5c88348037354bffd60f966 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期二, 27 五月 2025 17:52:03 +0800 Subject: [PATCH] 页面样式修改 --- src/layout/components/Sidebar/index.vue | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 104 insertions(+), 0 deletions(-) diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue new file mode 100644 index 0000000..be695d1 --- /dev/null +++ b/src/layout/components/Sidebar/index.vue @@ -0,0 +1,104 @@ +<template> + <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="true" + :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> +</template> + +<script setup> +import Logo from './Logo' +import SidebarItem from './SidebarItem' +import variables from '@/assets/styles/variables.module.scss' +import useAppStore from '@/store/modules/app' +import useSettingsStore from '@/store/modules/settings' +import usePermissionStore from '@/store/modules/permission' + +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 getMenuBackground = computed(() => { + if (settingsStore.isDark) { + return 'var(--sidebar-bg)' + } + return sideTheme.value === 'theme-dark' ? variables.menuBg : variables.menuLightBg +}) + +// 鑾峰彇鑿滃崟鏂囧瓧棰滆壊 +const getMenuTextColor = computed(() => { + if (settingsStore.isDark) { + return 'var(--sidebar-text)' + } + return sideTheme.value === 'theme-dark' ? variables.menuText : variables.menuLightText +}) + +const activeMenu = computed(() => { + const { meta, path } = route + if (meta.activeMenu) { + return meta.activeMenu + } + return path +}) +</script> + +<style lang="scss" scoped> +.sidebar-container { + background-color: v-bind(getMenuBackground); + + .scrollbar-wrapper { + background-color: v-bind(getMenuBackground); + } + + .el-menu { + border: none; + height: 100%; + width: 100% !important; + + .el-menu-item, .el-sub-menu__title { + &:hover { + background-color: var(--menu-hover, rgba(0, 0, 0, 0.06)) !important; + } + } + + .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; + } + } + + .el-sub-menu__title { + color: v-bind(getMenuTextColor); + } + } +} +</style> -- Gitblit v1.9.3