From e39c4aaf7687f0d2ee64e58aea2755f02132f50b Mon Sep 17 00:00:00 2001 From: XieYongHong <18010623010@163.com> Date: Wed, 7 Jun 2023 10:44:46 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E7=A4=BE?= =?UTF-8?q?=E5=8C=BA=E7=89=88=E8=BF=90=E7=BB=B4=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E4=BB=AA=E8=A1=A8=E7=9B=98-=E6=95=B0=E6=8D=AE=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/link/DashBoard/components/Cpu.vue | 16 ++++++++++++---- src/views/link/DashBoard/components/Jvm.vue | 14 ++++++++++---- src/views/link/DashBoard/components/TopCard.vue | 2 ++ src/views/link/DashBoard/index.vue | 7 ++++--- 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/src/views/link/DashBoard/components/Cpu.vue b/src/views/link/DashBoard/components/Cpu.vue index 0d47222a..f3cbb2af 100644 --- a/src/views/link/DashBoard/components/Cpu.vue +++ b/src/views/link/DashBoard/components/Cpu.vue @@ -61,10 +61,15 @@ import { } from './tool.ts'; import { DataType } from '../typings'; + const props = defineProps({ serviceId: { type: String, default: undefined + }, + isNoCommunity: { + type:Boolean, + default: false } }) @@ -86,7 +91,8 @@ const getCPUEcharts = async (val: any) => { const _cpuOptions = {}; const _cpuXAxis = new Set(); if (res.result?.length) { - const filterArray = res.result.filter((item : any) => item.data?.clusterNodeId === props.serviceId) + // 根据服务节点来筛选数据 + const filterArray = props.isNoCommunity ? res.result.filter((item : any) => item.data?.clusterNodeId === props.serviceId) : res.result filterArray.forEach((item: any) => { const value = item.data.value; const nodeID = item.data.clusterNodeId; @@ -97,7 +103,7 @@ const getCPUEcharts = async (val: any) => { if (!_cpuOptions[nodeID]) { _cpuOptions[nodeID] = []; } - _cpuOptions[nodeID].push( + _cpuOptions[nodeID]?.push( Number(value.cpuSystemUsage).toFixed(2), ); }); @@ -179,8 +185,10 @@ watch( watchEffect(() => { const time = data.value.time - if (time && Array.isArray(time) && time.length === 2 && time[0] && props.serviceId) { - getCPUEcharts(data.value); + if (time && Array.isArray(time) && time.length === 2 && time[0]) { + if (!props.isNoCommunity || props.serviceId) { + getCPUEcharts(data.value); + } } }) diff --git a/src/views/link/DashBoard/components/Jvm.vue b/src/views/link/DashBoard/components/Jvm.vue index 4b71a870..5e48e8ca 100644 --- a/src/views/link/DashBoard/components/Jvm.vue +++ b/src/views/link/DashBoard/components/Jvm.vue @@ -65,6 +65,10 @@ const props = defineProps({ serviceId: { type: String, default: undefined + }, + isNoCommunity: { + type:Boolean, + default: false } }) @@ -86,7 +90,7 @@ const getJVMEcharts = async (val: any) => { const _jvmOptions = {}; const _jvmXAxis = new Set(); if (res.result?.length) { - const filterArray = res.result.filter((item : any) => item.data?.clusterNodeId === props.serviceId) + const filterArray = props.isNoCommunity ? res.result.filter((item : any) => item.data?.clusterNodeId === props.serviceId) : res.result filterArray.forEach((item: any) => { const value = item.data.value; const memoryJvmHeapFree = value.memoryJvmHeapFree; @@ -104,7 +108,7 @@ const getJVMEcharts = async (val: any) => { _jvmXAxis.add( dayjs(value.timestamp).format('YYYY-MM-DD HH:mm'), ); - _jvmOptions[nodeID].push(_value); + _jvmOptions[nodeID]?.push(_value); }); handleJVMOptions(_jvmOptions, [..._jvmXAxis.keys()]); } else { @@ -183,8 +187,10 @@ watch( watchEffect(() => { const time = data.value.time - if (time && Array.isArray(time) && time.length === 2 && time[0] && props.serviceId) { - getJVMEcharts(data.value); + if (time && Array.isArray(time) && time.length === 2 && time[0]) { + if (!props.isNoCommunity || props.serviceId) { + getJVMEcharts(data.value); + } } }) diff --git a/src/views/link/DashBoard/components/TopCard.vue b/src/views/link/DashBoard/components/TopCard.vue index adec0682..3a924893 100644 --- a/src/views/link/DashBoard/components/TopCard.vue +++ b/src/views/link/DashBoard/components/TopCard.vue @@ -127,6 +127,8 @@ onMounted(() => { } } }); + } else { + getData() } }); diff --git a/src/views/link/DashBoard/index.vue b/src/views/link/DashBoard/index.vue index fdfb9704..136c68d8 100644 --- a/src/views/link/DashBoard/index.vue +++ b/src/views/link/DashBoard/index.vue @@ -3,9 +3,9 @@
- - - + + +
@@ -16,6 +16,7 @@ import TopCard from './components/TopCard.vue'; import Network from './components/Network.vue'; import Cpu from './components/Cpu.vue'; import Jvm from './components/Jvm.vue'; +import { isNoCommunity } from '@/utils/utils' const serviceId = ref() From 10a59c318bd2d04649cb3abbb7046eaafce78df1 Mon Sep 17 00:00:00 2001 From: XieYongHong <18010623010@163.com> Date: Wed, 7 Jun 2023 10:56:22 +0800 Subject: [PATCH 2/3] feat: task#2060 --- src/store/menu.ts | 13 +++++++++---- src/utils/menu.ts | 12 ++++++++++++ src/views/home/components/DeviceCountCard.vue | 3 ++- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/store/menu.ts b/src/store/menu.ts index 509f182a..bc5f8d45 100644 --- a/src/store/menu.ts +++ b/src/store/menu.ts @@ -1,12 +1,13 @@ import { defineStore } from 'pinia' import { queryOwnThree } from '@/api/system/menu' -import { filterAsyncRouter, findCodeRoute, MenuItem } from '@/utils/menu' +import {filterAsyncRouter, filterCommunityMenus, findCodeRoute, MenuItem} from '@/utils/menu' import { cloneDeep, isArray } from 'lodash-es' import { usePermissionStore } from './permission' import router from '@/router' import { onlyMessage } from '@/utils/comm' import { AccountMenu, NotificationRecordCode, NotificationSubscriptionCode } from '@/router/menu' import { MESSAGE_SUBSCRIBE_MENU_CODE, USER_CENTER_MENU_CODE } from '@/utils/consts' +import {isNoCommunity} from "@/utils/utils"; const defaultOwnParams = [ { @@ -95,15 +96,19 @@ export const useMenuStore = defineStore({ const resp = await queryOwnThree({ paging: false, terms: defaultOwnParams }) if (resp.success) { const permission = usePermissionStore() + let resultData = resp.result + if (!isNoCommunity) { + resultData = filterCommunityMenus(resultData) + } permission.permissions = {} - const { menusData, silderMenus } = filterAsyncRouter(resp.result) + const { menusData, silderMenus } = filterAsyncRouter(resultData) // 是否存在通知订阅 - const hasMessageSub = resp.result.some((item: { code: string }) => item.code === MESSAGE_SUBSCRIBE_MENU_CODE) + const hasMessageSub = resultData.some((item: { code: string }) => item.code === MESSAGE_SUBSCRIBE_MENU_CODE) if (!hasMessageSub) { AccountMenu.children = AccountMenu.children.filter((item: { code: string }) => ![NotificationSubscriptionCode, NotificationRecordCode].includes(item.code) ) } - this.menus = findCodeRoute([...resp.result, AccountMenu]) + this.menus = findCodeRoute([...resultData, AccountMenu]) Object.keys(this.menus).forEach((item) => { const _item = this.menus[item] if (_item.buttons?.length) { diff --git a/src/utils/menu.ts b/src/utils/menu.ts index f457d5a8..a524603e 100644 --- a/src/utils/menu.ts +++ b/src/utils/menu.ts @@ -1,5 +1,7 @@ import { cloneDeep } from 'lodash-es' import { BlankLayoutPage, BasicLayoutPage } from 'components/Layout' +import { isNoCommunity } from '@/utils/utils' + const pagesComponent = import.meta.glob('../views/**/*.vue'); /** @@ -206,6 +208,16 @@ const findDetailRoutes = (routes: any[]): any[] => { return newRoutes } +const filterMenus = ['device/DashBoard'] +export const filterCommunityMenus = (menuData: any[]) => { + return menuData.filter(item => { + if (item.children) { + item.children = filterCommunityMenus(item.children) + } + return !filterMenus.includes(item.code) + }) +} + export const findCodeRoute = (asyncRouterMap: any[]) => { const routeMeta = {} diff --git a/src/views/home/components/DeviceCountCard.vue b/src/views/home/components/DeviceCountCard.vue index 437378c7..0e77fdf0 100644 --- a/src/views/home/components/DeviceCountCard.vue +++ b/src/views/home/components/DeviceCountCard.vue @@ -1,7 +1,7 @@