mirror of
https://github.com/soybeanjs/soybean-admin.git
synced 2025-09-29 22:56:41 +08:00
feat(projects): support restore default theme config
This commit is contained in:
parent
35de124efb
commit
b0868f6ea8
@ -38,6 +38,14 @@ function handleReset() {
|
|||||||
}, 50);
|
}, 50);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleRestore() {
|
||||||
|
themeStore.restoreThemeSettings();
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
window.$message?.success($t('theme.configOperation.restoreSuccessMsg'));
|
||||||
|
}, 50);
|
||||||
|
}
|
||||||
|
|
||||||
const dataClipboardText = computed(() => getClipboardText());
|
const dataClipboardText = computed(() => getClipboardText());
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
@ -49,6 +57,7 @@ onMounted(() => {
|
|||||||
<div class="w-full flex justify-between">
|
<div class="w-full flex justify-between">
|
||||||
<textarea id="themeConfigCopyTarget" v-model="dataClipboardText" class="absolute opacity-0 -z-1" />
|
<textarea id="themeConfigCopyTarget" v-model="dataClipboardText" class="absolute opacity-0 -z-1" />
|
||||||
<NButton type="error" ghost @click="handleReset">{{ $t('theme.configOperation.resetConfig') }}</NButton>
|
<NButton type="error" ghost @click="handleReset">{{ $t('theme.configOperation.resetConfig') }}</NButton>
|
||||||
|
<NButton type="success" ghost @click="handleRestore">{{ $t('theme.configOperation.restoreConfig') }}</NButton>
|
||||||
<div ref="domRef" data-clipboard-target="#themeConfigCopyTarget">
|
<div ref="domRef" data-clipboard-target="#themeConfigCopyTarget">
|
||||||
<NButton type="primary">{{ $t('theme.configOperation.copyConfig') }}</NButton>
|
<NButton type="primary">{{ $t('theme.configOperation.copyConfig') }}</NButton>
|
||||||
</div>
|
</div>
|
||||||
|
@ -132,8 +132,10 @@ const local: App.I18n.Schema = {
|
|||||||
configOperation: {
|
configOperation: {
|
||||||
copyConfig: 'Copy Config',
|
copyConfig: 'Copy Config',
|
||||||
copySuccessMsg: 'Copy Success, Please replace the variable "themeSettings" in "src/theme/settings.ts"',
|
copySuccessMsg: 'Copy Success, Please replace the variable "themeSettings" in "src/theme/settings.ts"',
|
||||||
resetConfig: 'Reset Config',
|
resetConfig: 'Reset',
|
||||||
resetSuccessMsg: 'Reset Success'
|
resetSuccessMsg: 'Reset Success',
|
||||||
|
restoreConfig: 'Restore',
|
||||||
|
restoreSuccessMsg: 'Restore Success'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
route: {
|
route: {
|
||||||
|
@ -133,7 +133,9 @@ const local: App.I18n.Schema = {
|
|||||||
copyConfig: '复制配置',
|
copyConfig: '复制配置',
|
||||||
copySuccessMsg: '复制成功,请替换 src/theme/settings.ts 中的变量 themeSettings',
|
copySuccessMsg: '复制成功,请替换 src/theme/settings.ts 中的变量 themeSettings',
|
||||||
resetConfig: '重置配置',
|
resetConfig: '重置配置',
|
||||||
resetSuccessMsg: '重置成功'
|
resetSuccessMsg: '重置成功',
|
||||||
|
restoreConfig: '恢复默认配置',
|
||||||
|
restoreSuccessMsg: '恢复成功'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
route: {
|
route: {
|
||||||
|
@ -56,10 +56,15 @@ export const useThemeStore = defineStore(SetupStoreId.Theme, () => {
|
|||||||
const settingsJson = computed(() => JSON.stringify(settings.value));
|
const settingsJson = computed(() => JSON.stringify(settings.value));
|
||||||
|
|
||||||
/** Reset store */
|
/** Reset store */
|
||||||
function resetStore() {
|
function resetStore(state?: Partial<typeof themeSettings>) {
|
||||||
const themeStore = useThemeStore();
|
const themeStore = useThemeStore();
|
||||||
const reset = themeStore.$reset as (arg?: Partial<typeof themeSettings>) => void;
|
const reset = themeStore.$reset as (arg?: Partial<typeof themeSettings>) => void;
|
||||||
reset(themeSettings);
|
reset(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Restore theme settings */
|
||||||
|
function restoreThemeSettings() {
|
||||||
|
resetStore(themeSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -187,6 +192,7 @@ export const useThemeStore = defineStore(SetupStoreId.Theme, () => {
|
|||||||
settingsJson,
|
settingsJson,
|
||||||
setGrayscale,
|
setGrayscale,
|
||||||
resetStore,
|
resetStore,
|
||||||
|
restoreThemeSettings,
|
||||||
setThemeScheme,
|
setThemeScheme,
|
||||||
toggleThemeScheme,
|
toggleThemeScheme,
|
||||||
updateThemeColors,
|
updateThemeColors,
|
||||||
|
2
src/typings/app.d.ts
vendored
2
src/typings/app.d.ts
vendored
@ -351,6 +351,8 @@ declare namespace App {
|
|||||||
copySuccessMsg: string;
|
copySuccessMsg: string;
|
||||||
resetConfig: string;
|
resetConfig: string;
|
||||||
resetSuccessMsg: string;
|
resetSuccessMsg: string;
|
||||||
|
restoreConfig: string;
|
||||||
|
restoreSuccessMsg: string;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
route: Record<I18nRouteKey, string>;
|
route: Record<I18nRouteKey, string>;
|
||||||
|
Loading…
Reference in New Issue
Block a user