From f7273457e950d607ba7715b6185e50abe0dace75 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 23 Sep 2024 17:24:02 +0800 Subject: [PATCH 01/15] =?UTF-8?q?feat:=20=E8=B7=9F=E8=B8=AA=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=9F=A5=E7=9C=8Bpcap=E5=86=85=E5=AE=B9=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/trace/task.ts | 15 ++ src/i18n/locales/en-US.ts | 5 +- src/i18n/locales/zh-CN.ts | 5 +- src/views/traceManage/task/analyze.vue | 287 +++++++++++++++++++++++++ src/views/traceManage/task/index.vue | 60 ++++-- 5 files changed, 346 insertions(+), 26 deletions(-) create mode 100644 src/views/traceManage/task/analyze.vue diff --git a/src/api/trace/task.ts b/src/api/trace/task.ts index f48ac1db..e5620942 100644 --- a/src/api/trace/task.ts +++ b/src/api/trace/task.ts @@ -65,6 +65,21 @@ export async function delTraceTask(ids: string) { }); } +/** + * 跟踪任务文件 + * @param query 对象 + * @returns object + */ +export function filePullTask(traceId: string) { + return request({ + url: '/trace/task/filePull', + method: 'get', + params: { traceId }, + responseType: 'blob', + timeout: 60_000, + }); +} + /** * 获取网元跟踪接口列表 * @returns object diff --git a/src/i18n/locales/en-US.ts b/src/i18n/locales/en-US.ts index 890401d9..3a4d3601 100644 --- a/src/i18n/locales/en-US.ts +++ b/src/i18n/locales/en-US.ts @@ -1126,9 +1126,7 @@ export default { stopNotRun: "{title} not running", }, task: { - neTypePlease: 'Query network element type', - neType: 'NE Type', - neID: 'NE ID', + traceId: 'Tracing No', trackType: 'Tracing Type', trackTypePlease: 'Please select a tracing type', creater: 'Created by', @@ -1165,6 +1163,7 @@ export default { delTaskTip: 'Are you sure to delete the data item with record ID {id} ?', stopTask: 'Successful cessation of tasks {id}', stopTaskTip: 'Confirm stopping the task with record ID {id} ?', + pcapView: "Tracking Data Analysis", traceFile: "Tracking File", errMsg: "Error Message", imsiORmsisdn: "imsi or msisdn is null, cannot start task", diff --git a/src/i18n/locales/zh-CN.ts b/src/i18n/locales/zh-CN.ts index c5c07ff9..ac006a9e 100644 --- a/src/i18n/locales/zh-CN.ts +++ b/src/i18n/locales/zh-CN.ts @@ -1126,9 +1126,7 @@ export default { stopNotRun: "{title} 任务未运行", }, task: { - neTypePlease: '请选择网元类型', - neType: '网元类型', - neID: '网元内部标识', + traceId: '跟踪编号', trackType: '跟踪类型', trackTypePlease: '请选择跟踪类型', creater: '创建人', @@ -1165,6 +1163,7 @@ export default { delTaskTip: '确认删除记录编号为 {id} 的数据项?', stopTask: '成功停止任务 {id}', stopTaskTip: '确认停止记录编号为 {id} 的任务?', + pcapView: "跟踪数据分析", traceFile: "跟踪文件", errMsg: "错误信息", imsiORmsisdn: "imsi 或 msisdn 是空值,不能开始任务", diff --git a/src/views/traceManage/task/analyze.vue b/src/views/traceManage/task/analyze.vue new file mode 100644 index 00000000..ad90b71b --- /dev/null +++ b/src/views/traceManage/task/analyze.vue @@ -0,0 +1,287 @@ + + + + + + + + + + {{ t('common.close') }} + + + 跟踪编号: + {{ traceId }} + + + + + + {{ state.currentFilter }} + + Matched Frame: {{ state.totalFrames }} + + + + + + + + Type: + {{ state.summary.file_type }} + + + Encapsulation: + {{ state.summary.file_encap_type }} + + + Packets: + {{ state.summary.packet_count }} + + + Duration: + {{ Math.round(state.summary.elapsed_time) }}s + + + + + + + + + + + + + + + + Filter + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/traceManage/task/index.vue b/src/views/traceManage/task/index.vue index 4c7cdab2..4cb13711 100644 --- a/src/views/traceManage/task/index.vue +++ b/src/views/traceManage/task/index.vue @@ -1,11 +1,13 @@ @@ -345,7 +62,7 @@ onMounted(() => { > Upload - Example + Example @@ -396,7 +113,7 @@ onMounted(() => { placeholder="display filter, example: tcp" :allow-clear="true" style="width: calc(100% - 100px)" - @pressEnter="fnFilterFrames" + @pressEnter="handleFilterFrames" > @@ -406,7 +123,7 @@ onMounted(() => { type="primary" html-type="submit" style="width: 100px" - @click="fnFilterFrames" + @click="handleFilterFrames" > Filter @@ -422,8 +139,8 @@ onMounted(() => { :columns="state.columns" :data="state.packetFrames" :selectedFrame="state.selectedFrame" - :onSelectedFrame="fnSelectedFrame" - :onScrollBottom="fnScrollBottom" + :onSelectedFrame="handleSelectedFrame" + :onScrollBottom="handleScrollBottom" > @@ -431,7 +148,7 @@ onMounted(() => { @@ -451,7 +168,7 @@ onMounted(() => { > {{ v.asciiText }} - + + From 45f66afe520a8ee312d962458bb160dfa1e00ad9 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 23 Sep 2024 17:44:16 +0800 Subject: [PATCH 04/15] =?UTF-8?q?fix:=20=E7=BD=91=E5=85=83=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=9B=B4=E6=96=B0=E4=B8=8B=E5=8F=91=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E6=97=B6=E4=B8=8D=E6=9B=B4=E6=96=B0=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ne/neInfo/index.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/views/ne/neInfo/index.vue b/src/views/ne/neInfo/index.vue index 198ab8fb..57d2e0b0 100644 --- a/src/views/ne/neInfo/index.vue +++ b/src/views/ne/neInfo/index.vue @@ -237,7 +237,9 @@ function fnModalEditOk(from: Record) { item.neName = from.neName; item.ip = from.ip; item.port = from.port; - item.status = res.data.online ? '1' : '0'; + if (item.status !== '2') { + item.status = res.data.online ? '1' : '0'; + } Object.assign(item.serverState, res.data); const resouresUsage = parseResouresUsage(item.serverState); Reflect.set(item, 'resoures', resouresUsage); From 94886e255e007dddc741e8d31f560805660139f4 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Tue, 24 Sep 2024 10:52:28 +0800 Subject: [PATCH 05/15] =?UTF-8?q?feat:=20=E7=BD=91=E5=85=83=E8=B7=9F?= =?UTF-8?q?=E8=B8=AA=E6=95=B0=E6=8D=AE=E6=94=AF=E6=8C=81=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?pcap=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/traceManage/task/analyze.vue | 50 +++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/src/views/traceManage/task/analyze.vue b/src/views/traceManage/task/analyze.vue index ad90b71b..9e055a31 100644 --- a/src/views/traceManage/task/analyze.vue +++ b/src/views/traceManage/task/analyze.vue @@ -2,6 +2,7 @@ import { onBeforeUnmount, ref, watch } from 'vue'; import { useRoute, useRouter } from 'vue-router'; import { PageContainer } from 'antdv-pro-layout'; +import { message, Modal } from 'ant-design-vue/lib'; import DissectionTree from '../tshark/components/DissectionTree.vue'; import DissectionDump from '../tshark/components/DissectionDump.vue'; import PacketTable from '../tshark/components/PacketTable.vue'; @@ -14,6 +15,7 @@ import { filePullTask } from '@/api/trace/task'; import { OptionsType, WS } from '@/plugins/ws-websocket'; import useI18n from '@/hooks/useI18n'; import useTabsStore from '@/store/modules/tabs'; +import saveAs from 'file-saver'; const route = useRoute(); const router = useRouter(); const tabsStore = useTabsStore(); @@ -42,6 +44,44 @@ function fnClose() { } } +/**下载触发等待 */ +let downLoading = ref(false); + +/**信息文件下载 */ +function fnDownloadFile() { + if (downLoading.value) return; + const fileName = `trace_${traceId.value}.pcap` + Modal.confirm({ + title: t('common.tipTitle'), + content: t('views.logManage.neFile.downTip', { fileName }), + onOk() { + downLoading.value = true; + const hide = message.loading(t('common.loading'), 0); + filePullTask(traceId.value) + .then(res => { + if (res.code === RESULT_CODE_SUCCESS) { + message.success({ + content: t('common.msgSuccess', { + msg: t('common.downloadText'), + }), + duration: 2, + }); + saveAs(res.data, `${fileName}`); + } else { + message.error({ + content: t('views.logManage.neFile.downTipErr'), + duration: 2, + }); + } + }) + .finally(() => { + hide(); + downLoading.value = false; + }); + }, + }); +} + /**获取PCAP文件 */ function fnFilePCAP() { filePullTask(traceId.value).then(res => { @@ -120,8 +160,16 @@ onBeforeUnmount(() => { {{ t('common.close') }} + + + {{ t('common.downloadText') }} + - 跟踪编号: + {{ t('views.traceManage.task.traceId') }}: {{ traceId }} From 6bea64f3456d8032f7dc6b1586d6804d4093eddf Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Tue, 24 Sep 2024 10:53:33 +0800 Subject: [PATCH 06/15] =?UTF-8?q?style:=20=E5=A4=9A=E8=AF=AD=E8=A8=80views?= =?UTF-8?q?.traceManage.task=E5=8F=96=E5=80=BC=E5=8F=98=E6=9B=B4views.ne.c?= =?UTF-8?q?ommon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/perfManage/customTarget/index.vue | 10 +++++----- src/views/perfManage/goldTarget/index.vue | 2 +- src/views/perfManage/kpiCReport/index.vue | 2 +- src/views/perfManage/perfThreshold/index.vue | 10 +++++----- src/views/perfManage/taskManage/index.vue | 12 ++++++------ src/views/traceManage/task/index.vue | 6 +++--- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/views/perfManage/customTarget/index.vue b/src/views/perfManage/customTarget/index.vue index 00cf5631..3da08739 100644 --- a/src/views/perfManage/customTarget/index.vue +++ b/src/views/perfManage/customTarget/index.vue @@ -265,7 +265,7 @@ const modalStateFrom = Form.useForm( neType: [ { required: true, - message: t('views.traceManage.task.neTypePlease'), + message: t('views.ne.common.neTypePlease'), }, ], expression: [ @@ -466,14 +466,14 @@ onMounted(() => { @@ -624,7 +624,7 @@ onMounted(() => { @@ -633,7 +633,7 @@ onMounted(() => { :options="neCascaderOptions" @change="fnSelectPerformanceInit" :allow-clear="false" - :placeholder="t('views.traceManage.task.neTypePlease')" + :placeholder="t('views.ne.common.neTypePlease')" > diff --git a/src/views/perfManage/goldTarget/index.vue b/src/views/perfManage/goldTarget/index.vue index 0dfbc726..5aaf1bd9 100644 --- a/src/views/perfManage/goldTarget/index.vue +++ b/src/views/perfManage/goldTarget/index.vue @@ -649,7 +649,7 @@ onBeforeUnmount(() => { { { @@ -686,7 +686,7 @@ onMounted(() => { @@ -695,7 +695,7 @@ onMounted(() => { :options="useNeInfoStore().getNeSelectOtions" @change="fnSelectPerformanceInit" :allow-clear="false" - :placeholder="t('views.traceManage.task.neTypePlease')" + :placeholder="t('views.ne.common.neTypePlease')" > diff --git a/src/views/perfManage/taskManage/index.vue b/src/views/perfManage/taskManage/index.vue index a2be812b..81b134de 100644 --- a/src/views/perfManage/taskManage/index.vue +++ b/src/views/perfManage/taskManage/index.vue @@ -308,7 +308,7 @@ const modalStateFrom = Form.useForm( neId: [ { required: true, - message: t('views.traceManage.task.neTypePlease'), + message: t('views.ne.common.neTypePlease'), }, ], granulOption: [ @@ -725,14 +725,14 @@ onMounted(() => { @@ -891,7 +891,7 @@ onMounted(() => { { @@ -1016,7 +1016,7 @@ onMounted(() => { :options="neInfoStore.getNeCascaderOptions" @change="fnNeChange" :allow-clear="false" - :placeholder="t('views.traceManage.task.neTypePlease')" + :placeholder="t('views.ne.common.neTypePlease')" /> diff --git a/src/views/traceManage/task/index.vue b/src/views/traceManage/task/index.vue index 4cb13711..9e254eb8 100644 --- a/src/views/traceManage/task/index.vue +++ b/src/views/traceManage/task/index.vue @@ -347,7 +347,7 @@ const modalStateFrom = Form.useForm( neId: [ { required: true, - message: t('views.traceManage.task.neTypePlease'), + message: t('views.ne.common.neTypePlease'), }, ], endTime: [ @@ -818,7 +818,7 @@ onMounted(() => { { :options="neCascaderOptions" @change="fnNeChange" :allow-clear="false" - :placeholder="t('views.traceManage.task.neTypePlease')" + :placeholder="t('views.ne.common.neTypePlease')" /> From b995ac378a58827f12fbccc8cbfcf3efd88cb8b0 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 26 Sep 2024 17:20:01 +0800 Subject: [PATCH 07/15] =?UTF-8?q?fix:=20=E7=BD=91=E5=85=83=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=90=8C=E7=89=88=E6=9C=AC=E5=8F=B7=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E7=BB=A7=E7=BB=AD=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/i18n/locales/en-US.ts | 4 ++-- src/i18n/locales/zh-CN.ts | 4 ++-- src/views/ne/neVersion/index.vue | 6 ++---- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/i18n/locales/en-US.ts b/src/i18n/locales/en-US.ts index 3a4d3601..85f56c4d 100644 --- a/src/i18n/locales/en-US.ts +++ b/src/i18n/locales/en-US.ts @@ -739,11 +739,11 @@ export default { upgrade: "Upgrade To New Version", upgradeTip: "Confirmed to upgrade to the new version?", upgradeTipEmpty: "There are currently no new versions available", - upgradeTipEqual: "Current version is the same as the new version", + upgradeTipEqual: "The current version is the same as the new version, confirmed to update?", rollback: 'Switch to previous version', rollbackTip: "Confirm switching to the previous version?", rollbackTipEmpty: "There is currently no previous version available", - rollbackTipEqual: 'The current version is the same as the previous version', + rollbackTipEqual: 'The current version is the same as the previous version, are you sure you want to make the switch?', version: "Current Version", preVersion: "Previous Version", newVersion: "New Version", diff --git a/src/i18n/locales/zh-CN.ts b/src/i18n/locales/zh-CN.ts index ac006a9e..9280e038 100644 --- a/src/i18n/locales/zh-CN.ts +++ b/src/i18n/locales/zh-CN.ts @@ -739,11 +739,11 @@ export default { upgrade: "升级到新版本", upgradeTip: "确认要升级到新版本吗?", upgradeTipEmpty: "当前没有可用的新版本", - upgradeTipEqual: "当前版本与新版本相同", + upgradeTipEqual: "当前版本与新版本相同,确认要进行更新吗?", rollback: '切换到上一个版本', rollbackTip: "确认切换到上一个版本吗?", rollbackTipEmpty: "目前没有可用的上一个版本", - rollbackTipEqual: '当前版本与之前版本相同', + rollbackTipEqual: '当前版本与之前版本相同,确认要进行切换吗?', version: "当前版本", preVersion: "上一个版本", newVersion: "新版本", diff --git a/src/views/ne/neVersion/index.vue b/src/views/ne/neVersion/index.vue index 50add735..4bebcd6c 100644 --- a/src/views/ne/neVersion/index.vue +++ b/src/views/ne/neVersion/index.vue @@ -294,8 +294,7 @@ function fnRecordVersion( return; } if (row.newVersion === row.version) { - message.warning(t('views.ne.neVersion.upgradeTipEqual'), 3); - return; + contentTip = t('views.ne.neVersion.upgradeTipEqual'); } } if (action === 'rollback') { @@ -305,8 +304,7 @@ function fnRecordVersion( return; } if (row.preVersion === row.version) { - message.warning(t('views.ne.neVersion.rollbackTipEqual'), 3); - return; + contentTip = t('views.ne.neVersion.rollbackTipEqual'); } } From c33000045a1e08e299a905abe7eda938bcba3fe8 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 26 Sep 2024 17:23:24 +0800 Subject: [PATCH 08/15] =?UTF-8?q?fix:=20=E6=B6=88=E6=81=AF=E8=BF=9B?= =?UTF-8?q?=E8=A1=8Cwg=E5=85=B3=E9=97=AD=E9=94=80=E6=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/wiregasm/worker.js | 3 +++ src/views/traceManage/tshark/hooks/usePCAP.ts | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/public/wiregasm/worker.js b/public/wiregasm/worker.js index 1d650b5a..7b5872af 100644 --- a/public/wiregasm/worker.js +++ b/public/wiregasm/worker.js @@ -63,6 +63,9 @@ function replacer(key, value) { this.onmessage = ev => { const data = ev.data; switch (data.type) { + case 'close': + wg.destroy(); + break; case 'columns': const columns = wg.columns(); if (Array.isArray(columns)) { diff --git a/src/views/traceManage/tshark/hooks/usePCAP.ts b/src/views/traceManage/tshark/hooks/usePCAP.ts index 0d40a51f..83e9b490 100644 --- a/src/views/traceManage/tshark/hooks/usePCAP.ts +++ b/src/views/traceManage/tshark/hooks/usePCAP.ts @@ -193,8 +193,8 @@ export function usePCAP() { stop_time: 0, elapsed_time: 0, }; - state.finishedProcessing = false; - + state.finishedProcessing = false; + wk.send({ type: 'process', file: file }); } @@ -300,7 +300,7 @@ export function usePCAP() { }); onBeforeUnmount(() => { - wk.close(); + wk.send({ type: 'close' }) && wk.close(); }); return { From 977286d6b3906ec29a4f822332df9dc9a7f42a28 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 26 Sep 2024 17:31:57 +0800 Subject: [PATCH 09/15] =?UTF-8?q?fix:=20=E9=A9=BC=E5=B3=B0=E5=92=8C?= =?UTF-8?q?=E5=88=92=E7=BA=BF=E4=BA=92=E8=BD=AC=E5=87=BD=E6=95=B0=E5=8E=BB?= =?UTF-8?q?=E9=99=A4=E9=9D=9E=E5=AF=B9=E8=B1=A1=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/parse-utils.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/utils/parse-utils.ts b/src/utils/parse-utils.ts index bfaed055..508f6a6d 100644 --- a/src/utils/parse-utils.ts +++ b/src/utils/parse-utils.ts @@ -37,7 +37,10 @@ export function parseStrLineToHump(str: string): string { */ export function parseStrHumpToLine(str: string): string { if (!str) return str; - return str.replace(/([A-Z])/g, '_$1').toLowerCase().replace(/^_/, ''); + return str + .replace(/([A-Z])/g, '_$1') + .toLowerCase() + .replace(/^_/, ''); } /** @@ -63,9 +66,6 @@ export function parseObjHumpToLine(obj: any): any { }); return obj; } - if (typeof obj === 'string') { - return parseStrHumpToLine(obj); - } return obj; } @@ -92,9 +92,6 @@ export function parseObjLineToHump(obj: any): any { }); return obj; } - if (typeof obj === 'string') { - return parseStrLineToHump(obj); - } return obj; } From adfce5d2f7195d9c046799a984af55599909e9f0 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 27 Sep 2024 10:05:45 +0800 Subject: [PATCH 10/15] =?UTF-8?q?style:=20SMSC-CDR=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E5=B8=A6result,cause?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dashboard/smscCDR/index.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/views/dashboard/smscCDR/index.vue b/src/views/dashboard/smscCDR/index.vue index 736269d3..30fc6a5b 100644 --- a/src/views/dashboard/smscCDR/index.vue +++ b/src/views/dashboard/smscCDR/index.vue @@ -167,12 +167,12 @@ let tableColumns: ColumnsType = [ dataIndex: 'cdrJSON', key: 'cause', align: 'left', - width: 120, + width: 200, }, { title: t('views.dashboard.cdr.time'), dataIndex: 'cdrJSON', - align: 'center', + align: 'left', width: 150, customRender(opt) { const cdrJSON = opt.value; @@ -673,6 +673,7 @@ onBeforeUnmount(() => { + {{ t('views.dashboard.cdr.resultFail') }}, { {{ t('views.dashboard.cdr.result') }}: + {{ t('views.dashboard.cdr.resultFail') }}, Date: Fri, 27 Sep 2024 11:11:54 +0800 Subject: [PATCH 11/15] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E8=AF=B4?= =?UTF-8?q?=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/README.md b/README.md index 7c385343..0e0f4c60 100644 --- a/README.md +++ b/README.md @@ -8,14 +8,8 @@ ## 测试环境 ```text -Jenkins: http://192.168.2.166:3185/ Nginx: http://192.168.2.166:3188/#/index 后端暴露端口: http://192.168.2.166:33030 - - -新网管:192.168.5.13 -旧网管:192.168.5.14 -登录账户:manager/manager ``` ## 程序命令 @@ -59,16 +53,5 @@ export NODE_OPTIONS=--max-old-space-size=50000 ```text https://192.168.5.23/ -admin -admin -``` - -## k8s - -master 192.168.5.27 agtuser/admin123 - -https://192.168.5.27:31325/#/workloads?namespace=default - -```text -eyJhbGciOiJSUzI1NiIsImtpZCI6ImZFVUhIb1puLW04M1dfSUYyRU8zWlZueXBpNUh4T0hTRVlzU19jNlVGQ0kifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLW44ZzRtIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI2M2NmYjAyNS01ZmQ0LTQ0ZTgtOTdiNC0yYWRiYWIxNzc5M2MiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.R3GRygFOjngTj-mEMBAHDeBxm3lpsXZYvC6cdTxByONtLrcMXDebwNVeKtAZ1V9qh2OrjD8n9CIygjULGPdfV6S520vjMh7Oa2q68nOyW49DNWQyYD8xLo-dQ6sX07fI7X_I3H35YUWW80jJAXjJawqIGXBSMG5intlo4tLTUSXmjCfhoQvFsgeRWu0j76pDvhMAvLPcgEXfTCi9tyL3yqJBIKONcKwmMlJeaKSR3pQk3KiibqrBO0MZclRozpke6J0ulfzTemwDDyCqBZmLsRPZ2yDd5hVBIJ9bHEcK0a25NmSFFzmd8XWQPZwg3Y4IbbY-8UhByGq0p9xS-7pGCQ +admin / admin ``` From d81b8cdf389074442198adb24b7fcec1ca371eda Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 27 Sep 2024 11:13:25 +0800 Subject: [PATCH 12/15] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=20240927?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 2 +- .env.production | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.env.development b/.env.development index 521e2116..422867bd 100644 --- a/.env.development +++ b/.env.development @@ -11,7 +11,7 @@ VITE_APP_NAME = "Core Network OMC" VITE_APP_CODE = "OMC" # 应用版本 -VITE_APP_VERSION = "2.240920" +VITE_APP_VERSION = "2.240927" # 接口基础URL地址-不带/后缀 VITE_API_BASE_URL = "/omc-api" diff --git a/.env.production b/.env.production index 0859613f..5c1fdad0 100644 --- a/.env.production +++ b/.env.production @@ -11,7 +11,7 @@ VITE_APP_NAME = "Core Network OMC" VITE_APP_CODE = "OMC" # 应用版本 -VITE_APP_VERSION = "2.240920" +VITE_APP_VERSION = "2.240927" # 接口基础URL地址-不带/后缀 VITE_API_BASE_URL = "/omc-api" From 2f04562a34828a2281d324f9119ad007901d2636 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 30 Sep 2024 21:02:01 +0800 Subject: [PATCH 13/15] =?UTF-8?q?feat:=20=E4=BF=A1=E4=BB=A4=E8=B7=9F?= =?UTF-8?q?=E8=B8=AA=E5=8A=9F=E8=83=BD=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/trace/packet.ts | 64 +++ .../tshark/components/PacketTable.vue | 14 +- src/views/traceManage/wireshark/index.vue | 507 +++++++++++++++++- 3 files changed, 570 insertions(+), 15 deletions(-) create mode 100644 src/api/trace/packet.ts diff --git a/src/api/trace/packet.ts b/src/api/trace/packet.ts new file mode 100644 index 00000000..dd6c2535 --- /dev/null +++ b/src/api/trace/packet.ts @@ -0,0 +1,64 @@ +import { request } from '@/plugins/http-fetch'; + +/** + * 信令跟踪网卡设备列表 + * @returns + */ +export function packetDevices() { + return request({ + url: '/trace/packet/devices', + method: 'get', + }); +} + +/** + * 信令跟踪开始 + * @param data 对象 + * @returns + */ +export function packetStart(data: Record) { + return request({ + url: '/trace/packet/start', + method: 'post', + data: data, + }); +} + +/** + * 信令跟踪结束 + * @param data 对象 + * @returns + */ +export function packetStop(taskNo: string) { + return request({ + url: '/trace/packet/stop', + method: 'post', + data: { taskNo }, + }); +} + +/** + * 信令跟踪过滤 + * @param data 对象 + * @returns + */ +export function packetFilter(taskNo: string, expr: string) { + return request({ + url: '/trace/packet/filter', + method: 'put', + data: { taskNo, expr }, + }); +} + +/** + * 信令跟踪续期保活 + * @param data 对象 + * @returns + */ +export function packetKeep(taskNo: string, duration: number = 120) { + return request({ + url: '/trace/packet/keep-alive', + method: 'put', + data: { taskNo, duration }, + }); +} diff --git a/src/views/traceManage/tshark/components/PacketTable.vue b/src/views/traceManage/tshark/components/PacketTable.vue index 770a38f4..f31e66c4 100644 --- a/src/views/traceManage/tshark/components/PacketTable.vue +++ b/src/views/traceManage/tshark/components/PacketTable.vue @@ -1,5 +1,5 @@ @@ -167,13 +161,13 @@ const tableState = reactive({ item.number === props.selectedFrame ? 'blue' : item.bg - ? `#${item.bg.toString(16).padStart(6, '0')}` + ? `#${Number(item.bg).toString(16).padStart(6, '0')}` : '', color: item.number === props.selectedFrame ? 'white' : item.fg - ? `#${item.fg.toString(16).padStart(6, '0')}` + ? `#${Number(item.fg).toString(16).padStart(6, '0')}` : '', }" @click="onSelectedFrame(item.number)" @@ -219,7 +213,7 @@ const tableState = reactive({ display: flex; flex-direction: row; align-items: center; - border-top: 1px #f0f0f0 solid; + border-top: 1px #f0f0f0 solid; cursor: pointer; } .tbody-item { diff --git a/src/views/traceManage/wireshark/index.vue b/src/views/traceManage/wireshark/index.vue index e38520f1..a36427c8 100644 --- a/src/views/traceManage/wireshark/index.vue +++ b/src/views/traceManage/wireshark/index.vue @@ -1,16 +1,513 @@ - - JS + + + + + + Start Trace + + fnDevice(key)" + :selectedKeys="[state.task.device]" + > + + + + {{ c.id }} + + + IP Address + + {{ v.label }} + + + + + + + + + + Stop Trace + + + + {{ t('common.downloadText') }} + + + {{ state.task.filter }} + + + + + + {{ t('views.traceManage.task.traceId') }}: + {{ state.task.taskNo }} + + Packets: {{ state.totalPackets }} + + + + + + + + + + + + Filter + + + + + + + + + + + + + + + + + + + + + - + From b992225e288e6090f545ff3d3ada93f84683e2f5 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Tue, 1 Oct 2024 13:02:06 +0800 Subject: [PATCH 14/15] =?UTF-8?q?fix:=20=E7=BD=91=E5=85=83=E5=BF=AB?= =?UTF-8?q?=E9=80=9F=E5=AE=89=E8=A3=85=E5=A4=9A=E8=AF=AD=E8=A8=80=E8=AF=86?= =?UTF-8?q?=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ne/neQuickSetup/components/NeInfoConfig.vue | 2 +- .../components/NeInfoSoftwareInstall.vue | 12 ++++-------- .../components/NeInfoSoftwareLicense.vue | 2 +- src/views/ne/neQuickSetup/hooks/useStep.ts | 4 +--- src/views/ne/neQuickSetup/index.vue | 1 + 5 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/views/ne/neQuickSetup/components/NeInfoConfig.vue b/src/views/ne/neQuickSetup/components/NeInfoConfig.vue index 4e37c975..756ed0f5 100644 --- a/src/views/ne/neQuickSetup/components/NeInfoConfig.vue +++ b/src/views/ne/neQuickSetup/components/NeInfoConfig.vue @@ -268,7 +268,7 @@ function fnStepPrev() { title: t('common.tipTitle'), content: t('views.ne.neQuickSetup.stepPrevTip'), onOk() { - fnRestStepState(); + fnRestStepState(t); fnToStepName('Start'); }, }); diff --git a/src/views/ne/neQuickSetup/components/NeInfoSoftwareInstall.vue b/src/views/ne/neQuickSetup/components/NeInfoSoftwareInstall.vue index 7427a194..ec8da3a5 100644 --- a/src/views/ne/neQuickSetup/components/NeInfoSoftwareInstall.vue +++ b/src/views/ne/neQuickSetup/components/NeInfoSoftwareInstall.vue @@ -1,18 +1,14 @@