From f5d7869a18dee329e371cd39b0ab89312bddea6b Mon Sep 17 00:00:00 2001 From: colin Date: Thu, 31 Jul 2025 17:40:32 +0800 Subject: [PATCH] feat(vben5): Add a favorite menu api --- .../packages/@abp/platform/src/api/index.ts | 1 + .../platform/src/api/useMyFavoriteMenusApi.ts | 30 ++++++++++++++++ .../@abp/platform/src/types/favorites.ts | 34 +++++++++++++++++++ .../packages/@abp/platform/src/types/index.ts | 1 + 4 files changed, 66 insertions(+) create mode 100644 apps/vben5/packages/@abp/platform/src/api/useMyFavoriteMenusApi.ts create mode 100644 apps/vben5/packages/@abp/platform/src/types/favorites.ts diff --git a/apps/vben5/packages/@abp/platform/src/api/index.ts b/apps/vben5/packages/@abp/platform/src/api/index.ts index 32d8b455e..439ed739b 100644 --- a/apps/vben5/packages/@abp/platform/src/api/index.ts +++ b/apps/vben5/packages/@abp/platform/src/api/index.ts @@ -2,6 +2,7 @@ export { useDataDictionariesApi } from './useDataDictionariesApi'; export { useEmailMessagesApi } from './useEmailMessagesApi'; export { useLayoutsApi } from './useLayoutsApi'; export { useMenusApi } from './useMenusApi'; +export { useMyFavoriteMenusApi } from './useMyFavoriteMenusApi'; export { useMyMenusApi } from './useMyMenusApi'; export { useRoleMenusApi } from './useRoleMenusApi'; export { useSmsMessagesApi } from './useSmsMessagesApi'; diff --git a/apps/vben5/packages/@abp/platform/src/api/useMyFavoriteMenusApi.ts b/apps/vben5/packages/@abp/platform/src/api/useMyFavoriteMenusApi.ts new file mode 100644 index 000000000..a5de2de35 --- /dev/null +++ b/apps/vben5/packages/@abp/platform/src/api/useMyFavoriteMenusApi.ts @@ -0,0 +1,30 @@ +import type { ListResultDto } from '@abp/core'; + +import type { UserFavoriteMenuDto } from '../types/favorites'; + +import { useRequest } from '@abp/request'; + +export function useMyFavoriteMenusApi() { + const { cancel, request } = useRequest(); + + /** + * 获取常用菜单列表 + * @param framework ui框架 + * @returns 菜单列表 + */ + function getListApi( + framework?: string, + ): Promise> { + return request>( + `/api/platform/menus/favorites/my-favorite-menus?framework=${framework}`, + { + method: 'GET', + }, + ); + } + + return { + cancel, + getListApi, + }; +} diff --git a/apps/vben5/packages/@abp/platform/src/types/favorites.ts b/apps/vben5/packages/@abp/platform/src/types/favorites.ts new file mode 100644 index 000000000..221f13f48 --- /dev/null +++ b/apps/vben5/packages/@abp/platform/src/types/favorites.ts @@ -0,0 +1,34 @@ +import type { AuditedEntityDto, IHasConcurrencyStamp } from '@abp/core'; + +interface UserFavoriteMenuDto extends AuditedEntityDto { + aliasName?: string; + color?: string; + displayName: string; + framework: string; + icon?: string; + menuId: string; + name: string; + path?: string; + userId: string; +} + +interface UserFavoriteMenuCreateOrUpdateDto { + aliasName?: string; + color?: string; + icon?: string; + menuId: string; +} + +interface UserFavoriteMenuCreateDto extends UserFavoriteMenuCreateOrUpdateDto { + framework: string; +} + +interface UserFavoriteMenuUpdateDto + extends IHasConcurrencyStamp, + UserFavoriteMenuCreateOrUpdateDto {} + +export type { + UserFavoriteMenuCreateDto, + UserFavoriteMenuDto, + UserFavoriteMenuUpdateDto, +}; diff --git a/apps/vben5/packages/@abp/platform/src/types/index.ts b/apps/vben5/packages/@abp/platform/src/types/index.ts index 73954c6db..3277e6293 100644 --- a/apps/vben5/packages/@abp/platform/src/types/index.ts +++ b/apps/vben5/packages/@abp/platform/src/types/index.ts @@ -1,4 +1,5 @@ export * from './dataDictionaries'; +export * from './favorites'; export * from './layouts'; export * from './menus'; export * from './messages';