diff --git a/apps/vben5/packages/@abp/settings/src/api/index.ts b/apps/vben5/packages/@abp/settings/src/api/index.ts index 25ba3e6a1..523f55130 100644 --- a/apps/vben5/packages/@abp/settings/src/api/index.ts +++ b/apps/vben5/packages/@abp/settings/src/api/index.ts @@ -1 +1,2 @@ -export * as settingDefintiionsApi from './definitions'; +export * as settingDefinitionsApi from './definitions'; +export * as settingsApi from './settings'; diff --git a/apps/vben5/packages/@abp/settings/src/api/settings.ts b/apps/vben5/packages/@abp/settings/src/api/settings.ts new file mode 100644 index 000000000..948bba7af --- /dev/null +++ b/apps/vben5/packages/@abp/settings/src/api/settings.ts @@ -0,0 +1,71 @@ +import type { ListResultDto } from '@abp/core'; + +import type { SettingGroup, SettingsUpdateInput } from '../types/settings'; + +import { requestClient } from '@abp/request'; + +/** + * 获取全局设置 + * @returns 设置数据传输对象列表 + */ +export function getGlobalSettingsApi(): Promise> { + return requestClient.get>( + `/api/setting-management/settings/by-global`, + ); +} + +/** + * 设置全局设置 + * @returns 设置数据传输对象列表 + */ +export function setGlobalSettingsApi( + input: SettingsUpdateInput, +): Promise { + return requestClient.put( + `/api/setting-management/settings/change-global`, + input, + ); +} + +/** + * 获取租户设置 + * @returns 设置数据传输对象列表 + */ +export function getTenantSettingsApi(): Promise> { + return requestClient.get>( + `/api/setting-management/settings/by-current-tenant`, + ); +} + +/** + * 设置租户设置 + * @returns 设置数据传输对象列表 + */ +export function setTenantSettingsApi( + input: SettingsUpdateInput, +): Promise { + return requestClient.put( + `/api/setting-management/settings/change-current-tenant`, + input, + ); +} +/** + * 获取用户设置 + * @returns 设置数据传输对象列表 + */ +export function getUserSettingsApi(): Promise> { + return requestClient.get>( + `/api/setting-management/settings/by-current-user`, + ); +} + +/** + * 设置用户设置 + * @returns 设置数据传输对象列表 + */ +export function setUserSettingsApi(input: SettingsUpdateInput): Promise { + return requestClient.put( + `/api/setting-management/settings/change-current-user`, + input, + ); +} diff --git a/apps/vben5/packages/@abp/settings/src/types/index.ts b/apps/vben5/packages/@abp/settings/src/types/index.ts index 9b9d6c8af..f7366dc9f 100644 --- a/apps/vben5/packages/@abp/settings/src/types/index.ts +++ b/apps/vben5/packages/@abp/settings/src/types/index.ts @@ -1 +1,2 @@ export * from './definitions'; +export * from './settings'; diff --git a/apps/vben5/packages/@abp/settings/src/types/settings.ts b/apps/vben5/packages/@abp/settings/src/types/settings.ts new file mode 100644 index 000000000..15414f7b9 --- /dev/null +++ b/apps/vben5/packages/@abp/settings/src/types/settings.ts @@ -0,0 +1,56 @@ +interface SettingBase { + /** 名称 */ + name: string; + /** 当前设置值 */ + value: any; +} + +/** 配置变更对象 */ +type SettingUpdateInput = SettingBase; + +/** 配置变更集合对象 */ +interface SettingsUpdateInput { + /** 配置集合 */ + settings: SettingUpdateInput[]; +} + +export enum ValueType { + Array = 4, + Boolean = 2, + Date = 3, + Number = 1, + Object = 10, + Option = 5, + String = 0, +} + +interface Option { + name: string; + value: string; +} + +interface SettingDetail { + defaultValue: string; + description?: string; + displayName: string; + isEncrypted: boolean; + name: string; + options: Option[]; + slot?: string; + value?: string; + valueType: ValueType; +} + +interface Setting { + description?: string; + details: SettingDetail[]; + displayName: string; +} + +interface SettingGroup { + description: string; + displayName: string; + settings: Setting[]; +} + +export type { SettingGroup, SettingsUpdateInput };