From d739be3a551a7c0d429a9c09e2c11a90ae555569 Mon Sep 17 00:00:00 2001 From: cKey <35512826+colinin@users.noreply.github.com> Date: Mon, 26 Sep 2022 11:55:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=94=B6=E8=97=8F=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E5=93=8D=E5=BA=94=E4=BA=8B=E4=BB=B6.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/vue/src/api/model/baseModel.ts | 4 + .../api/platform/user-favorites-menu/index.ts | 114 ++++++++++++++++++ .../user-favorites-menu/model/index.ts | 28 +++++ .../src/locales/lang/en/routes/dashboard.ts | 6 +- .../locales/lang/zh-CN/routes/dashboard.ts | 8 +- .../workbench/components/MenuCard.vue | 71 ++++++++--- .../workbench/components/MenuReference.vue | 75 ++++++------ .../workbench/components/menuProps.ts | 49 ++++++++ .../src/views/dashboard/workbench/index.vue | 93 ++++++++------ 9 files changed, 353 insertions(+), 95 deletions(-) create mode 100644 apps/vue/src/api/platform/user-favorites-menu/index.ts create mode 100644 apps/vue/src/api/platform/user-favorites-menu/model/index.ts create mode 100644 apps/vue/src/views/dashboard/workbench/components/menuProps.ts diff --git a/apps/vue/src/api/model/baseModel.ts b/apps/vue/src/api/model/baseModel.ts index 978b638e6..6a411e534 100644 --- a/apps/vue/src/api/model/baseModel.ts +++ b/apps/vue/src/api/model/baseModel.ts @@ -51,6 +51,10 @@ export class CreationAuditedEntityDto implements IMayHaveCreator { creationTime!: Date; } +export class EntityDto { + id!: TKey; +} + /** 实体审计对象 */ export class AuditedEntityDto implements CreationAuditedEntityDto, IModificationAuditedObject { lastModifierId: string | undefined; diff --git a/apps/vue/src/api/platform/user-favorites-menu/index.ts b/apps/vue/src/api/platform/user-favorites-menu/index.ts new file mode 100644 index 000000000..6162bce68 --- /dev/null +++ b/apps/vue/src/api/platform/user-favorites-menu/index.ts @@ -0,0 +1,114 @@ +import { defAbpHttp } from '/@/utils/http/abp'; +import { UserFavoriteMenuDto, UserFavoriteMenuCreateDto, UserFavoriteMenuUpdateDto } from './model'; + +const remoteService = { + name: 'Platform', + controller: 'UserFavoriteMenu', + replace: { + framework: 'Vue Vben Admin', + } +}; + +export const create = (userId: string, input: UserFavoriteMenuCreateDto) => { + input.framework = remoteService.replace.framework; + return defAbpHttp.request({ + service: remoteService.name, + controller: remoteService.controller, + action: 'CreateAsync', + params: { + userId: userId, + }, + data: { + input: input, + }, + }); +}; + +export const createMyFavoriteMenu = (input: UserFavoriteMenuCreateDto) => { + input.framework = remoteService.replace.framework; + return defAbpHttp.request({ + service: remoteService.name, + controller: remoteService.controller, + action: 'CreateMyFavoriteMenuAsync', + data: { + input: input, + }, + }); +}; + +export const del = (userId: string, menuId: string) => { + return defAbpHttp.request({ + service: remoteService.name, + controller: remoteService.controller, + action: 'DeleteAsync', + params: { + userId: userId, + }, + data: { + input: { + menuId: menuId, + }, + }, + }); +}; + +export const delMyFavoriteMenu = (menuId: string) => { + return defAbpHttp.request({ + service: remoteService.name, + controller: remoteService.controller, + action: 'DeleteMyFavoriteMenuAsync', + data: { + input: { + menuId: menuId, + }, + }, + }); +}; + +export const update = (userId: string, input: UserFavoriteMenuUpdateDto) => { + return defAbpHttp.request({ + service: remoteService.name, + controller: remoteService.controller, + action: 'UpdateAsync', + params: { + userId: userId, + }, + data: { + input: input, + }, + }); +}; + +export const updateMyFavoriteMenu = (input: UserFavoriteMenuUpdateDto) => { + return defAbpHttp.request({ + service: remoteService.name, + controller: remoteService.controller, + action: 'UpdateMyFavoriteMenuAsync', + data: { + input: input, + }, + }); +}; + +export const getList = (userId: string) => { + return defAbpHttp.listRequest({ + service: remoteService.name, + controller: remoteService.controller, + action: 'GetListAsync', + params: { + userId: userId, + framework: remoteService.replace.framework, + }, + }); +}; + +export const getMyFavoriteMenuList = () => { + return defAbpHttp.listRequest({ + service: remoteService.name, + controller: remoteService.controller, + action: 'GetMyFavoriteMenuListAsync', + params: { + framework: remoteService.replace.framework, + }, + }); +}; diff --git a/apps/vue/src/api/platform/user-favorites-menu/model/index.ts b/apps/vue/src/api/platform/user-favorites-menu/model/index.ts new file mode 100644 index 000000000..5173e035c --- /dev/null +++ b/apps/vue/src/api/platform/user-favorites-menu/model/index.ts @@ -0,0 +1,28 @@ +import { AuditedEntityDto, EntityDto, IHasConcurrencyStamp } from '/@/api/model/baseModel'; + +export interface UserFavoriteMenuDto extends AuditedEntityDto, EntityDto { + menuId: string; + userId: string; + aliasName?: string; + color?: string; + framework: string; + name: string; + displayName: string; + path?: string; + icon?: string; +} + +interface UserFavoriteMenuCreateOrUpdateDto { + menuId: string; + color?: string; + aliasName?: string; + icon?: string; +} + +export interface UserFavoriteMenuCreateDto extends UserFavoriteMenuCreateOrUpdateDto { + framework: string; +} + +export interface UserFavoriteMenuUpdateDto extends UserFavoriteMenuCreateOrUpdateDto, IHasConcurrencyStamp { +} + diff --git a/apps/vue/src/locales/lang/en/routes/dashboard.ts b/apps/vue/src/locales/lang/en/routes/dashboard.ts index 99906a368..4f6a27bbe 100644 --- a/apps/vue/src/locales/lang/en/routes/dashboard.ts +++ b/apps/vue/src/locales/lang/en/routes/dashboard.ts @@ -15,11 +15,15 @@ export default { } }, menus: { + favoriteMenu: '常用', more: 'More', addMenu: 'Add new menu', manager: 'Manage menu', selectMenu: 'Select menu', - selectColor: 'Select color' + selectColor: 'Select color', + deleteMenu: 'Delete menu', + defineAliasName: 'Alias name', + defineIcon: 'Icon' } }, analysis: 'Analysis', diff --git a/apps/vue/src/locales/lang/zh-CN/routes/dashboard.ts b/apps/vue/src/locales/lang/zh-CN/routes/dashboard.ts index 962fb1a57..06eb18197 100644 --- a/apps/vue/src/locales/lang/zh-CN/routes/dashboard.ts +++ b/apps/vue/src/locales/lang/zh-CN/routes/dashboard.ts @@ -1,5 +1,5 @@ export default { - dashboard: 'Dashboard', + dashboard: '仪表盘', about: '关于', workbench: { title: '工作台', @@ -15,11 +15,15 @@ export default { } }, menus: { + favoriteMenu: '常用', more: '更多', addMenu: '添加菜单', manager: '管理菜单', selectMenu: '选择菜单', - selectColor: '选择颜色' + selectColor: '选择颜色', + deleteMenu: '移除菜单', + defineAliasName: '自定义别名', + defineIcon: '自定义图标' } }, analysis: '分析页', diff --git a/apps/vue/src/views/dashboard/workbench/components/MenuCard.vue b/apps/vue/src/views/dashboard/workbench/components/MenuCard.vue index 9cd713b1c..c760c8ab3 100644 --- a/apps/vue/src/views/dashboard/workbench/components/MenuCard.vue +++ b/apps/vue/src/views/dashboard/workbench/components/MenuCard.vue @@ -1,10 +1,16 @@