mirror of
https://gitee.com/dapppp/ruoyi-plus-vben5.git
synced 2026-04-11 02:43:14 +08:00
fix: 双列菜单模式下新增深色侧边栏和深色侧边栏子栏 (#7542)
* fix: 双列菜单模式下新增深色侧边栏和深色侧边栏子栏 * fix: 修复报错 config.test.ts.snap * fix: 修复lint报错 * fix: 修复侧边栏菜单文本内容溢出问题 * fix: 修复lint报错
This commit is contained in:
@@ -60,6 +60,11 @@ const sidebarTheme = computed(() => {
|
||||
return dark ? 'dark' : 'light';
|
||||
});
|
||||
|
||||
const sidebarThemeSub = computed(() => {
|
||||
const dark = isDark.value || preferences.theme.semiDarkSidebarSub;
|
||||
return dark ? 'dark' : 'light';
|
||||
});
|
||||
|
||||
const headerTheme = computed(() => {
|
||||
const dark = isDark.value || preferences.theme.semiDarkHeader;
|
||||
return dark ? 'dark' : 'light';
|
||||
@@ -240,6 +245,7 @@ const headerSlots = computed(() => {
|
||||
:sidebar-hidden="preferences.sidebar.hidden"
|
||||
:sidebar-mixed-width="preferences.sidebar.mixedWidth"
|
||||
:sidebar-theme="sidebarTheme"
|
||||
:sidebar-theme-sub="sidebarThemeSub"
|
||||
:sidebar-width="preferences.sidebar.width"
|
||||
:side-collapse-width="preferences.sidebar.collapseWidth"
|
||||
:tabbar-enable="preferences.tabbar.enable"
|
||||
@@ -355,7 +361,7 @@ const headerSlots = computed(() => {
|
||||
:collapse="preferences.sidebar.extraCollapse"
|
||||
:menus="wrapperMenus(extraMenus)"
|
||||
:rounded="isMenuRounded"
|
||||
:theme="sidebarTheme"
|
||||
:theme="sidebarThemeSub"
|
||||
/>
|
||||
</template>
|
||||
<template #side-extra-title>
|
||||
|
||||
@@ -3,8 +3,11 @@ import type { Component } from 'vue';
|
||||
|
||||
import type { ThemeModeType } from '@vben/types';
|
||||
|
||||
import { watch } from 'vue';
|
||||
|
||||
import { MoonStar, Sun, SunMoon } from '@vben/icons';
|
||||
import { $t } from '@vben/locales';
|
||||
import { usePreferences } from '@vben/preferences';
|
||||
|
||||
import SwitchItem from '../switch-item.vue';
|
||||
|
||||
@@ -14,8 +17,20 @@ defineOptions({
|
||||
|
||||
const modelValue = defineModel<string>({ default: 'auto' });
|
||||
const themeSemiDarkSidebar = defineModel<boolean>('themeSemiDarkSidebar');
|
||||
const themeSemiDarkSidebarSub = defineModel<boolean>('themeSemiDarkSidebarSub');
|
||||
const themeSemiDarkHeader = defineModel<boolean>('themeSemiDarkHeader');
|
||||
|
||||
const { layout } = usePreferences();
|
||||
|
||||
watch(
|
||||
() => themeSemiDarkSidebar.value,
|
||||
() => {
|
||||
if (!themeSemiDarkSidebar.value) {
|
||||
themeSemiDarkSidebarSub.value = themeSemiDarkSidebar.value;
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
const THEME_PRESET: Array<{ icon: Component; name: ThemeModeType }> = [
|
||||
{
|
||||
icon: Sun,
|
||||
@@ -71,11 +86,27 @@ function nameView(name: string) {
|
||||
|
||||
<SwitchItem
|
||||
v-model="themeSemiDarkSidebar"
|
||||
:disabled="modelValue === 'dark'"
|
||||
:disabled="
|
||||
modelValue === 'dark' ||
|
||||
layout === 'header-nav' ||
|
||||
layout === 'full-content'
|
||||
"
|
||||
:tip="$t('preferences.theme.darkSidebarTip')"
|
||||
class="mt-6"
|
||||
>
|
||||
{{ $t('preferences.theme.darkSidebar') }}
|
||||
</SwitchItem>
|
||||
<SwitchItem
|
||||
v-model="themeSemiDarkSidebarSub"
|
||||
:disabled="
|
||||
modelValue === 'dark' ||
|
||||
(layout !== 'header-mixed-nav' && layout !== 'sidebar-mixed-nav') ||
|
||||
!themeSemiDarkSidebar
|
||||
"
|
||||
:tip="$t('preferences.theme.darkSidebarSubTip')"
|
||||
>
|
||||
{{ $t('preferences.theme.darkSidebarSub') }}
|
||||
</SwitchItem>
|
||||
<SwitchItem v-model="themeSemiDarkHeader" :disabled="modelValue === 'dark'">
|
||||
{{ $t('preferences.theme.darkHeader') }}
|
||||
</SwitchItem>
|
||||
|
||||
@@ -88,6 +88,7 @@ const themeMode = defineModel<ThemeModeType>('themeMode');
|
||||
const themeRadius = defineModel<string>('themeRadius');
|
||||
const themeFontSize = defineModel<number>('themeFontSize');
|
||||
const themeSemiDarkSidebar = defineModel<boolean>('themeSemiDarkSidebar');
|
||||
const themeSemiDarkSidebarSub = defineModel<boolean>('themeSemiDarkSidebarSub');
|
||||
const themeSemiDarkHeader = defineModel<boolean>('themeSemiDarkHeader');
|
||||
|
||||
const sidebarEnable = defineModel<boolean>('sidebarEnable');
|
||||
@@ -319,6 +320,7 @@ async function handleReset() {
|
||||
v-model="themeMode"
|
||||
v-model:theme-semi-dark-header="themeSemiDarkHeader"
|
||||
v-model:theme-semi-dark-sidebar="themeSemiDarkSidebar"
|
||||
v-model:theme-semi-dark-sidebar-sub="themeSemiDarkSidebarSub"
|
||||
/>
|
||||
</Block>
|
||||
<Block :title="$t('preferences.theme.builtin.title')">
|
||||
|
||||
Reference in New Issue
Block a user