forked from wangziqi/gongxue-base
feat: add tenant theme templates
This commit is contained in:
@@ -443,6 +443,41 @@ export interface TenantOverview {
|
||||
publicConfig?: Record<string, unknown>;
|
||||
}
|
||||
|
||||
export interface TenantThemeTemplateItem {
|
||||
code: string;
|
||||
name: string;
|
||||
description?: string | null;
|
||||
previewImageUrl?: string | null;
|
||||
theme?: Record<string, unknown>;
|
||||
publicAssets?: Record<string, unknown>;
|
||||
sortOrder?: number;
|
||||
status?: string;
|
||||
updatedAt?: string;
|
||||
}
|
||||
|
||||
export interface TenantThemeConfigItem {
|
||||
tenantId?: string;
|
||||
activeTemplateCode?: string | null;
|
||||
activeTemplateName?: string | null;
|
||||
activeTheme?: Record<string, unknown>;
|
||||
activePublicAssets?: Record<string, unknown>;
|
||||
draftTemplateCode?: string | null;
|
||||
draftTemplateName?: string | null;
|
||||
draftTheme?: Record<string, unknown>;
|
||||
draftPublicAssets?: Record<string, unknown>;
|
||||
status?: string;
|
||||
publishedAt?: string | null;
|
||||
updatedAt?: string | null;
|
||||
brandingTheme?: Record<string, unknown>;
|
||||
brandingPublicAssets?: Record<string, unknown>;
|
||||
}
|
||||
|
||||
export interface TenantThemeDraftInput {
|
||||
templateCode: string;
|
||||
theme?: Record<string, unknown>;
|
||||
publicAssets?: Record<string, unknown>;
|
||||
}
|
||||
|
||||
export interface TenantPermissionCatalogItem {
|
||||
key: string;
|
||||
label?: string;
|
||||
@@ -538,6 +573,28 @@ export async function loadTenantOverview() {
|
||||
return apiRequest<{ item?: TenantOverview }>('/api/tenant-admin/overview');
|
||||
}
|
||||
|
||||
export async function loadThemeTemplates() {
|
||||
return apiRequest<{ items?: TenantThemeTemplateItem[] }>('/api/tenant-admin/theme-templates');
|
||||
}
|
||||
|
||||
export async function loadTenantTheme() {
|
||||
return apiRequest<{ item?: TenantThemeConfigItem }>('/api/tenant-admin/theme');
|
||||
}
|
||||
|
||||
export async function previewTenantTheme(input: TenantThemeDraftInput) {
|
||||
return apiRequest<{ item?: TenantThemeConfigItem & { templateName?: string | null } }>('/api/tenant-admin/theme/preview', {
|
||||
method: 'POST',
|
||||
body: input,
|
||||
});
|
||||
}
|
||||
|
||||
export async function publishTenantTheme(input: { useDraft?: boolean; templateCode?: string; theme?: Record<string, unknown>; publicAssets?: Record<string, unknown> } = {}) {
|
||||
return apiRequest<{ item?: TenantThemeConfigItem & { templateName?: string | null } }>('/api/tenant-admin/theme/publish', {
|
||||
method: 'POST',
|
||||
body: { useDraft: input.useDraft ?? true, ...input },
|
||||
});
|
||||
}
|
||||
|
||||
export async function loadTenantPermissions() {
|
||||
return apiRequest<TenantPermissionsPayload>('/api/tenant-admin/permissions');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user