From 711935500a2070abccbf18d7b7e9556331d11d5f Mon Sep 17 00:00:00 2001 From: colin Date: Fri, 1 Aug 2025 11:30:44 +0800 Subject: [PATCH 1/5] feat: add `vue3-colorpicker` --- apps/vben5/apps/app-antd/package.json | 3 ++- .../vben5/apps/app-antd/src/adapter/component/index.ts | 10 +++++++++- apps/vben5/pnpm-workspace.yaml | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/vben5/apps/app-antd/package.json b/apps/vben5/apps/app-antd/package.json index 03fa292ee..b4fc532a3 100644 --- a/apps/vben5/apps/app-antd/package.json +++ b/apps/vben5/apps/app-antd/package.json @@ -66,6 +66,7 @@ "dayjs": "catalog:", "pinia": "catalog:", "vue": "catalog:", - "vue-router": "catalog:" + "vue-router": "catalog:", + "vue3-colorpicker": "catalog:" } } diff --git a/apps/vben5/apps/app-antd/src/adapter/component/index.ts b/apps/vben5/apps/app-antd/src/adapter/component/index.ts index 4ab140011..335a9fa76 100644 --- a/apps/vben5/apps/app-antd/src/adapter/component/index.ts +++ b/apps/vben5/apps/app-antd/src/adapter/component/index.ts @@ -31,8 +31,14 @@ const Button = defineAsyncComponent(() => import('ant-design-vue/es/button')); const Checkbox = defineAsyncComponent( () => import('ant-design-vue/es/checkbox'), ); +const ColorPicker = defineAsyncComponent(() => + import('vue3-colorpicker').then((res) => { + import('vue3-colorpicker/style.css'); + return res.ColorPicker; + }), +); const CheckboxGroup = defineAsyncComponent(() => - import('ant-design-vue/es/checkbox').then((res) => res.CheckboxGroup), + import('ant-design-vue/es').then((res) => res.CheckboxGroup), ); const DatePicker = defineAsyncComponent( () => import('ant-design-vue/es/date-picker'), @@ -117,6 +123,7 @@ export type ComponentType = | 'AutoComplete' | 'Checkbox' | 'CheckboxGroup' + | 'ColorPicker' | 'DatePicker' | 'DefaultButton' | 'Divider' @@ -182,6 +189,7 @@ async function initComponentAdapter() { AutoComplete, Checkbox, CheckboxGroup, + ColorPicker, DatePicker, // 自定义默认按钮 DefaultButton: (props, { attrs, slots }) => { diff --git a/apps/vben5/pnpm-workspace.yaml b/apps/vben5/pnpm-workspace.yaml index 8b73f18f2..b599ab73f 100644 --- a/apps/vben5/pnpm-workspace.yaml +++ b/apps/vben5/pnpm-workspace.yaml @@ -205,6 +205,7 @@ catalog: vue-simple-uploader: ^1.0.3 vue-tippy: ^6.7.0 vue-tsc: 2.2.10 + vue3-colorpicker: ^2.3.0 vxe-pc-ui: ^4.7.12 vxe-table: ^4.14.4 watermark-js-plus: ^1.6.0 From 8d9552a31b1de2c4530bce357e17ec83865a3bc4 Mon Sep 17 00:00:00 2001 From: colin Date: Fri, 1 Aug 2025 11:31:26 +0800 Subject: [PATCH 2/5] feat(vben5-platform): add UserFavoriteMenu `createApi` --- .../platform/src/api/useMyFavoriteMenusApi.ts | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/apps/vben5/packages/@abp/platform/src/api/useMyFavoriteMenusApi.ts b/apps/vben5/packages/@abp/platform/src/api/useMyFavoriteMenusApi.ts index a5de2de35..44b4d2afb 100644 --- a/apps/vben5/packages/@abp/platform/src/api/useMyFavoriteMenusApi.ts +++ b/apps/vben5/packages/@abp/platform/src/api/useMyFavoriteMenusApi.ts @@ -1,12 +1,30 @@ import type { ListResultDto } from '@abp/core'; -import type { UserFavoriteMenuDto } from '../types/favorites'; +import type { + UserFavoriteMenuCreateDto, + UserFavoriteMenuDto, +} from '../types/favorites'; import { useRequest } from '@abp/request'; export function useMyFavoriteMenusApi() { const { cancel, request } = useRequest(); + /** + * 新增常用菜单 + * @param input 参数 + * @returns 常用菜单 + */ + function createApi(input: UserFavoriteMenuCreateDto) { + return request( + `/api/platform/menus/favorites/my-favorite-menus`, + { + data: input, + method: 'POST', + }, + ); + } + /** * 获取常用菜单列表 * @param framework ui框架 @@ -25,6 +43,7 @@ export function useMyFavoriteMenusApi() { return { cancel, + createApi, getListApi, }; } From 330acf1366c6cf856d70d53a83eb973d36995352 Mon Sep 17 00:00:00 2001 From: colin Date: Fri, 1 Aug 2025 11:32:08 +0800 Subject: [PATCH 3/5] feat(vben5-platform): add WorkbenchQuickNavModal --- .../vben5/packages/@abp/platform/package.json | 1 + .../components/WorkbenchQuickNavModal.vue | 137 ++++++++++++++++++ .../src/locales/langs/en-US/workbench.json | 9 +- .../src/locales/langs/zh-CN/workbench.json | 9 +- 4 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 apps/vben5/packages/@abp/platform/src/components/workbench/components/WorkbenchQuickNavModal.vue diff --git a/apps/vben5/packages/@abp/platform/package.json b/apps/vben5/packages/@abp/platform/package.json index d91d932ec..43b66f323 100644 --- a/apps/vben5/packages/@abp/platform/package.json +++ b/apps/vben5/packages/@abp/platform/package.json @@ -39,6 +39,7 @@ "ant-design-vue": "catalog:", "lodash.clonedeep": "catalog:", "vue": "catalog:*", + "vue3-colorpicker": "catalog:", "vxe-table": "catalog:" }, "devDependencies": { diff --git a/apps/vben5/packages/@abp/platform/src/components/workbench/components/WorkbenchQuickNavModal.vue b/apps/vben5/packages/@abp/platform/src/components/workbench/components/WorkbenchQuickNavModal.vue new file mode 100644 index 000000000..3bd56cc3e --- /dev/null +++ b/apps/vben5/packages/@abp/platform/src/components/workbench/components/WorkbenchQuickNavModal.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/apps/vben5/packages/@abp/platform/src/locales/langs/en-US/workbench.json b/apps/vben5/packages/@abp/platform/src/locales/langs/en-US/workbench.json index 1018f271c..63034d52b 100644 --- a/apps/vben5/packages/@abp/platform/src/locales/langs/en-US/workbench.json +++ b/apps/vben5/packages/@abp/platform/src/locales/langs/en-US/workbench.json @@ -18,7 +18,14 @@ "dashboard": "Dashboard", "profile": "Personal Profile", "settings": "Personal Settings", - "notifiers": "Notifiers" + "notifiers": "Notifiers", + "manage": "Manage menu", + "create": "New menu", + "delete": "Delete Menu", + "select": "Select Menu", + "color": "Select Color", + "alias": "Alias Name", + "icon": "Icon" }, "trends": { "title": "Latest News" diff --git a/apps/vben5/packages/@abp/platform/src/locales/langs/zh-CN/workbench.json b/apps/vben5/packages/@abp/platform/src/locales/langs/zh-CN/workbench.json index 6dff3d09b..c2561e71d 100644 --- a/apps/vben5/packages/@abp/platform/src/locales/langs/zh-CN/workbench.json +++ b/apps/vben5/packages/@abp/platform/src/locales/langs/zh-CN/workbench.json @@ -18,7 +18,14 @@ "dashboard": "仪表盘", "profile": "个人中心", "settings": "个人设置", - "notifiers": "通知消息" + "notifiers": "通知消息", + "manage": "管理菜单", + "create": "添加菜单", + "delete": "删除菜单", + "select": "选择菜单", + "color": "选择颜色", + "alias": "自定义别名", + "icon": "自定义图标" }, "trends": { "title": "最新消息" From 5ea4eefdee010f6007caf6405343cdcaa218f31a Mon Sep 17 00:00:00 2001 From: colin Date: Fri, 1 Aug 2025 11:40:50 +0800 Subject: [PATCH 4/5] feat(vben5-platform): Add deleting the favorites menu --- .../platform/src/api/useMyFavoriteMenusApi.ts | 15 ++- .../components/WorkbenchQuickNav.vue | 106 ++++++++++++++---- .../src/components/workbench/index.vue | 29 ++++- 3 files changed, 125 insertions(+), 25 deletions(-) diff --git a/apps/vben5/packages/@abp/platform/src/api/useMyFavoriteMenusApi.ts b/apps/vben5/packages/@abp/platform/src/api/useMyFavoriteMenusApi.ts index 44b4d2afb..d513c9494 100644 --- a/apps/vben5/packages/@abp/platform/src/api/useMyFavoriteMenusApi.ts +++ b/apps/vben5/packages/@abp/platform/src/api/useMyFavoriteMenusApi.ts @@ -15,7 +15,9 @@ export function useMyFavoriteMenusApi() { * @param input 参数 * @returns 常用菜单 */ - function createApi(input: UserFavoriteMenuCreateDto) { + function createApi( + input: UserFavoriteMenuCreateDto, + ): Promise { return request( `/api/platform/menus/favorites/my-favorite-menus`, { @@ -25,6 +27,16 @@ export function useMyFavoriteMenusApi() { ); } + /** + * 删除常用菜单 + * @param id 菜单Id + */ + function deleteApi(id: string): Promise { + return request(`/api/platform/menus/favorites/my-favorite-menus/${id}`, { + method: 'DELETE', + }); + } + /** * 获取常用菜单列表 * @param framework ui框架 @@ -44,6 +56,7 @@ export function useMyFavoriteMenusApi() { return { cancel, createApi, + deleteApi, getListApi, }; } diff --git a/apps/vben5/packages/@abp/platform/src/components/workbench/components/WorkbenchQuickNav.vue b/apps/vben5/packages/@abp/platform/src/components/workbench/components/WorkbenchQuickNav.vue index 9bab0b0b7..8479356db 100644 --- a/apps/vben5/packages/@abp/platform/src/components/workbench/components/WorkbenchQuickNav.vue +++ b/apps/vben5/packages/@abp/platform/src/components/workbench/components/WorkbenchQuickNav.vue @@ -1,6 +1,10 @@