feat: 看板CDR/UE事件框

This commit is contained in:
TsMask
2024-01-29 15:20:10 +08:00
parent c9d571ce1d
commit db80d1dcce
4 changed files with 75 additions and 10 deletions

View File

@@ -1,5 +1,4 @@
<script setup lang="ts">
import { reactive, ref, onMounted } from 'vue';
import {
cdrEventData,
cdrEventTotal,
@@ -12,9 +11,11 @@ const { t } = useI18n();
<template>
<div class="cdr" style="display: block">
<div class="cdr-head">
<span class="col">call</span>
<span class="col">行为</span>
<span class="col-w">信息</span>
<span class="col">{{ t('views.dashboard.overview.cdrEvent.id') }}</span>
<span class="col">{{ t('views.dashboard.overview.cdrEvent.type') }}</span>
<span class="col-w">
{{ t('views.dashboard.overview.cdrEvent.msg') }}
</span>
</div>
<div class="cdr-marquee-view">
<div

View File

@@ -1,18 +1,15 @@
<script setup lang="ts">
import { reactive, ref, onMounted } from 'vue';
import { ueEventData, ueEventTotal, ueEventId } from '../../hooks/useUEEvent';
import useI18n from '@/hooks/useI18n';
const { t } = useI18n();
onMounted(() => {});
</script>
<template>
<div class="ue" style="display: block">
<div class="ue-head">
<span class="col">IMSI</span>
<span class="col">行为</span>
<span class="col-w">信息</span>
<span class="col">{{ t('views.dashboard.overview.ueEvent.id') }}</span>
<span class="col">{{ t('views.dashboard.overview.ueEvent.type') }}</span>
<span class="col-w">{{ t('views.dashboard.overview.ueEvent.msg') }}</span>
</div>
<div class="ue-marquee-view">
<div

View File

@@ -8,3 +8,26 @@ export const cdrEventTotal = ref<number>(0);
/**事件推送id */
export const cdrEventId = ref<string>('');
/**cdrEvent CDR会话事件 数据解析 */
export function cdrEventParse(item: Record<string, any>) {
let evData: Record<string, any> = item.cdrJSON || item.CDR;
if (typeof evData === 'string') {
try {
evData = JSON.parse(evData);
} catch (error) {
console.error(error);
return false;
}
}
if (evData.recordType === 'CALL') {
return {
id: item.id || item.timestamp,
type: evData.recordType,
time: evData.callDuration,
call: evData.callReference,
msg: `${evData.calledParty} -> ${evData.callerParty}`,
};
}
}

View File

@@ -8,3 +8,47 @@ export const ueEventTotal = ref<number>(0);
/**事件推送id */
export const ueEventId = ref<string>('');
/**ueEvent UE会话事件 数据解析 */
export function ueEventParse(item: Record<string, any>) {
let evData: Record<string, any> = item.eventJSON;
if (typeof evData === 'string') {
try {
evData = JSON.parse(evData);
} catch (error) {
console.error(error);
}
}
if (item.eventType === 'auth-result') {
return {
id: item.id || item.timestamp,
type: item.eventType,
time: evData.authTime,
imsi: evData.imsi,
msg: `${evData.authMessage}`,
};
}
if (item.eventType === 'detach') {
return {
id: item.id || item.timestamp,
type: item.eventType,
time: evData.detachTime,
imsi: evData.imsi,
msg: `${evData.detachResult}`,
};
}
if (item.eventType === 'cm-state') {
return {
id: item.id || item.timestamp,
type: item.eventType,
time: evData.changeTime,
imsi: evData.imsi,
msg: `${evData.onlineNumber}`,
};
}
return false;
}