feat(projects): 将主题配置持久化

This commit is contained in:
2026-04-02 20:42:20 +08:00
2 changed files with 38 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
import { SYSTEM_SERVICE_PREFIX } from '@/constants/service';
import { request } from '../request';
const USER_PREFERENCE_THEME_PREFIX = `${SYSTEM_SERVICE_PREFIX}/user-preference/theme`;
/** 获取当前登录用户的主题偏好覆盖项 */
export function fetchGetUserPreferenceTheme() {
return request<Api.UserPreference.ThemeSettings>({
url: USER_PREFERENCE_THEME_PREFIX,
method: 'get'
});
}
/** 保存当前登录用户的主题偏好覆盖项 */
export function fetchSaveUserPreferenceTheme(data: Api.UserPreference.ThemeSettings) {
return request<boolean>({
url: USER_PREFERENCE_THEME_PREFIX,
method: 'put',
data
});
}
/** 重置当前登录用户的主题偏好覆盖项 */
export function fetchResetUserPreferenceTheme() {
return request<boolean>({
url: USER_PREFERENCE_THEME_PREFIX,
method: 'delete'
});
}

9
src/typings/api/user-preference.d.ts vendored Normal file
View File

@@ -0,0 +1,9 @@
declare namespace Api {
namespace UserPreference {
type ThemeSettingsValue<T> = {
[K in keyof T]?: T[K] extends Record<string, unknown> ? ThemeSettingsValue<T[K]> : T[K];
};
type ThemeSettings = ThemeSettingsValue<App.Theme.ThemeSetting>;
}
}