兰宝车间质量管理系统-前端
ahao
2023-09-02 93fb212e0c0d5e8f2a78ae360e2126dc5c7d8698
fix #I7WUYJ 菜单切换主题为浅色主题后颜色不正常
已添加1个文件
已修改3个文件
59 ■■■■ 文件已修改
src/assets/styles/sidebar.scss 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/enums/SideThemeEnum.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/Settings/index.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/Sidebar/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | 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();