fix: UE事件MME 看板推送显示/类型结果保持和AMF一致

This commit is contained in:
TsMask
2024-06-19 16:57:07 +08:00
parent 1ec374eb26
commit e1548d2c98
3 changed files with 62 additions and 51 deletions

View File

@@ -23,13 +23,16 @@ const queue = new PQueue({ concurrency: 1, autoStart: true });
/**字典数据 */ /**字典数据 */
let dict: { let dict: {
/**UE 事件类型MME */ /**UE 事件认证代码类型 */
ueEventTypeMME: DictType[]; ueAauthCode: DictType[];
/**UE 事件结果MME */ /**UE 事件类型 */
ueEventResultMME: DictType[]; ueEventType: DictType[];
/**UE 事件CM状态 */
ueEventCmState: DictType[];
} = reactive({ } = reactive({
ueEventTypeMME: [], ueAauthCode: [],
ueEventResultMME: [], ueEventType: [],
ueEventCmState: [],
}); });
/**开始结束时间 */ /**开始结束时间 */
@@ -40,7 +43,7 @@ let queryParams = reactive({
/**网元类型 */ /**网元类型 */
neType: 'MME', neType: 'MME',
neId: '001', neId: '001',
eventType: '', eventType: 'auth-result',
imsi: '', imsi: '',
sortField: 'timestamp', sortField: 'timestamp',
sortOrder: 'desc', sortOrder: 'desc',
@@ -56,9 +59,9 @@ let queryParams = reactive({
/**查询参数重置 */ /**查询参数重置 */
function fnQueryReset() { function fnQueryReset() {
eventTypes.value = []; eventTypes.value = ['auth-result'];
queryParams = Object.assign(queryParams, { queryParams = Object.assign(queryParams, {
eventType: '', eventType: 'auth-result',
imsi: '', imsi: '',
startTime: '', startTime: '',
endTime: '', endTime: '',
@@ -72,7 +75,7 @@ function fnQueryReset() {
} }
/**记录类型 */ /**记录类型 */
const eventTypes = ref<string[]>([]); const eventTypes = ref<string[]>(['auth-result']);
/**查询记录类型变更 */ /**查询记录类型变更 */
function fnQueryEventTypeChange(value: any) { function fnQueryEventTypeChange(value: any) {
@@ -397,15 +400,19 @@ function wsMessage(res: Record<string, any>) {
onMounted(() => { onMounted(() => {
// 初始字典数据 // 初始字典数据
Promise.allSettled([ Promise.allSettled([
getDict('ue_event_mme_type'), getDict('ue_auth_code'),
getDict('ue_event_mme_result'), getDict('ue_event_type'),
getDict('ue_event_cm_state'),
]) ])
.then(resArr => { .then(resArr => {
if (resArr[0].status === 'fulfilled') { if (resArr[0].status === 'fulfilled') {
dict.ueEventTypeMME = resArr[0].value; dict.ueAauthCode = resArr[0].value;
} }
if (resArr[1].status === 'fulfilled') { if (resArr[1].status === 'fulfilled') {
dict.ueEventResultMME = resArr[1].value; dict.ueEventType = resArr[1].value;
}
if (resArr[2].status === 'fulfilled') {
dict.ueEventCmState = resArr[2].value;
} }
}) })
.finally(() => { .finally(() => {
@@ -439,7 +446,7 @@ onBeforeUnmount(() => {
<a-select <a-select
v-model:value="eventTypes" v-model:value="eventTypes"
mode="multiple" mode="multiple"
:options="dict.ueEventTypeMME" :options="dict.ueEventType"
:placeholder="t('common.selectPlease')" :placeholder="t('common.selectPlease')"
@change="fnQueryEventTypeChange" @change="fnQueryEventTypeChange"
></a-select> ></a-select>
@@ -595,13 +602,24 @@ onBeforeUnmount(() => {
> >
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'eventType'"> <template v-if="column.key === 'eventType'">
<DictTag :options="dict.ueEventTypeMME" :value="record.eventType" /> <DictTag :options="dict.ueEventType" :value="record.eventType" />
</template> </template>
<template v-if="column.key === 'result'"> <template v-if="column.key === 'result'">
<span v-if="record.eventType === 'auth-result'">
<DictTag <DictTag
:options="dict.ueEventResultMME" :options="dict.ueAauthCode"
:value="record.eventJSON.result" :value="record.eventJSON.result"
/> />
</span>
<span v-if="record.eventType === 'detach'">
<span>{{ t('views.dashboard.ue.resultOk') }}</span>
</span>
<span v-if="record.eventType === 'cm-state'">
<DictTag
:options="dict.ueEventCmState"
:value="record.eventJSON.result"
/>
</span>
</template> </template>
<template v-if="column.key === 'id'"> <template v-if="column.key === 'id'">
<a-space :size="8" align="center"> <a-space :size="8" align="center">
@@ -641,17 +659,25 @@ onBeforeUnmount(() => {
</div> </div>
<div> <div>
<span>{{ t('views.dashboard.ue.eventType') }}: </span> <span>{{ t('views.dashboard.ue.eventType') }}: </span>
<DictTag <DictTag :options="dict.ueEventType" :value="record.eventType" />
:options="dict.ueEventTypeMME"
:value="record.eventType"
/>
</div> </div>
<div> <div>
<span>{{ t('views.dashboard.ue.result') }}: </span> <span>{{ t('views.dashboard.ue.result') }}: </span>
<span v-if="record.eventType === 'auth-result'">
<DictTag <DictTag
:options="dict.ueEventResultMME" :options="dict.ueAauthCode"
:value="record.eventJSON.result" :value="record.eventJSON.result"
/> />
</span>
<span v-if="record.eventType === 'detach'">
{{ t('views.dashboard.ue.resultOK') }}
</span>
<span v-if="record.eventType === 'cm-state'">
<DictTag
:options="dict.ueEventCmState"
:value="record.eventJSON.result"
/>
</span>
</div> </div>
</div> </div>
</template> </template>

View File

@@ -19,18 +19,12 @@ let dict: {
ueEventType: DictType[]; ueEventType: DictType[];
/**UE 事件CM状态 */ /**UE 事件CM状态 */
ueEventCmState: DictType[]; ueEventCmState: DictType[];
/**UE 事件类型MME */
ueEventTypeMME: DictType[];
/**UE 事件结果MME */
ueEventResultMME: DictType[];
} = reactive({ } = reactive({
cdrSipCode: [], cdrSipCode: [],
cdrCallType: [], cdrCallType: [],
ueAauthCode: [], ueAauthCode: [],
ueEventType: [], ueEventType: [],
ueEventCmState: [], ueEventCmState: [],
ueEventTypeMME: [],
ueEventResultMME: [],
}); });
onMounted(() => { onMounted(() => {
@@ -41,8 +35,6 @@ onMounted(() => {
getDict('ue_auth_code'), getDict('ue_auth_code'),
getDict('ue_event_type'), getDict('ue_event_type'),
getDict('ue_event_cm_state'), getDict('ue_event_cm_state'),
getDict('ue_event_mme_type'),
getDict('ue_event_mme_result'),
]).then(resArr => { ]).then(resArr => {
if (resArr[0].status === 'fulfilled') { if (resArr[0].status === 'fulfilled') {
dict.cdrSipCode = resArr[0].value; dict.cdrSipCode = resArr[0].value;
@@ -59,12 +51,6 @@ onMounted(() => {
if (resArr[4].status === 'fulfilled') { if (resArr[4].status === 'fulfilled') {
dict.ueEventCmState = resArr[4].value; dict.ueEventCmState = resArr[4].value;
} }
if (resArr[5].status === 'fulfilled') {
dict.ueEventTypeMME = resArr[5].value;
}
if (resArr[6].status === 'fulfilled') {
dict.ueEventResultMME = resArr[6].value;
}
}); });
}); });
</script> </script>
@@ -173,6 +159,7 @@ onMounted(() => {
TAC ID: <span>{{ item.data.tacID }}</span> TAC ID: <span>{{ item.data.tacID }}</span>
</div> </div>
</div> </div>
<div v-if="item.type === 'auth-result'"> <div v-if="item.type === 'auth-result'">
{{ t('views.dashboard.overview.userActivity.result') }}:&nbsp; {{ t('views.dashboard.overview.userActivity.result') }}:&nbsp;
<span> <span>
@@ -200,7 +187,7 @@ onMounted(() => {
<div> <div>
{{ t('views.dashboard.overview.userActivity.type') }}:&nbsp; {{ t('views.dashboard.overview.userActivity.type') }}:&nbsp;
<span> <span>
<DictTag :options="dict.ueEventTypeMME" :value="item.type" /> <DictTag :options="dict.ueEventType" :value="item.type" />
</span> </span>
</div> </div>
<div> <div>
@@ -216,7 +203,7 @@ onMounted(() => {
<div class="card-ue-w33" v-if="item.type === 'auth-result'"> <div class="card-ue-w33" v-if="item.type === 'auth-result'">
<div> <div>
GNB ID: <span>{{ item.data.gNBID }}</span> ENB ID: <span>{{ item.data.eNBID }}</span>
</div> </div>
<div> <div>
Cell ID: <span>{{ item.data.cellID }}</span> Cell ID: <span>{{ item.data.cellID }}</span>
@@ -228,20 +215,17 @@ onMounted(() => {
<div v-if="item.type === 'auth-result'"> <div v-if="item.type === 'auth-result'">
{{ t('views.dashboard.overview.userActivity.result') }}:&nbsp; {{ t('views.dashboard.overview.userActivity.result') }}:&nbsp;
<span> <span>
<DictTag :options="dict.ueAauthCode" :value="item.data.authCode" /> <DictTag :options="dict.ueAauthCode" :value="item.data.result" />
</span> </span>
</div> </div>
<div v-if="item.type === 'detach'"> <div v-if="item.type === 'detach'">
{{ t('views.dashboard.overview.userActivity.result') }}: {{ t('views.dashboard.overview.userActivity.result') }}:
<span>{{ t('views.dashboard.overview.userActivity.resultOK') }}</span> <span>{{ t('views.dashboard.overview.userActivity.resultOK') }}</span>
</div> </div>
<div class="card-ue-w33"> <div class="card-ue-w33" v-if="item.type === 'cm-state'">
{{ t('views.dashboard.overview.userActivity.result') }}:&nbsp; {{ t('views.dashboard.overview.userActivity.result') }}:&nbsp;
<span> <span>
<DictTag <DictTag :options="dict.ueEventCmState" :value="item.data.result" />
:options="dict.ueEventResultMME"
:value="item.data.result"
/>
</span> </span>
</div> </div>
</div> </div>

View File

@@ -199,9 +199,10 @@ export default function useWS() {
* *
* 指标UPF (GroupID:12) * 指标UPF (GroupID:12)
* AMF_UE会话事件(GroupID:1010) * AMF_UE会话事件(GroupID:1010)
* MME_UE会话事件(GroupID:1011)
* IMS_CDR会话事件(GroupID:1005) * IMS_CDR会话事件(GroupID:1005)
*/ */
subGroupID: '12,1010,1005', subGroupID: '12,1010,1011,1005',
}, },
onmessage: wsMessage, onmessage: wsMessage,
onerror: wsError, onerror: wsError,