feat: 看板CDR/UE事件框
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { reactive, ref, onMounted } from 'vue';
|
|
||||||
import {
|
import {
|
||||||
cdrEventData,
|
cdrEventData,
|
||||||
cdrEventTotal,
|
cdrEventTotal,
|
||||||
@@ -12,9 +11,11 @@ const { t } = useI18n();
|
|||||||
<template>
|
<template>
|
||||||
<div class="cdr" style="display: block">
|
<div class="cdr" style="display: block">
|
||||||
<div class="cdr-head">
|
<div class="cdr-head">
|
||||||
<span class="col">call</span>
|
<span class="col">{{ t('views.dashboard.overview.cdrEvent.id') }}</span>
|
||||||
<span class="col">行为</span>
|
<span class="col">{{ t('views.dashboard.overview.cdrEvent.type') }}</span>
|
||||||
<span class="col-w">信息</span>
|
<span class="col-w">
|
||||||
|
{{ t('views.dashboard.overview.cdrEvent.msg') }}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="cdr-marquee-view">
|
<div class="cdr-marquee-view">
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -1,18 +1,15 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { reactive, ref, onMounted } from 'vue';
|
|
||||||
import { ueEventData, ueEventTotal, ueEventId } from '../../hooks/useUEEvent';
|
import { ueEventData, ueEventTotal, ueEventId } from '../../hooks/useUEEvent';
|
||||||
import useI18n from '@/hooks/useI18n';
|
import useI18n from '@/hooks/useI18n';
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
onMounted(() => {});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="ue" style="display: block">
|
<div class="ue" style="display: block">
|
||||||
<div class="ue-head">
|
<div class="ue-head">
|
||||||
<span class="col">IMSI</span>
|
<span class="col">{{ t('views.dashboard.overview.ueEvent.id') }}</span>
|
||||||
<span class="col">行为</span>
|
<span class="col">{{ t('views.dashboard.overview.ueEvent.type') }}</span>
|
||||||
<span class="col-w">信息</span>
|
<span class="col-w">{{ t('views.dashboard.overview.ueEvent.msg') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="ue-marquee-view">
|
<div class="ue-marquee-view">
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -8,3 +8,26 @@ export const cdrEventTotal = ref<number>(0);
|
|||||||
|
|
||||||
/**事件推送id */
|
/**事件推送id */
|
||||||
export const cdrEventId = ref<string>('');
|
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}`,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -8,3 +8,47 @@ export const ueEventTotal = ref<number>(0);
|
|||||||
|
|
||||||
/**事件推送id */
|
/**事件推送id */
|
||||||
export const ueEventId = ref<string>('');
|
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;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user