From df6bf4d9eeb994ab7670ec0af71db66c68f0079e Mon Sep 17 00:00:00 2001 From: xieyonghong <18010623010@163.com> Date: Fri, 31 Mar 2023 21:18:45 +0800 Subject: [PATCH] fix: bug#11262 --- src/router/menu.ts | 2 + src/store/menu.ts | 14 ++++-- src/utils/consts.ts | 5 ++ src/views/account/Center/index.vue | 7 ++- src/views/init-home/Menu/index.vue | 5 +- src/views/init-home/data/RoleData.ts | 30 ------------ src/views/init-home/data/baseMenu.ts | 49 +++++++++++-------- src/views/init-home/index.vue | 6 +-- src/views/system/Menu/Setting/index.vue | 4 +- src/views/system/Menu/index.vue | 4 +- .../system/Role/Detail/Permiss/index.vue | 3 +- .../Role/Detail/components/PermissTree.vue | 26 ++++++++-- 12 files changed, 86 insertions(+), 69 deletions(-) diff --git a/src/router/menu.ts b/src/router/menu.ts index 18aab90b..0224dc75 100644 --- a/src/router/menu.ts +++ b/src/router/menu.ts @@ -2,6 +2,8 @@ export const LoginPath = '/login' export const InitHomePath = '/init-home' export const AccountCenterBindPath = '/account/center/bind' export const InitLicense = '/init-license' +export const NotificationSubscriptionCode = 'account/NotificationSubscription' +export const NotificationRecordCode = 'account/NotificationRecord' export const AccountMenu = { path: '/account', diff --git a/src/store/menu.ts b/src/store/menu.ts index 645471f8..16f65155 100644 --- a/src/store/menu.ts +++ b/src/store/menu.ts @@ -1,11 +1,12 @@ import { defineStore } from 'pinia' import { queryOwnThree } from '@/api/system/menu' import { filterAsyncRouter, findCodeRoute, MenuItem } from '@/utils/menu' -import { isArray } from 'lodash-es' +import { cloneDeep, isArray } from 'lodash-es' import { usePermissionStore } from './permission' import router from '@/router' import { onlyMessage } from '@/utils/comm' -import { AccountMenu } from '@/router/menu' +import { AccountMenu, NotificationRecordCode, NotificationSubscriptionCode } from '@/router/menu' +import { MESSAGE_SUBSCRIBE_MENU_CODE, USER_CENTER_MENU_CODE } from '@/utils/consts' const defaultOwnParams = [ { @@ -96,6 +97,13 @@ export const useMenuStore = defineStore({ const permission = usePermissionStore() permission.permissions = {} const { menusData, silderMenus } = filterAsyncRouter(resp.result) + + // 是否存在通知订阅 + const hasMessageSub = resp.result.some((item: { code: string }) => item.code === MESSAGE_SUBSCRIBE_MENU_CODE) + console.log('hasMessageSub', hasMessageSub) + if (!hasMessageSub) { + AccountMenu.children = AccountMenu.children.filter((item: { code: string }) => ![NotificationSubscriptionCode, NotificationRecordCode].includes(item.code) ) + } this.menus = findCodeRoute([...resp.result, AccountMenu]) Object.keys(this.menus).forEach((item) => { const _item = this.menus[item] @@ -112,7 +120,7 @@ export const useMenuStore = defineStore({ } }) menusData.push(AccountMenu) - this.siderMenus = silderMenus + this.siderMenus = silderMenus.filter((item: { name: string }) => ![USER_CENTER_MENU_CODE, MESSAGE_SUBSCRIBE_MENU_CODE].includes(item.name)) res(menusData) } }) diff --git a/src/utils/consts.ts b/src/utils/consts.ts index 621b311b..04458dd8 100644 --- a/src/utils/consts.ts +++ b/src/utils/consts.ts @@ -1,3 +1,5 @@ +import { MESSAGE_SUBSCRIBE_MENU_DATA } from '@/views/init-home/data/baseMenu' + /** * 状态颜色 */ @@ -49,3 +51,6 @@ export const SystemConst = { } export const USER_CENTER_MENU_CODE = 'account-center' +export const USER_CENTER_MENU_BUTTON_CODE = 'user-center-passwd-update' +export const MESSAGE_SUBSCRIBE_MENU_CODE = 'message-subscribe' +export const MESSAGE_SUBSCRIBE_MENU_BUTTON_CODE = 'message-subscribe-view' diff --git a/src/views/account/Center/index.vue b/src/views/account/Center/index.vue index dd36cfd7..becf59e7 100644 --- a/src/views/account/Center/index.vue +++ b/src/views/account/Center/index.vue @@ -110,7 +110,7 @@ /> -