From 0bc2be52efb6e7ef444b25c8c3deae7e3f31624f Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Sat, 23 Sep 2023 19:14:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=A1=E4=BB=A4=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/trace/analysis.ts | 74 ++++ src/views/trace/analysis/index.vue | 610 +++++++++++++++++---------- src/views/trace/task/index.vue | 644 ++++++++++++++++++++--------- 3 files changed, 923 insertions(+), 405 deletions(-) create mode 100644 src/api/trace/analysis.ts diff --git a/src/api/trace/analysis.ts b/src/api/trace/analysis.ts new file mode 100644 index 00000000..1c7a2b34 --- /dev/null +++ b/src/api/trace/analysis.ts @@ -0,0 +1,74 @@ +import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; +import { request } from '@/plugins/http-fetch'; +import { parseObjLineToHump } from '@/utils/parse-utils'; + +/** + * 查询信令列表 + * @param query 查询参数 + * @returns object + */ +export async function listTraceData(query: Record) { + let totalSQL = 'select count(*) as total from trace_data where 1=1 '; + let rowsSQL = 'select * from trace_data where 1=1 '; + + // 查询 + let querySQL = ''; + if (query.imsi) { + querySQL += ` and imsi = '${query.imsi}' `; + } + + // 分页 + const pageNum = query.pageNum - 1; + const limtSql = ` limit ${pageNum},${query.pageSize} `; + + // 发起请求 + const result = await request({ + url: `/databaseManagement/v1/omc_db/trace_data`, + method: 'get', + params: { + totalSQL: totalSQL + querySQL, + rowsSQL: rowsSQL + querySQL + limtSql, + }, + }); + + // 解析数据 + if (result.code === RESULT_CODE_SUCCESS) { + const data: DataList = { + total: 0, + rows: [], + code: result.code, + msg: result.msg, + }; + result.data.data.forEach((item: any) => { + const itemData = item['trace_data']; + if (Array.isArray(itemData)) { + if (itemData.length === 1 && itemData[0]['total']) { + data.total = itemData[0]['total']; + } else { + data.rows = itemData.map(v => parseObjLineToHump(v)); + } + } + }); + return data; + } + return result; +} + +// 网元抓包pcap文件下载 +export function tcpdumpPcapDownload(data: Record) { + return request({ + url: '/traceManagement/v1/tcpdumpPcapDownload', + method: 'post', + data: data, + responseType: 'blob', + }); +} + +// 网元抓包生成pcap +export function tcpdumpNeUPFTask(data: Record) { + return request({ + url: '/traceManagement/v1/tcpdumpNeUPFTask', + method: 'post', + data: data, + }); +} diff --git a/src/views/trace/analysis/index.vue b/src/views/trace/analysis/index.vue index edd1ed9c..00f382ba 100644 --- a/src/views/trace/analysis/index.vue +++ b/src/views/trace/analysis/index.vue @@ -1,236 +1,432 @@ - - + diff --git a/src/views/trace/task/index.vue b/src/views/trace/task/index.vue index edd1ed9c..0cdd4c71 100644 --- a/src/views/trace/task/index.vue +++ b/src/views/trace/task/index.vue @@ -1,236 +1,484 @@ - - +