feat: 添加服务类型适配不同的显示菜单内容
This commit is contained in:
@@ -16,6 +16,11 @@ import {
|
||||
MENU_COMPONENT_LAYOUT_LINK,
|
||||
} from '@/constants/menu-constants';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import useAppStore from '@/store/modules/app';
|
||||
import {
|
||||
APP_SERVER_TYPE_M,
|
||||
APP_SERVER_TYPE_O,
|
||||
} from '@/constants/app-constants';
|
||||
|
||||
/**路由构建参数类型 */
|
||||
type RouterStore = {
|
||||
@@ -58,16 +63,36 @@ const useRouterStore = defineStore('router', {
|
||||
/**
|
||||
* 根据网元类型过滤菜单
|
||||
* @param routes 经过clearMenuItem(router.getRoutes())处理
|
||||
* @param coreUid 核心网元uid
|
||||
* @param neTypes 网元类型
|
||||
* @returns 过滤后的菜单
|
||||
*/
|
||||
clearMenuItemByNeList(
|
||||
routes: RouteRecord[] | RouteRecordRaw[],
|
||||
coreUid: string,
|
||||
neTypes: string[]
|
||||
): RouteRecordRaw[] {
|
||||
return routes
|
||||
.map((item: RouteRecord | RouteRecordRaw) => {
|
||||
const finalItem = { ...item };
|
||||
|
||||
// 过滤核心网菜单
|
||||
switch (useAppStore().serverType) {
|
||||
case APP_SERVER_TYPE_O:
|
||||
break;
|
||||
case APP_SERVER_TYPE_M:
|
||||
// 过滤核心网菜单
|
||||
if (coreUid.length < 8 && finalItem.meta?.core == true) {
|
||||
// 全局 网元菜单
|
||||
return null;
|
||||
}
|
||||
if (coreUid.length == 8 && finalItem.meta?.core == false) {
|
||||
// 核心网 非网元菜单
|
||||
return null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// 过滤网元类型
|
||||
if (
|
||||
Array.isArray(finalItem.meta?.neType) &&
|
||||
@@ -96,6 +121,7 @@ const useRouterStore = defineStore('router', {
|
||||
if (finalItem.children && finalItem.children.length > 0) {
|
||||
const children = this.clearMenuItemByNeList(
|
||||
finalItem.children,
|
||||
coreUid,
|
||||
neTypes
|
||||
);
|
||||
// 如果子菜单都被过滤掉了,就不显示
|
||||
|
||||
Reference in New Issue
Block a user