mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2024-11-23 18:49:21 +08:00
feat: 主题色保存/恢复增加确认提示 (#7036)
This commit is contained in:
parent
4c01b1e542
commit
911b4076f5
@ -164,53 +164,63 @@ const changeDarkColor = (color: string) => {
|
|||||||
|
|
||||||
const onSave = async (formEl: FormInstance | undefined) => {
|
const onSave = async (formEl: FormInstance | undefined) => {
|
||||||
if (!formEl) return;
|
if (!formEl) return;
|
||||||
await formEl.validate(async (valid) => {
|
ElMessageBox.confirm(i18n.global.t('xpack.theme.setHelper'), i18n.global.t('commons.button.save'), {
|
||||||
if (!valid) return;
|
confirmButtonText: i18n.global.t('commons.button.confirm'),
|
||||||
form.themeColor = { light: form.light, dark: form.dark };
|
cancelButtonText: i18n.global.t('commons.button.cancel'),
|
||||||
|
type: 'info',
|
||||||
|
}).then(async () => {
|
||||||
|
await formEl.validate(async (valid) => {
|
||||||
|
if (!valid) return;
|
||||||
|
form.themeColor = { light: form.light, dark: form.dark };
|
||||||
|
if (globalStore.isProductPro) {
|
||||||
|
await updateXpackSettingByKey('ThemeColor', JSON.stringify(form.themeColor));
|
||||||
|
MsgSuccess(i18n.global.t('commons.msg.operationSuccess'));
|
||||||
|
globalStore.themeConfig.themeColor = JSON.stringify(form.themeColor);
|
||||||
|
loading.value = false;
|
||||||
|
let color: string;
|
||||||
|
if (form.theme === 'auto') {
|
||||||
|
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)');
|
||||||
|
color = prefersDark.matches ? form.dark : form.light;
|
||||||
|
} else {
|
||||||
|
color = form.theme === 'dark' ? form.dark : form.light;
|
||||||
|
}
|
||||||
|
globalStore.themeConfig.primary = color;
|
||||||
|
setPrimaryColor(color);
|
||||||
|
initFavicon();
|
||||||
|
drawerVisible.value = false;
|
||||||
|
emit('search');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const onReSet = async () => {
|
||||||
|
ElMessageBox.confirm(i18n.global.t('xpack.theme.setDefaultHelper'), i18n.global.t('xpack.theme.setDefault'), {
|
||||||
|
confirmButtonText: i18n.global.t('commons.button.confirm'),
|
||||||
|
cancelButtonText: i18n.global.t('commons.button.cancel'),
|
||||||
|
type: 'info',
|
||||||
|
}).then(async () => {
|
||||||
|
form.themeColor = { light: '#005eeb', dark: '#F0BE96' };
|
||||||
if (globalStore.isProductPro) {
|
if (globalStore.isProductPro) {
|
||||||
await updateXpackSettingByKey('ThemeColor', JSON.stringify(form.themeColor));
|
await updateXpackSettingByKey('ThemeColor', JSON.stringify(form.themeColor));
|
||||||
MsgSuccess(i18n.global.t('commons.msg.operationSuccess'));
|
MsgSuccess(i18n.global.t('commons.msg.operationSuccess'));
|
||||||
globalStore.themeConfig.themeColor = JSON.stringify(form.themeColor);
|
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
|
globalStore.themeConfig.themeColor = JSON.stringify(form.themeColor);
|
||||||
let color: string;
|
let color: string;
|
||||||
if (form.theme === 'auto') {
|
if (form.theme === 'auto') {
|
||||||
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)');
|
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)');
|
||||||
color = prefersDark.matches ? form.dark : form.light;
|
color = prefersDark.matches ? '#F0BE96' : '#005eeb';
|
||||||
} else {
|
} else {
|
||||||
color = form.theme === 'dark' ? form.dark : form.light;
|
color = form.theme === 'dark' ? '#F0BE96' : '#005eeb';
|
||||||
}
|
}
|
||||||
globalStore.themeConfig.primary = color;
|
globalStore.themeConfig.primary = color;
|
||||||
setPrimaryColor(color);
|
setPrimaryColor(color);
|
||||||
initFavicon();
|
initFavicon();
|
||||||
drawerVisible.value = false;
|
drawerVisible.value = false;
|
||||||
emit('search');
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const onReSet = async () => {
|
|
||||||
form.themeColor = { light: '#005eeb', dark: '#F0BE96' };
|
|
||||||
if (globalStore.isProductPro) {
|
|
||||||
await updateXpackSettingByKey('ThemeColor', JSON.stringify(form.themeColor));
|
|
||||||
MsgSuccess(i18n.global.t('commons.msg.operationSuccess'));
|
|
||||||
loading.value = false;
|
|
||||||
globalStore.themeConfig.themeColor = JSON.stringify(form.themeColor);
|
|
||||||
let color: string;
|
|
||||||
if (form.theme === 'auto') {
|
|
||||||
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)');
|
|
||||||
color = prefersDark.matches ? '#F0BE96' : '#005eeb';
|
|
||||||
} else {
|
|
||||||
color = form.theme === 'dark' ? '#F0BE96' : '#005eeb';
|
|
||||||
}
|
|
||||||
globalStore.themeConfig.primary = color;
|
|
||||||
setPrimaryColor(color);
|
|
||||||
initFavicon();
|
|
||||||
drawerVisible.value = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleClose = () => {
|
const handleClose = () => {
|
||||||
drawerVisible.value = false;
|
drawerVisible.value = false;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user