|
@@ -53,32 +53,53 @@ const menuItems = ref<menuItem[]>()
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
const menuListStr = localStorage.getItem('menuList')
|
|
const menuListStr = localStorage.getItem('menuList')
|
|
|
|
|
+ const userInfoStr = localStorage.getItem('userInfo')
|
|
|
|
|
|
|
|
if (menuListStr) {
|
|
if (menuListStr) {
|
|
|
menuItems.value = JSON.parse(menuListStr)
|
|
menuItems.value = JSON.parse(menuListStr)
|
|
|
|
|
|
|
|
- let additionalMenuList = [
|
|
|
|
|
- {
|
|
|
|
|
- icon: "icon_xuexiaoguanli",
|
|
|
|
|
- route: "/main/logMonitor",
|
|
|
|
|
- title: "日志监控",
|
|
|
|
|
- label:'',
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- icon: "icon_xuexiaoguanli",
|
|
|
|
|
- route: "/main/performanceMonitor",
|
|
|
|
|
- title: "业务监控",
|
|
|
|
|
- label:'',
|
|
|
|
|
- },
|
|
|
|
|
- ]
|
|
|
|
|
|
|
+ // 运维人员只显示学校管理和用户查询,不显示日志监控和业务监控
|
|
|
|
|
+ // 先过滤掉后端可能返回的日志监控和业务监控
|
|
|
|
|
+ menuItems.value = menuItems.value?.filter(menu =>
|
|
|
|
|
+ menu.route !== '/main/logMonitor' && menu.route !== '/main/performanceMonitor'
|
|
|
|
|
+ )
|
|
|
|
|
|
|
|
- // 只追加 menuList 中不存在的菜单项,避免重复
|
|
|
|
|
- additionalMenuList.forEach(item => {
|
|
|
|
|
- const exists = menuItems.value?.some(menu => menu.route === item.route)
|
|
|
|
|
- if (!exists) {
|
|
|
|
|
- menuItems.value?.push(item)
|
|
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ // 通过 userInfo 判断是否为运维人员
|
|
|
|
|
+ // 如果是运维账号(没有管理员相关菜单或特定字段),则不添加日志监控和业务监控
|
|
|
|
|
+ const userInfo = userInfoStr ? JSON.parse(userInfoStr) : {}
|
|
|
|
|
+ const isOpsUser = userInfo?.userType === 'ops' || userInfo?.roleType === 'ops'
|
|
|
|
|
+
|
|
|
|
|
+ // 判断是否为管理员账号(有运维管理或联考管理菜单)
|
|
|
|
|
+ const hasAdminMenu = menuItems.value?.some(menu =>
|
|
|
|
|
+ menu.route === '/main/manager' || menu.route === '/main/examination'
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ console.log('isOpsUser:', isOpsUser, 'hasAdminMenu:', hasAdminMenu)
|
|
|
|
|
+
|
|
|
|
|
+ if (!isOpsUser && hasAdminMenu) {
|
|
|
|
|
+ // 非运维人员且有管理员菜单,添加日志监控和业务监控
|
|
|
|
|
+ const additionalMenuList = [
|
|
|
|
|
+ {
|
|
|
|
|
+ icon: "icon_xuexiaoguanli",
|
|
|
|
|
+ route: "/main/logMonitor",
|
|
|
|
|
+ title: "日志监控",
|
|
|
|
|
+ label:'',
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ icon: "icon_xuexiaoguanli",
|
|
|
|
|
+ route: "/main/performanceMonitor",
|
|
|
|
|
+ title: "业务监控",
|
|
|
|
|
+ label:'',
|
|
|
|
|
+ },
|
|
|
|
|
+ ]
|
|
|
|
|
+
|
|
|
|
|
+ additionalMenuList.forEach(item => {
|
|
|
|
|
+ const exists = menuItems.value?.some(menu => menu.route === item.route)
|
|
|
|
|
+ if (!exists) {
|
|
|
|
|
+ menuItems.value?.push(item)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
});
|
|
});
|