From cd495ab817fe6bc1b0417623b10acfb2f60fb39a Mon Sep 17 00:00:00 2001 From: zhongzm Date: Fri, 8 Aug 2025 19:41:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=9F=BA=E7=AB=99=E6=95=B0=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=BB=A5=E5=8F=8A=E8=B5=84=E6=BA=90=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E6=A1=86=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dashboard/overview2/index.vue | 148 ++++++++++++++++++++---- 1 file changed, 126 insertions(+), 22 deletions(-) diff --git a/src/views/dashboard/overview2/index.vue b/src/views/dashboard/overview2/index.vue index 77f56b3c..fd0fc855 100644 --- a/src/views/dashboard/overview2/index.vue +++ b/src/views/dashboard/overview2/index.vue @@ -115,17 +115,19 @@ function fnGetNeState() { /**获取概览信息 */ async function fnGetSkim() { + let tempGnbSumNum = 0; + let tempEnbSumNum = 0; const neHandlers = new Map([ - // [ - // 'UDM', - // { - // request: (neId: string) => - // listUDMSub({ neId: neId, pageNum: 1, pageSize: 1 }), - // process: (res: any) => - // res.code === RESULT_CODE_SUCCESS && - // (skimState.udmSubNum += res.data.total), - // }, - // ], + [ + 'UDM', + { + request: (neId: string) => + listUDMSub({ neId: neId, pageNum: 1, pageSize: 1 }), + process: (res: any) => + res.code === RESULT_CODE_SUCCESS && + (skimState.udmSubNum += res.data.total), + }, + ], [ 'SMF', { @@ -154,48 +156,103 @@ async function fnGetSkim() { }, }, ], + // [ + // 'AMF', + // { + // request: (neId: string) => listAMFNblist({ neId }), + // process: (res: any) => { + // if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.data)) { + // skimState.gnbNum += res.data.length; + // skimState.gnbUeNum += res.data.reduce( + // (sum: number, item: any) => sum + item.ueNum, + // 0 + // ); + // } + // }, + // }, + // ], [ 'AMF', { request: (neId: string) => listAMFNblist({ neId }), - process: (res: any) => { - if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.data)) { + process: async (res: any, neId: any) => { + console.log(neId) + if (res.code === RESULT_CODE_SUCCESS&& Array.isArray(res.data)) { skimState.gnbNum += res.data.length; skimState.gnbUeNum += res.data.reduce( (sum: number, item: any) => sum + item.ueNum, 0 ); + const amfNbRes = await listAMFNbStatelist({ neId }); + console.log(amfNbRes) + if ( + amfNbRes.code === RESULT_CODE_SUCCESS && + Array.isArray(amfNbRes.data) + ) { + // skimState.gNbSumNum += amfNbRes.data.length; + tempGnbSumNum += amfNbRes.data.length; + } } }, }, ], + // [ + // 'MME', + // { + // request: (neId: string) => listMMENblist({ neId }), + // process: (res: any) => { + // if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.data)) { + // skimState.enbNum += res.data.length; + // skimState.enbUeNum += res.data.reduce( + // (sum: number, item: any) => sum + item.ueNum, + // 0 + // ); + // } + // }, + // }, + // ], [ 'MME', { request: (neId: string) => listMMENblist({ neId }), - process: (res: any) => { + process: async (res: any, neId: any) => { if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.data)) { skimState.enbNum += res.data.length; skimState.enbUeNum += res.data.reduce( (sum: number, item: any) => sum + item.ueNum, 0 ); + + const mmeNbRes = await listMMENbStatelist({ neId }); + console.log(mmeNbRes) + if ( + mmeNbRes.code === RESULT_CODE_SUCCESS && + Array.isArray(mmeNbRes.data) + ) { + // skimState.eNbSumNum += mmeNbRes.data.length; + console.log(mmeNbRes) + tempEnbSumNum += mmeNbRes.data.length; + } } }, }, ], ]); + console.log(neCascaderOptions) const requests = neCascaderOptions.value.flatMap( (ne: any) => ne.children ?.map((child: any) => { + console.log(child.neId) const handler = neHandlers.get(child.neType); return handler ? { promise: handler.request(child.neId), process: handler.process, - } + neId: child.neId, // 这里加上neId + + } : null; }) .filter(Boolean) || [] @@ -213,20 +270,33 @@ async function fnGetSkim() { enbNum: 0, enbUeNum: 0, }); - results.forEach((result, index) => { + // results.forEach((result, index) => { + // if (result.status === 'fulfilled') { + // requests[index].process(result.value); + // } else { + // requests[index].process(0); + // } + // }); + + const processPromises = results.map((result: any, index: any) => { + const req = requests[index]; if (result.status === 'fulfilled') { - requests[index].process(result.value); + return req.process(result.value, req.neId); } else { - requests[index].process(0); + return req.process(0, req.neId); } }); + await Promise.all(processPromises); + skimState.gNbSumNum = tempGnbSumNum; + skimState.eNbSumNum = tempEnbSumNum; + // UDM - listUDMSub({ neId: udmNeId.value, pageNum: 1, pageSize: 1 }).then(res => { - if (res.code === RESULT_CODE_SUCCESS) { - skimState.udmSubNum = res.data.total; - } - }); + // listUDMSub({ neId: udmNeId.value, pageNum: 1, pageSize: 1 }).then(res => { + // if (res.code === RESULT_CODE_SUCCESS) { + // skimState.udmSubNum = res.data.total; + // } + // }); } /**初始数据函数 */ @@ -320,6 +390,7 @@ async function fnSelectUDM(e: any) { } /**资源控制-选择NE */ function fnSelectNeRe(e: any) { + console.log(e) graphNodeClickID.value = e.key; } // @@ -334,6 +405,7 @@ const getPopupContainer = () => { onMounted(() => { // 获取网元网元列表 neListStore.neCascaderOptions.forEach(item => { + console.log(item) if (item.value === 'UPF') { neOtions.value = JSON.parse(JSON.stringify(item.children)); } @@ -347,6 +419,9 @@ onMounted(() => { if (udmOtions.value.length > 0) { fnSelectUDM({ key: udmOtions.value[0].value }); } + // if (onlineArr.length > 0) { + // fnSelectNeRe({ key: onlineArr[0].value }); + // } // 过滤不可用的网元 neCascaderOptions.value = neListStore.getNeCascaderOptions.filter( (item: any) => { @@ -361,6 +436,35 @@ onMounted(() => { return; } + //online Ne + let onlineArr: Record[] = []; + + // UDM + neListStore.neList.forEach((v: any) => { + if ( + v.status && + [ + 'UDM', + 'UPF', + 'AUSF', + 'PCF', + 'SMF', + 'AMF', + 'OMC', + 'SMSC', + 'IMS', + 'MME', + ].includes(v.neType) + ) { + onlineArr.push({ + value: v.neType + '_' + v.neId, + label: v.neName, + rmUid: v.rmUid, + }); + } + }); + onlineOtions.value = onlineArr; + initFlag = true; fnGetSkim().then(() => { loadData();