refactor(projects): 生产环境缓存主题变更为sessionStorage
This commit is contained in:
parent
43ac23f113
commit
c46a5920e5
@ -17,7 +17,7 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useAppInfo } from '@/composables';
|
||||
import { localStg, getRgbOfColor } from '@/utils';
|
||||
import { sessionStg, getRgbOfColor } from '@/utils';
|
||||
import themeSettings from '@/settings/theme.json';
|
||||
|
||||
const { title } = useAppInfo();
|
||||
@ -31,7 +31,7 @@ const lodingClasses = [
|
||||
|
||||
function addThemeColorCssVars() {
|
||||
const defaultColor = themeSettings.themeColor;
|
||||
const themeColor = localStg.get('themeColor') || defaultColor;
|
||||
const themeColor = sessionStg.get('themeColor') || defaultColor;
|
||||
|
||||
const { r, g, b } = getRgbOfColor(themeColor);
|
||||
|
||||
|
@ -1,19 +1,19 @@
|
||||
import type { GlobalThemeOverrides } from 'naive-ui';
|
||||
import { cloneDeep } from 'lodash-es';
|
||||
import { themeSetting } from '@/settings';
|
||||
import { localStg, addColorAlpha, getColorPalette } from '@/utils';
|
||||
import { sessionStg, addColorAlpha, getColorPalette } from '@/utils';
|
||||
|
||||
/** 初始化主题配置 */
|
||||
export function initThemeSettings() {
|
||||
const isProd = import.meta.env.PROD;
|
||||
// 生产环境才缓存主题配置,本地开发实时调整配置更改配置的json
|
||||
const storageSettings = localStg.get('themeSettings');
|
||||
const storageSettings = sessionStg.get('themeSettings');
|
||||
|
||||
if (isProd && storageSettings) {
|
||||
return storageSettings;
|
||||
}
|
||||
|
||||
const themeColor = localStg.get('themeColor') || themeSetting.themeColor;
|
||||
const themeColor = sessionStg.get('themeColor') || themeSetting.themeColor;
|
||||
const info = themeSetting.isCustomizeInfoColor ? themeSetting.otherColor.info : getColorPalette(themeColor, 7);
|
||||
const otherColor = { ...themeSetting.otherColor, info };
|
||||
const setting = cloneDeep({ ...themeSetting, themeColor, otherColor });
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { defineStore } from 'pinia';
|
||||
import { darkTheme } from 'naive-ui';
|
||||
import { localStg } from '@/utils';
|
||||
import { sessionStg } from '@/utils';
|
||||
import { getNaiveThemeOverrides, initThemeSettings } from './helpers';
|
||||
|
||||
type ThemeState = Theme.Setting;
|
||||
@ -25,14 +25,14 @@ export const useThemeStore = defineStore('theme-store', {
|
||||
actions: {
|
||||
/** 重置theme状态 */
|
||||
resetThemeStore() {
|
||||
localStg.remove('themeSettings');
|
||||
sessionStg.remove('themeSettings');
|
||||
this.$reset();
|
||||
},
|
||||
/** 缓存主题配置 */
|
||||
cacheThemeSettings() {
|
||||
const isProd = import.meta.env.PROD;
|
||||
if (isProd) {
|
||||
localStg.set('themeSettings', this.$state);
|
||||
sessionStg.set('themeSettings', this.$state);
|
||||
}
|
||||
},
|
||||
/** 设置暗黑模式 */
|
||||
|
@ -3,7 +3,7 @@ import { useOsTheme } from 'naive-ui';
|
||||
import type { GlobalThemeOverrides } from 'naive-ui';
|
||||
import { useElementSize } from '@vueuse/core';
|
||||
import { kebabCase } from 'lodash-es';
|
||||
import { localStg, getColorPalettes, getRgbOfColor } from '@/utils';
|
||||
import { sessionStg, getColorPalettes, getRgbOfColor } from '@/utils';
|
||||
import { useThemeStore } from '../modules';
|
||||
|
||||
/** 订阅theme store */
|
||||
@ -19,7 +19,7 @@ export default function subscribeThemeStore() {
|
||||
watch(
|
||||
() => theme.themeColor,
|
||||
newValue => {
|
||||
localStg.set('themeColor', newValue);
|
||||
sessionStg.set('themeColor', newValue);
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
|
9
src/typings/storage.d.ts
vendored
9
src/typings/storage.d.ts
vendored
@ -1,21 +1,20 @@
|
||||
declare namespace StorageInterface {
|
||||
/** localStorage的存储数据的类型 */
|
||||
interface Session {
|
||||
demoKey: string;
|
||||
/** 主题颜色 */
|
||||
themeColor: string;
|
||||
/** 主题配置 */
|
||||
themeSettings: Theme.Setting;
|
||||
}
|
||||
|
||||
/** localStorage的存储数据的类型 */
|
||||
interface Local {
|
||||
/** 主题颜色 */
|
||||
themeColor: string;
|
||||
/** 用户token */
|
||||
token: string;
|
||||
/** 用户刷新token */
|
||||
refreshToken: string;
|
||||
/** 用户信息 */
|
||||
userInfo: Auth.UserInfo;
|
||||
/** 主题配置 */
|
||||
themeSettings: Theme.Setting;
|
||||
/** 多页签路由信息 */
|
||||
multiTabRoutes: App.GlobalTabRoute[];
|
||||
/** 本地语言缓存 */
|
||||
|
Loading…
Reference in New Issue
Block a user