import { getValueByKey } from '@/api/login' import { getSettingConfig } from '@/api/app' import { DEFAULT_THEME_COLOR, DEFAULT_THEME_COLOR_KEY, getCookieInDomain, setCookieInDomain } from '@/utils/theme' import { getToken, getUserInfo } from '@/utils/auth' const actions = { //获取默认主题颜色并缓存 async GetDefaultThemeColor(context) { const token = getToken() if (!token) return false // 修改从用户配置获取 const data = { params: { userId: getUserInfo().userId, systemCode: window._config.systemCode, prsnType: 'theme' } } const themeConfigRes = await getSettingConfig(data) console.log('主题色请求', themeConfigRes) if (themeConfigRes.code === 800) { let themeData = themeConfigRes?.data?.[0] || '' if (themeData) { try { themeData = JSON.parse(themeData.storeData) || '' for (const key in themeData) { if (key === 'themeColor') { setCookieInDomain(DEFAULT_THEME_COLOR_KEY, themeData[key] || DEFAULT_THEME_COLOR) } else if (key === 'lang') { context.commit('SET_LANG', themeData[key] || 'zh-cn') window?.$vueApp?.config?.globalProperties?.$i18n && (window.$vueApp.config.globalProperties.$i18n.locale = themeData[key] || 'zh-cn') } else { const value = themeData[key]; if (value) { let valueStr = value if (typeof value === 'object') { valueStr = JSON.stringify(value) } setCookieInDomain(key, valueStr) } } } } catch (error) { themeData = '' } } } // const res = await getValueByKey({ configKey: 'DEFAULT_THEMECOLOR' }) // // 获取 cookie 中的 themeColor // const cacheThemeColor = getCookieInDomain(DEFAULT_THEME_COLOR_KEY) // if (res.data) { // context.commit('SET_CONFIG_THEME_COLOR', res.data) // // 如果和缓存的主题色值不一致,更新主题色 // if (res.data !== cacheThemeColor) { // setCookieInDomain(DEFAULT_THEME_COLOR_KEY, res.data || cacheThemeColor || DEFAULT_THEME_COLOR) // } // } return themeConfigRes.data }, // 获取是否隐藏主题控件 async GetHideThemeControlStatus({ commit }) { const res = await getValueByKey({ configKey: 'HIDE_THEME_CONTROL' }) if (res.data) { commit('SET_HIDE_THEME_CONTROL', res.data) return res.data } return false } } export default actions