diff --git a/src/components/ThemeCustomizer.vue b/src/components/ThemeCustomizer.vue index a6dbefd5..06c50cf0 100644 --- a/src/components/ThemeCustomizer.vue +++ b/src/components/ThemeCustomizer.vue @@ -30,6 +30,7 @@ const { isCustomized, resetSettings, setLayout, setPrimaryColor, setSemiDarkMenu const { appMode } = usePWA() const { t } = useI18n() const { global: globalTheme } = useTheme() +const defaultPrimaryColor = themeCustomizerPrimaryColors[0].value const drawer = computed({ get: () => props.modelValue, @@ -55,9 +56,23 @@ const layoutOptions = computed !appMode.value) + +const hasAppModeCustomization = computed(() => { + return ( + settings.value.primaryColor !== defaultPrimaryColor || + settings.value.skin !== 'default' || + settings.value.theme !== 'auto' + ) +}) + +const showResetBadge = computed(() => (appMode.value ? hasAppModeCustomization.value : isCustomized.value)) + const showSemiDarkMenuOption = computed(() => { return ( - !globalTheme.current.value.dark && (settings.value.layout === 'vertical' || settings.value.layout === 'collapsed') + !appMode.value && + !globalTheme.current.value.dark && + (settings.value.layout === 'vertical' || settings.value.layout === 'collapsed') ) }) @@ -77,6 +92,19 @@ function handleLayoutChange(layout: ThemeCustomizerLayout) { setLayout(layout) } + +async function handleResetSettings() { + if (!appMode.value) { + await resetSettings() + + return + } + + // App 模式共享定制器,但保留桌面导航相关偏好,只重置 App 侧可调整的外观设置。 + await setPrimaryColor(defaultPrimaryColor) + await setSkin('default') + await setTheme('auto') +} - + @@ -660,23 +658,6 @@ onUnmounted(() => { -