feat: add form component registry API types and functions
This commit is contained in:
parent
0a177e7703
commit
069172bb00
157
apps/web-antd/src/api/core/form-management.ts
Normal file
157
apps/web-antd/src/api/core/form-management.ts
Normal file
@ -0,0 +1,157 @@
|
||||
import { workflowRequestClient } from '#/api/request';
|
||||
|
||||
// --- Enums ---
|
||||
|
||||
export enum FormStatus {
|
||||
Draft = 0,
|
||||
Published = 1,
|
||||
Disabled = 2,
|
||||
}
|
||||
|
||||
// --- Types ---
|
||||
|
||||
export interface FormDefinitionDto {
|
||||
id: string;
|
||||
name: string;
|
||||
code: string;
|
||||
description: string | null;
|
||||
version: number;
|
||||
status: FormStatus;
|
||||
}
|
||||
|
||||
export interface FormDefinitionDetailDto extends FormDefinitionDto {
|
||||
schemaJson: string | null;
|
||||
}
|
||||
|
||||
export interface PagedFormResult {
|
||||
items: FormDefinitionDto[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export interface FormDataDto {
|
||||
id: string;
|
||||
formDefinitionId: string;
|
||||
instanceId: string;
|
||||
dataJson: string;
|
||||
}
|
||||
|
||||
// --- Form Definition CRUD ---
|
||||
|
||||
export function getFormDefinitionsApi(params?: {
|
||||
pageIndex?: number;
|
||||
pageSize?: number;
|
||||
status?: FormStatus;
|
||||
}) {
|
||||
return workflowRequestClient.get<PagedFormResult>('/forms', { params });
|
||||
}
|
||||
|
||||
export function getFormDefinitionByIdApi(id: string) {
|
||||
return workflowRequestClient.get<FormDefinitionDetailDto>(`/forms/${id}`);
|
||||
}
|
||||
|
||||
export function createFormDefinitionApi(data: {
|
||||
name: string;
|
||||
code: string;
|
||||
description?: string;
|
||||
schemaJson: string;
|
||||
}) {
|
||||
return workflowRequestClient.post<FormDefinitionDto>('/forms', data);
|
||||
}
|
||||
|
||||
export function updateFormDefinitionApi(
|
||||
id: string,
|
||||
data: {
|
||||
name: string;
|
||||
description?: string;
|
||||
schemaJson: string;
|
||||
},
|
||||
) {
|
||||
return workflowRequestClient.put<FormDefinitionDto>(`/forms/${id}`, data);
|
||||
}
|
||||
|
||||
export function deleteFormDefinitionApi(id: string) {
|
||||
return workflowRequestClient.delete(`/forms/${id}`);
|
||||
}
|
||||
|
||||
export function publishFormDefinitionApi(id: string) {
|
||||
return workflowRequestClient.post(`/forms/${id}/publish`);
|
||||
}
|
||||
|
||||
export function disableFormDefinitionApi(id: string) {
|
||||
return workflowRequestClient.post(`/forms/${id}/disable`);
|
||||
}
|
||||
|
||||
// --- Form Data ---
|
||||
|
||||
export function submitFormDataApi(data: {
|
||||
formDefinitionId: string;
|
||||
instanceId: string;
|
||||
dataJson: string;
|
||||
}) {
|
||||
return workflowRequestClient.post<string>('/forms/data', data);
|
||||
}
|
||||
|
||||
export function getFormDataByInstanceApi(instanceId: string) {
|
||||
return workflowRequestClient.get<FormDataDto | null>(
|
||||
`/forms/data/${instanceId}`,
|
||||
);
|
||||
}
|
||||
|
||||
// --- Component Registry ---
|
||||
|
||||
export interface FormComponentDto {
|
||||
id: string;
|
||||
name: string;
|
||||
displayName: string;
|
||||
category: string;
|
||||
icon: string;
|
||||
defaultSchema: string;
|
||||
supportedProps: string;
|
||||
isActive: boolean;
|
||||
sortOrder: number;
|
||||
}
|
||||
|
||||
export function getFormComponentsApi(params?: {
|
||||
category?: string;
|
||||
isActive?: boolean;
|
||||
}) {
|
||||
return workflowRequestClient.get<FormComponentDto[]>('/form-components', {
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export function getFormComponentByIdApi(id: string) {
|
||||
return workflowRequestClient.get<FormComponentDto>(`/form-components/${id}`);
|
||||
}
|
||||
|
||||
export function createFormComponentApi(data: {
|
||||
name: string;
|
||||
displayName: string;
|
||||
category: string;
|
||||
icon: string;
|
||||
defaultSchema: string;
|
||||
supportedProps?: string;
|
||||
}) {
|
||||
return workflowRequestClient.post<FormComponentDto>('/form-components', data);
|
||||
}
|
||||
|
||||
export function updateFormComponentApi(
|
||||
id: string,
|
||||
data: {
|
||||
displayName: string;
|
||||
category: string;
|
||||
icon: string;
|
||||
defaultSchema: string;
|
||||
supportedProps?: string;
|
||||
isActive?: boolean;
|
||||
},
|
||||
) {
|
||||
return workflowRequestClient.put<FormComponentDto>(
|
||||
`/form-components/${id}`,
|
||||
data,
|
||||
);
|
||||
}
|
||||
|
||||
export function deleteFormComponentApi(id: string) {
|
||||
return workflowRequestClient.delete(`/form-components/${id}`);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user