From 7160ea32cbcfa6e30f366ea9e2b8c13e1a5f0ab7 Mon Sep 17 00:00:00 2001 From: JEECG <445654970@qq.com> Date: Tue, 15 Apr 2025 11:24:22 +0800 Subject: [PATCH] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=B8=BB=E9=A2=98=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=B8=8D=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeecgboot-vue3/src/settings/projectSetting.ts | 5 +++++ jeecgboot-vue3/src/store/modules/app.ts | 17 ++++++++++++++++- jeecgboot-vue3/types/config.d.ts | 2 ++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/jeecgboot-vue3/src/settings/projectSetting.ts b/jeecgboot-vue3/src/settings/projectSetting.ts index 3660ee508..a0d382ea9 100644 --- a/jeecgboot-vue3/src/settings/projectSetting.ts +++ b/jeecgboot-vue3/src/settings/projectSetting.ts @@ -12,6 +12,7 @@ import { } from '/@/enums/appEnum'; import { SIDE_BAR_BG_COLOR_LIST, HEADER_PRESET_BG_COLOR_LIST } from './designSetting'; import { primaryColor } from '../../build/config/themeConfig'; +import { darkMode } from '/@/settings/designSetting'; // ! 改动后需要清空浏览器缓存 const setting: ProjectConfig = { @@ -43,6 +44,10 @@ const setting: ProjectConfig = { // 项目主题色 themeColor: primaryColor, + // update-begin--author:liaozhiyang---date:20250414--for:【QQYUN-11956】修复projectSetting中配置主题模式不生效 + // 项目主题模式 + themeMode: darkMode, + // update-end--author:liaozhiyang---date:20250414--for:【QQYUN-11956】修复projectSetting中配置主题模式不生效 // 网站灰色模式,用于可能悼念的日期开启 grayMode: false, diff --git a/jeecgboot-vue3/src/store/modules/app.ts b/jeecgboot-vue3/src/store/modules/app.ts index ee5c4f9d7..26a0867a8 100644 --- a/jeecgboot-vue3/src/store/modules/app.ts +++ b/jeecgboot-vue3/src/store/modules/app.ts @@ -12,6 +12,7 @@ import { darkMode } from '/@/settings/designSetting'; import { resetRouter } from '/@/router'; import { deepMerge } from '/@/utils'; import { getHideLayoutTypes } from '/@/utils/env'; +import setting from '/@/settings/projectSetting'; interface AppState { darkMode?: ThemeEnum; @@ -42,7 +43,20 @@ export const useAppStore = defineStore({ return this.pageLoading; }, getDarkMode(): 'light' | 'dark' | string { - return this.darkMode || localStorage.getItem(APP_DARK_MODE_KEY_) || darkMode; + // liaozhiyang---date:20250411---for:【QQYUN-11956】修复projectSetting中配置主题模式不生效 + const getSettingTheme = () => { + const theme = setting.themeMode; + if (theme) { + if (theme == ThemeEnum.DARK) { + // 为了index.html页面loading时是暗黑 + localStorage.setItem(APP_DARK_MODE_KEY_, theme); + } + return theme; + } + return ''; + }; + // liaozhiyang---date:20250411---for:【QQYUN-11956】修复projectSetting中配置主题模式不生效 + return this.darkMode || localStorage.getItem(APP_DARK_MODE_KEY_) || getSettingTheme() || darkMode; }, getBeforeMiniInfo(): BeforeMiniState { @@ -102,6 +116,7 @@ export const useAppStore = defineStore({ setDarkMode(mode: ThemeEnum): void { this.darkMode = mode; localStorage.setItem(APP_DARK_MODE_KEY_, mode); + this.setProjectConfig({ themeMode: mode }); }, setBeforeMiniInfo(state: BeforeMiniState): void { diff --git a/jeecgboot-vue3/types/config.d.ts b/jeecgboot-vue3/types/config.d.ts index 6f602d47c..32a7a9cbc 100644 --- a/jeecgboot-vue3/types/config.d.ts +++ b/jeecgboot-vue3/types/config.d.ts @@ -104,6 +104,8 @@ export interface ProjectConfig { colorWeak: boolean; // Theme color themeColor: string; + // Theme Mode + themeMode: string; // The main interface is displayed in full screen, the menu is not displayed, and the top fullContent: boolean;