src/assets/styles/sidebar.scss | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/enums/SideThemeEnum.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/layout/components/Settings/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/layout/components/Sidebar/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/assets/styles/sidebar.scss
@@ -81,10 +81,16 @@ } // menu hover .theme-dark .sub-menu-title-noDropdown, .theme-dark .el-sub-menu__title { &:hover { background-color: $base-sub-menu-title-hover !important; } } .sub-menu-title-noDropdown, .el-sub-menu__title { &:hover { background-color: $base-sub-menu-title-hover !important; background-color: rgba(0, 0, 0, 0.05) !important; } } @@ -95,11 +101,11 @@ & .nest-menu .el-sub-menu > .el-sub-menu__title, & .el-sub-menu .el-menu-item { min-width: $base-sidebar-width !important; &:hover { background-color: rgba(0, 0, 0, 0.06) !important; background-color: rgba(0, 0, 0, 0.1) !important; } } & .theme-dark .nest-menu .el-sub-menu > .el-sub-menu__title, & .theme-dark .el-sub-menu .el-menu-item { @@ -107,6 +113,21 @@ &:hover { background-color: $base-sub-menu-hover !important; } } & .theme-dark .nest-menu .el-sub-menu > .el-sub-menu__title, & .theme-dark .el-menu-item { &:hover { // you can use $sub-menuHover background-color: $base-menu-hover !important; } } & .nest-menu .el-sub-menu > .el-sub-menu__title, & .el-menu-item { &:hover { // you can use $sub-menuHover background-color: rgba(0, 0, 0, 0.04) !important; } } } @@ -204,14 +225,6 @@ & > .el-menu { .svg-icon { margin-right: 16px; } } .nest-menu .el-sub-menu > .el-sub-menu__title, .el-menu-item { &:hover { // you can use $sub-menuHover background-color: $base-menu-hover !important; } } src/enums/SideThemeEnum.ts
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,4 @@ export enum SideThemeEnum { DARK = 'theme-dark', LIGHT = 'theme-light' } src/layout/components/Settings/index.vue
@@ -3,7 +3,7 @@ <h3 class="drawer-title">主é¢é£æ ¼è®¾ç½®</h3> <div class="setting-drawer-block-checbox"> <div class="setting-drawer-block-checbox-item" @click="handleTheme('theme-dark')"> <div class="setting-drawer-block-checbox-item" @click="handleTheme(SideThemeEnum.DARK)"> <img src="@/assets/images/dark.svg" alt="dark" /> <div v-if="sideTheme === 'theme-dark'" class="setting-drawer-block-checbox-selectIcon" style="display: block;"> <i aria-label="徿 : check" class="anticon anticon-check"> @@ -15,7 +15,7 @@ </i> </div> </div> <div class="setting-drawer-block-checbox-item" @click="handleTheme('theme-light')"> <div class="setting-drawer-block-checbox-item" @click="handleTheme(SideThemeEnum.LIGHT)"> <img src="@/assets/images/light.svg" alt="light" /> <div v-if="sideTheme === 'theme-light'" class="setting-drawer-block-checbox-selectIcon" style="display: block;"> <i aria-label="徿 : check" class="anticon anticon-check"> @@ -95,6 +95,7 @@ import { handleThemeStyle } from '@/utils/theme' import { ComponentInternalInstance } from "vue"; import { SettingTypeEnum } from "@/enums/SettingTypeEnum"; import { SideThemeEnum } from "@/enums/SideThemeEnum"; const { proxy } = getCurrentInstance() as ComponentInternalInstance; const appStore = useAppStore() @@ -114,6 +115,13 @@ valueDark: 'dark', valueLight: 'light', }); watch(isDark, ()=> { if (isDark.value) { settingsStore.changeSetting({ key: SettingTypeEnum.SIDE_THEME, value: SideThemeEnum.DARK }) } else { settingsStore.changeSetting({ key: SettingTypeEnum.SIDE_THEME, value: sideTheme.value }) } }) const toggleDark = () => useToggle(isDark); /** æ¯å¦éè¦topNav */ @@ -166,8 +174,13 @@ } } const handleTheme = (val: string) => { settingsStore.changeSetting({ key: SettingTypeEnum.SIDE_THEME, value: val }) sideTheme.value = val; if (isDark.value && val === SideThemeEnum.LIGHT) { // æé»æ¨¡å¼é¢è²ä¸å settingsStore.changeSetting({ key: SettingTypeEnum.SIDE_THEME, value: SideThemeEnum.DARK }) return } settingsStore.changeSetting({ key: SettingTypeEnum.SIDE_THEME, value: val }) } const saveSetting = () => { proxy?.$modal.loading("æ£å¨ä¿åå°æ¬å°ï¼è¯·ç¨å..."); src/layout/components/Sidebar/index.vue
@@ -27,7 +27,6 @@ import useAppStore from '@/store/modules/app' import useSettingsStore from '@/store/modules/settings' import usePermissionStore from '@/store/modules/permission' import { ComponentInternalInstance } from "vue"; const { proxy } = getCurrentInstance() as ComponentInternalInstance; const route = useRoute();