diff --git a/apps/vben5/packages/@abp/features/src/api/useFeatureGroupDefinitionsApi.ts b/apps/vben5/packages/@abp/features/src/api/useFeatureGroupDefinitionsApi.ts new file mode 100644 index 000000000..a3f19ef6c --- /dev/null +++ b/apps/vben5/packages/@abp/features/src/api/useFeatureGroupDefinitionsApi.ts @@ -0,0 +1,100 @@ +import type { ListResultDto } from '@abp/core'; + +import type { + FeatureGroupDefinitionCreateDto, + FeatureGroupDefinitionDto, + FeatureGroupDefinitionGetListInput, + FeatureGroupDefinitionUpdateDto, +} from '../types/groups'; + +import { useRequest } from '@abp/request'; + +export function useFeatureGroupDefinitionsApi() { + const { cancel, request } = useRequest(); + + /** + * 删除功能定义 + * @param name 功能名称 + */ + function deleteApi(name: string): Promise { + return request(`/api/feature-management/definitions/groups/${name}`, { + method: 'DELETE', + }); + } + + /** + * 查询功能定义 + * @param name 功能名称 + * @returns 功能定义数据传输对象 + */ + function getApi(name: string): Promise { + return request( + `/api/feature-management/definitions/groups/${name}`, + { + method: 'GET', + }, + ); + } + + /** + * 查询功能定义列表 + * @param input 功能过滤条件 + * @returns 功能定义数据传输对象列表 + */ + function getListApi( + input?: FeatureGroupDefinitionGetListInput, + ): Promise> { + return request>( + `/api/feature-management/definitions/groups`, + { + method: 'GET', + params: input, + }, + ); + } + + /** + * 创建功能定义 + * @param input 功能定义参数 + * @returns 功能定义数据传输对象 + */ + function createApi( + input: FeatureGroupDefinitionCreateDto, + ): Promise { + return request( + '/api/feature-management/definitions/groups', + { + data: input, + method: 'POST', + }, + ); + } + + /** + * 更新功能定义 + * @param name 功能名称 + * @param input 功能定义参数 + * @returns 功能定义数据传输对象 + */ + function updateApi( + name: string, + input: FeatureGroupDefinitionUpdateDto, + ): Promise { + return request( + `/api/feature-management/definitions/groups/${name}`, + { + data: input, + method: 'PUT', + }, + ); + } + + return { + cancel, + createApi, + deleteApi, + getApi, + getListApi, + updateApi, + }; +} diff --git a/apps/vben5/packages/@abp/features/src/components/definitions/groups/FeatureGroupDefinitionModal.vue b/apps/vben5/packages/@abp/features/src/components/definitions/groups/FeatureGroupDefinitionModal.vue new file mode 100644 index 000000000..5c2d49b13 --- /dev/null +++ b/apps/vben5/packages/@abp/features/src/components/definitions/groups/FeatureGroupDefinitionModal.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/apps/vben5/packages/@abp/features/src/components/definitions/groups/FeatureGroupDefinitionTable.vue b/apps/vben5/packages/@abp/features/src/components/definitions/groups/FeatureGroupDefinitionTable.vue new file mode 100644 index 000000000..fec1f118a --- /dev/null +++ b/apps/vben5/packages/@abp/features/src/components/definitions/groups/FeatureGroupDefinitionTable.vue @@ -0,0 +1,217 @@ + + + + + diff --git a/apps/vben5/packages/@abp/features/src/components/index.ts b/apps/vben5/packages/@abp/features/src/components/index.ts index 6714d5ae5..ff6491414 100644 --- a/apps/vben5/packages/@abp/features/src/components/index.ts +++ b/apps/vben5/packages/@abp/features/src/components/index.ts @@ -1 +1,2 @@ +export { default as FeatureGroupDefinitionTable } from './definitions/groups/FeatureGroupDefinitionTable.vue'; export { default as FeatureModal } from './features/FeatureModal.vue'; diff --git a/apps/vben5/packages/@abp/features/src/constants/permissions.ts b/apps/vben5/packages/@abp/features/src/constants/permissions.ts index e69de29bb..ec3c3a639 100644 --- a/apps/vben5/packages/@abp/features/src/constants/permissions.ts +++ b/apps/vben5/packages/@abp/features/src/constants/permissions.ts @@ -0,0 +1,10 @@ +/** 分组权限 */ +export const GroupDefinitionsPermissions = { + /** 新增 */ + Create: 'FeatureManagement.GroupDefinitions.Create', + Default: 'FeatureManagement.GroupDefinitions', + /** 删除 */ + Delete: 'FeatureManagement.GroupDefinitions.Delete', + /** 更新 */ + Update: 'FeatureManagement.GroupDefinitions.Update', +}; diff --git a/apps/vben5/packages/@abp/features/src/types/definitions.ts b/apps/vben5/packages/@abp/features/src/types/definitions.ts new file mode 100644 index 000000000..e69de29bb diff --git a/apps/vben5/packages/@abp/features/src/types/groups.ts b/apps/vben5/packages/@abp/features/src/types/groups.ts new file mode 100644 index 000000000..35b93da30 --- /dev/null +++ b/apps/vben5/packages/@abp/features/src/types/groups.ts @@ -0,0 +1,31 @@ +import type { IHasConcurrencyStamp, IHasExtraProperties } from '@abp/core'; + +interface FeatureGroupDefinitionDto extends IHasExtraProperties { + displayName: string; + isStatic: boolean; + name: string; +} + +interface FeatureGroupDefinitionGetListInput { + filter?: string; +} + +interface FeatureGroupDefinitionCreateOrUpdateDto extends IHasExtraProperties { + displayName: string; +} + +interface FeatureGroupDefinitionUpdateDto + extends FeatureGroupDefinitionCreateOrUpdateDto, + IHasConcurrencyStamp {} + +interface FeatureGroupDefinitionCreateDto + extends FeatureGroupDefinitionCreateOrUpdateDto { + name: string; +} + +export type { + FeatureGroupDefinitionCreateDto, + FeatureGroupDefinitionDto, + FeatureGroupDefinitionGetListInput, + FeatureGroupDefinitionUpdateDto, +}; diff --git a/apps/vben5/packages/@abp/features/src/types/index.ts b/apps/vben5/packages/@abp/features/src/types/index.ts index b8795830d..4bdb3f8f7 100644 --- a/apps/vben5/packages/@abp/features/src/types/index.ts +++ b/apps/vben5/packages/@abp/features/src/types/index.ts @@ -1 +1,3 @@ +export * from './definitions'; export * from './features'; +export * from './groups';