diff --git a/src/i18n/locales/en-US.ts b/src/i18n/locales/en-US.ts index 33663aab..8a97f6cb 100644 --- a/src/i18n/locales/en-US.ts +++ b/src/i18n/locales/en-US.ts @@ -371,7 +371,7 @@ export default { Alarmjump:"Click to jump to the Active Alarms", skim: { - users: "Users", + users: "Subscriber", userTitle:'User Information', imsUeNum: "VoNR/VoLTE", smfUeNum: "User Sessions", @@ -383,6 +383,9 @@ export default { enbUeNum:'4G Active Users', baseTitle:'Online Information', nodeBInfo: 'NodeB Information', + onlineinfo:'Online Information', + ims:'IMS', + voip:'VoIP' }, upfFlow:{ title: "UPF Throughput", diff --git a/src/views/dashboard/overview/index.vue b/src/views/dashboard/overview/index.vue index 358b614a..572e7476 100644 --- a/src/views/dashboard/overview/index.vue +++ b/src/views/dashboard/overview/index.vue @@ -13,6 +13,8 @@ import { listUDMSub } from '@/api/neData/udm_sub'; import { listUENumBySMF } from '@/api/neUser/smf'; import { listUENumByIMS } from '@/api/neUser/ims'; import { listBase5G } from '@/api/neUser/base5G'; +import { listIMSSub } from '@/api/neData/ims_sub'; +import { listUDMAuth } from '@/api/neData/voip_auth'; import { graphNodeClickID, graphState, @@ -52,6 +54,10 @@ type SkimStateType = { enbNum: number; /**4G在线用户数量 */ enbUeNum: number; + /**IMS用户数量 */ + imsUserNum: number; + /**VOIP用户数量 */ + voipUserNum: number; }; /**概览状态信息 */ @@ -63,6 +69,8 @@ let skimState: SkimStateType = reactive({ gnbUeNum: 0, enbNum: 0, enbUeNum: 0, + imsUserNum: 0, + voipUserNum: 0, }); /**网元参数 */ @@ -171,9 +179,9 @@ async function fnGetSkim() { const handler = neHandlers.get(child.neType); return handler ? { - promise: handler.request(child.neId), - process: handler.process, - } + promise: handler.request(child.neId), + process: handler.process, + } : null; }) .filter(Boolean) || [] @@ -190,6 +198,8 @@ async function fnGetSkim() { gnbUeNum: 0, enbNum: 0, enbUeNum: 0, + imsUserNum: 0, + voipUserNum: 0, }); results.forEach((result: any, index: any) => { if (result.status === 'fulfilled') { @@ -205,6 +215,20 @@ async function fnGetSkim() { skimState.udmSubNum = res.total; } }); + + // IMS用户数 + listIMSSub({ neId: udmNeId.value, pageNum: 1, pageSize: 1 }).then(res => { + if (res.code === RESULT_CODE_SUCCESS) { + skimState.imsUserNum = res.total; + } + }); + + // VOIP用户数 + listUDMAuth({ neId: udmNeId.value, pageNum: 1, pageSize: 1 }).then(res => { + if (res.code === RESULT_CODE_SUCCESS) { + skimState.voipUserNum = res.total; + } + }); } /**初始数据函数 */ @@ -272,6 +296,20 @@ function fnSelectUDM(e: any) { skimState.udmSubNum = res.total; } }); + + // 更新IMS用户数 + listIMSSub({ neId: udmNeId.value, pageNum: 1, pageSize: 1 }).then(res => { + if (res.code === RESULT_CODE_SUCCESS) { + skimState.imsUserNum = res.total; + } + }); + + // 更新VOIP用户数 + listUDMAuth({ neId: udmNeId.value, pageNum: 1, pageSize: 1 }).then(res => { + if (res.code === RESULT_CODE_SUCCESS) { + skimState.voipUserNum = res.total; + } + }); } /**资源控制-选择NE */ function fnSelectNeRe(e: any) { @@ -401,10 +439,33 @@ onBeforeUnmount(() => {
-
-

+
+

+    {{ t('views.dashboard.overview.skim.userTitle') }} + + +
+ {{ udmOtions.find(item => item.value === udmNeId)?.label || 'UDM' }} + +
+ +

{ /> {{ skimState.udmSubNum }}
- - -
- {{ t('views.dashboard.overview.skim.users') }} - -
- -
+ {{ t('views.dashboard.overview.skim.users') }} + + + + + + + + + + + + + + + + + + + +
- - {{ skimState.imsUeNum }} + + {{ skimState.imsUserNum }}
- {{ t('views.dashboard.overview.skim.imsUeNum') }} + IMS
- - {{ skimState.smfUeNum }} + + {{ skimState.voipUserNum }}
- {{ t('views.dashboard.overview.skim.smfUeNum') }} + VoIP

+

@@ -547,6 +611,40 @@ onBeforeUnmount(() => {

+ +
+
+

+    {{ t('views.dashboard.overview.skim.onlineinfo') }} +

+
+
+
+ + {{ skimState.imsUeNum }} +
+ {{ t('views.dashboard.overview.skim.imsUeNum') }} +
+
+
+ + {{ skimState.smfUeNum }} +
+ {{ t('views.dashboard.overview.skim.smfUeNum') }} +
+
+
+
+
@@ -571,8 +669,8 @@ onBeforeUnmount(() => { >    {{ - t('views.dashboard.overview.upfFlow.title') - }} + t('views.dashboard.overview.upfFlow.title') + }}