feat: 看板左右高度百分比适配

This commit is contained in:
TsMask
2024-01-27 14:57:21 +08:00
parent 4ea8ec2f96
commit 24b367c08e
7 changed files with 395 additions and 373 deletions

View File

@@ -5,6 +5,7 @@ import {
import { OptionsType, WS } from '@/plugins/ws-websocket';
import { computed, onBeforeUnmount, onMounted, reactive, ref } from 'vue';
import { ueEventData, ueEventId, ueEventTotal } from './useUEEvent';
import { cdrEventData, cdrEventTotal, cdrEventId } from './useCDREvent';
/**websocket连接 */
export default function useWS() {
@@ -15,6 +16,36 @@ export default function useWS() {
ws.send(data);
}
function wsInitData() {
// cdrEvent CDR会话事件
ws.send({
requestId: '1005',
type: 'cdr',
data: {
neType: 'IMS',
neId: '001',
sortField: 'timestamp',
sortOrder: 'desc',
pageNum: 1,
pageSize: 50,
},
});
// ueEvent UE会话事件
ws.send({
requestId: '1010',
type: 'ue',
data: {
neType: 'AMF',
neId: '001',
sortField: 'timestamp',
sortOrder: 'desc',
pageNum: 1,
pageSize: 50,
},
});
}
/**接收数据后回调 */
function wsMessage(res: Record<string, any>) {
console.log(res);
@@ -42,6 +73,23 @@ export default function useWS() {
}
}
break;
//cdrEvent CDR会话事件
case '1005':
if (Array.isArray(data.rows)) {
cdrEventTotal.value = data.total;
const evDataArr: Record<string, any>[] = [];
for (const item of data.rows) {
const v = cdrEventParse(item);
if (v) {
evDataArr.push(v);
}
}
cdrEventData.value = evDataArr;
if (evDataArr.length > 0) {
cdrEventId.value = evDataArr[0].id;
}
}
break;
}
if (!data?.groupId) {
@@ -59,30 +107,25 @@ export default function useWS() {
}
}
break;
// cdrEvent CDR会话事件
case '1005':
if (data.data) {
const v = cdrEventParse(data.data);
if (v) {
cdrEventData.value.unshift(v);
cdrEventId.value = v.id;
}
}
break;
}
}
function wsInitData() {
ws.send({
requestId: '1010',
type: 'ue',
data: {
neType: 'AMF',
neId: '001',
sortField: 'timestamp',
sortOrder: 'desc',
pageNum: 1,
pageSize: 50,
},
});
}
/**ueEvent UE会话事件 数据解析 */
function ueEventParse(item: Record<string, any>) {
let evData: Record<string, any> = item.eventJSON;
if (typeof evData === 'string') {
try {
evData = JSON.parse(item.eventJSON);
evData = JSON.parse(evData);
} catch (error) {
console.error(error);
return false;
@@ -120,6 +163,29 @@ export default function useWS() {
}
}
/**cdrEvent CDR会话事件 数据解析 */
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}`,
};
}
}
/**接收数据后回调 */
function wsError(ev: any) {
// 接收数据后回调
@@ -133,8 +199,9 @@ export default function useWS() {
/**订阅通道组
*
* UE会话事件-AMF (GroupID:1010)
* CDR会话事件-IMS (GroupID:1005)
*/
subGroupID: '1010',
subGroupID: '1010,1005',
},
onmessage: wsMessage,
onerror: wsError,