style: 跟踪管理多语言
This commit is contained in:
@@ -161,7 +161,7 @@ export default {
|
||||
neType: 'IMS Type',
|
||||
},
|
||||
},
|
||||
trace: {
|
||||
traceManage: {
|
||||
analysis: {
|
||||
imsi: 'IMSI',
|
||||
imsiPlease: 'Please enter IMSI',
|
||||
@@ -184,16 +184,29 @@ export default {
|
||||
pcap: {
|
||||
cardTitle: 'PCAP capture',
|
||||
neType: 'Type',
|
||||
neTypePlease: 'Please select the type of network element',
|
||||
neIp: 'IP address',
|
||||
capArg: 'Capture parameters',
|
||||
capArgPlease: 'Please enter tcpdump any support parameters!',
|
||||
capTime: 'Duration in seconds',
|
||||
capTimePlease: 'Please enter the duration, up to 120 seconds',
|
||||
capLog: 'Execution Log',
|
||||
capDownText: 'Download PCAP file',
|
||||
runText: 'Execute',
|
||||
runTimeText: 'Execute {s} seconds',
|
||||
stopText: 'Interrupt',
|
||||
capArgUPFPlease: 'Please enter the packet capture command supported by UPF',
|
||||
capStart: 'Start capturing packets',
|
||||
capStop: 'Stop capturing packets',
|
||||
execTimeout: 'Execution timeout',
|
||||
execSuccess: 'Execution completed',
|
||||
execFailed: 'Execution failed',
|
||||
execBreak: 'break execution',
|
||||
noFileName: 'Invalid file name',
|
||||
execUPFStartA: 'Executed, please stop capturing packets according to the situation',
|
||||
execUPFStart: 'Execution successful, please stop capturing packets according to the situation',
|
||||
execUPFStopA: 'Stopped, please start capturing packets according to the situation',
|
||||
execUPFStop: 'Execution successful, packet capture stopped',
|
||||
},
|
||||
task: {
|
||||
neTypePlease: 'Query network element type',
|
||||
|
||||
@@ -161,7 +161,7 @@ export default {
|
||||
neType: 'IMS网元类型',
|
||||
},
|
||||
},
|
||||
trace: {
|
||||
traceManage: {
|
||||
analysis: {
|
||||
imsi: 'IMSI',
|
||||
imsiPlease: '请输入IMSI',
|
||||
@@ -184,16 +184,29 @@ export default {
|
||||
pcap: {
|
||||
cardTitle: 'PCAP捕获',
|
||||
neType: '网元类型',
|
||||
neTypePlease: '请选择网元类型',
|
||||
neIp: '网元IP地址',
|
||||
capArg: '抓包参数',
|
||||
capArgPlease: '请输入tcpdump any支持参数!',
|
||||
capTime: "时长(秒's)",
|
||||
capTimePlease: '请输入持续时长,最长120秒',
|
||||
capLog: '执行日志',
|
||||
capDownText: '下载PCAP文件',
|
||||
runText: '执行',
|
||||
runTimeText: '执行 {s} 秒',
|
||||
stopText: '中断',
|
||||
capArgUPFPlease: '请输入UPF支持的抓包命令',
|
||||
capStart: '开始抓包',
|
||||
capStop: '停止抓包',
|
||||
execTimeout: '执行超时',
|
||||
execSuccess: '执行完成',
|
||||
execFailed: '执行失败',
|
||||
execBreak: '中断执行',
|
||||
noFileName: '无效文件名',
|
||||
execUPFStartA: '已经执行, 请根据情况停止抓包',
|
||||
execUPFStart: '执行成功, 请根据情况停止抓包',
|
||||
execUPFStopA: '已经停止, 请根据情况开始抓包',
|
||||
execUPFStop: '执行成功, 抓包已停止',
|
||||
},
|
||||
task: {
|
||||
neTypePlease: '请选择网元类型',
|
||||
|
||||
@@ -88,28 +88,28 @@ let tableColumns: ColumnsType = [
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.neType'),
|
||||
title: t('views.traceManage.task.neType'),
|
||||
dataIndex: 'neType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.neID'),
|
||||
title: t('views.traceManage.task.neID'),
|
||||
dataIndex: 'neId',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.trackType'),
|
||||
title: t('views.traceManage.task.trackType'),
|
||||
dataIndex: 'traceType',
|
||||
key: 'traceType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.trackType'),
|
||||
title: t('views.traceManage.task.trackType'),
|
||||
dataIndex: 'accountId',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.startTime'),
|
||||
title: t('views.traceManage.task.startTime'),
|
||||
dataIndex: 'startTime',
|
||||
align: 'center',
|
||||
customRender(opt) {
|
||||
@@ -118,7 +118,7 @@ let tableColumns: ColumnsType = [
|
||||
},
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.endTime'),
|
||||
title: t('views.traceManage.task.endTime'),
|
||||
dataIndex: 'endTime',
|
||||
align: 'center',
|
||||
customRender(opt) {
|
||||
@@ -172,15 +172,15 @@ function fnTableSize({ key }: MenuInfo) {
|
||||
*/
|
||||
function fnRecordDelete(id: string) {
|
||||
Modal.confirm({
|
||||
title: t('views.trace.task.tipTitle'),
|
||||
content: t('views.trace.task.delTaskTip', { num: id }),
|
||||
title: t('views.traceManage.task.tipTitle'),
|
||||
content: t('views.traceManage.task.delTaskTip', { num: id }),
|
||||
onOk() {
|
||||
const key = 'delTraceTask';
|
||||
message.loading({ content: t('common.loading'), key });
|
||||
delTraceTask(id).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: t('views.trace.task.delTask', { num: id }),
|
||||
content: t('views.traceManage.task.delTask', { num: id }),
|
||||
key,
|
||||
duration: 2,
|
||||
});
|
||||
@@ -272,32 +272,32 @@ const modalStateFrom = Form.useForm(
|
||||
traceType: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.trackTypePlease'),
|
||||
message: t('views.traceManage.task.trackTypePlease'),
|
||||
},
|
||||
],
|
||||
neId: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.neTypePlease'),
|
||||
message: t('views.traceManage.task.neTypePlease'),
|
||||
},
|
||||
],
|
||||
endTime: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.rangePickerPlease'),
|
||||
message: t('views.traceManage.task.rangePickerPlease'),
|
||||
},
|
||||
],
|
||||
// 跟踪用户
|
||||
imsi: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.imsiPlease'),
|
||||
message: t('views.traceManage.task.imsiPlease'),
|
||||
},
|
||||
],
|
||||
msisdn: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.msisdnPlease'),
|
||||
message: t('views.traceManage.task.msisdnPlease'),
|
||||
},
|
||||
],
|
||||
// 跟踪接口
|
||||
@@ -305,27 +305,27 @@ const modalStateFrom = Form.useForm(
|
||||
{
|
||||
required: true,
|
||||
pattern: regExpIPv4,
|
||||
message: t('views.trace.task.srcIpPlease'),
|
||||
message: t('views.traceManage.task.srcIpPlease'),
|
||||
},
|
||||
],
|
||||
dstIp: [
|
||||
{
|
||||
required: true,
|
||||
pattern: regExpIPv4,
|
||||
message: t('views.trace.task.dstIpPlease'),
|
||||
message: t('views.traceManage.task.dstIpPlease'),
|
||||
},
|
||||
],
|
||||
interfaces: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.interfacesPlease'),
|
||||
message: t('views.traceManage.task.interfacesPlease'),
|
||||
},
|
||||
],
|
||||
signalPort: [
|
||||
{
|
||||
required: true,
|
||||
pattern: regExpPort,
|
||||
message: t('views.trace.task.signalPortPlease'),
|
||||
message: t('views.traceManage.task.signalPortPlease'),
|
||||
},
|
||||
],
|
||||
})
|
||||
@@ -392,10 +392,10 @@ function fnModalVisibleByVive(id: string) {
|
||||
}
|
||||
fnSelectInterfaceInit(res.data.neType);
|
||||
}
|
||||
modalState.title = t('views.trace.task.viewTask');
|
||||
modalState.title = t('views.traceManage.task.viewTask');
|
||||
modalState.visibleByView = true;
|
||||
} else {
|
||||
message.error(t('views.trace.task.errorTaskInfo'), 3);
|
||||
message.error(t('views.traceManage.task.errorTaskInfo'), 3);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -407,7 +407,7 @@ function fnModalVisibleByVive(id: string) {
|
||||
function fnModalVisibleByEdit(id?: string) {
|
||||
if (!id) {
|
||||
modalStateFrom.resetFields();
|
||||
modalState.title = t('views.trace.task.addTask');
|
||||
modalState.title = t('views.traceManage.task.addTask');
|
||||
modalState.visibleByEdit = true;
|
||||
} else {
|
||||
if (modalState.confirmLoading) return;
|
||||
@@ -430,10 +430,10 @@ function fnModalVisibleByEdit(id?: string) {
|
||||
}
|
||||
fnSelectInterfaceInit(res.data.neType);
|
||||
}
|
||||
modalState.title = t('views.trace.task.editTask');
|
||||
modalState.title = t('views.traceManage.task.editTask');
|
||||
modalState.visibleByEdit = true;
|
||||
} else {
|
||||
message.error(t('views.trace.task.errorTaskInfo'), 3);
|
||||
message.error(t('views.traceManage.task.errorTaskInfo'), 3);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -532,12 +532,12 @@ onMounted(() => {
|
||||
<a-form :model="queryParams" name="queryParams" layout="horizontal">
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.neType')" name="neType ">
|
||||
<a-form-item :label="t('views.traceManage.task.neType')" name="neType ">
|
||||
<a-auto-complete
|
||||
v-model:value="queryParams.neType"
|
||||
:options="useNeInfoStore().getNeSelectOtions"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.neTypePlease')"
|
||||
:placeholder="t('views.traceManage.task.neTypePlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -674,7 +674,7 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.trackType')"
|
||||
:label="t('views.traceManage.task.trackType')"
|
||||
name="traceType"
|
||||
>
|
||||
<DictTag
|
||||
@@ -684,7 +684,7 @@ onMounted(() => {
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.neType')" name="neType">
|
||||
<a-form-item :label="t('views.traceManage.task.neType')" name="neType">
|
||||
<a-cascader
|
||||
:value="modalState.neType"
|
||||
:options="useNeInfoStore().getNeCascaderOtions"
|
||||
@@ -696,10 +696,10 @@ onMounted(() => {
|
||||
|
||||
<!-- 用户跟踪 -->
|
||||
<template v-if="modalState.from.traceType === 'UE'">
|
||||
<a-form-item :label="t('views.trace.task.msisdn')" name="msisdn">
|
||||
<a-form-item :label="t('views.traceManage.task.msisdn')" name="msisdn">
|
||||
{{ modalState.from.msisdn }}
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.imsi')" name="imsi">
|
||||
<a-form-item :label="t('views.traceManage.task.imsi')" name="imsi">
|
||||
{{ modalState.from.imsi }}
|
||||
</a-form-item>
|
||||
</template>
|
||||
@@ -708,25 +708,25 @@ onMounted(() => {
|
||||
<template v-if="modalState.from.traceType === 'Interface'">
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.srcIp')" name="srcIp">
|
||||
<a-form-item :label="t('views.traceManage.task.srcIp')" name="srcIp">
|
||||
{{ modalState.from.srcIp }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.dstIp')" name="dstIp">
|
||||
<a-form-item :label="t('views.traceManage.task.dstIp')" name="dstIp">
|
||||
{{ modalState.from.dstIp }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item :label="t('views.trace.task.interfaces')" name="endTime">
|
||||
<a-form-item :label="t('views.traceManage.task.interfaces')" name="endTime">
|
||||
{{ modalState.neTypeInterfaceSelect }}
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.signalPort')" name="endTime">
|
||||
<a-form-item :label="t('views.traceManage.task.signalPort')" name="endTime">
|
||||
{{ modalState.from.signalPort }}
|
||||
</a-form-item>
|
||||
</template>
|
||||
|
||||
<a-form-item :label="t('views.trace.task.rangePicker')" name="endTime">
|
||||
<a-form-item :label="t('views.traceManage.task.rangePicker')" name="endTime">
|
||||
<a-range-picker
|
||||
disabled
|
||||
:value="modalState.timeRangePicker"
|
||||
@@ -738,7 +738,7 @@ onMounted(() => {
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.comment')" name="comment">
|
||||
<a-form-item :label="t('views.traceManage.task.comment')" name="comment">
|
||||
{{ modalState.from.comment }}
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
@@ -764,13 +764,13 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.trackType')"
|
||||
:label="t('views.traceManage.task.trackType')"
|
||||
name="traceType"
|
||||
v-bind="modalStateFrom.validateInfos.traceType"
|
||||
>
|
||||
<a-select
|
||||
v-model:value="modalState.from.traceType"
|
||||
:placeholder="t('views.trace.task.trackTypePlease')"
|
||||
:placeholder="t('views.traceManage.task.trackTypePlease')"
|
||||
:options="dict.traceType"
|
||||
>
|
||||
</a-select>
|
||||
@@ -778,7 +778,7 @@ onMounted(() => {
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.neType')"
|
||||
:label="t('views.traceManage.task.neType')"
|
||||
name="neType"
|
||||
v-bind="modalStateFrom.validateInfos.neId"
|
||||
>
|
||||
@@ -787,7 +787,7 @@ onMounted(() => {
|
||||
:options="useNeInfoStore().getNeCascaderOtions"
|
||||
@change="fnNeChange"
|
||||
:allow-clear="false"
|
||||
:placeholder="t('views.trace.task.neTypePlease')"
|
||||
:placeholder="t('views.traceManage.task.neTypePlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -796,19 +796,19 @@ onMounted(() => {
|
||||
<!-- 用户跟踪 -->
|
||||
<template v-if="modalState.from.traceType === 'UE'">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.msisdn')"
|
||||
:label="t('views.traceManage.task.msisdn')"
|
||||
name="msisdn"
|
||||
v-bind="modalStateFrom.validateInfos.msisdn"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.msisdn"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.msisdnPlease')"
|
||||
:placeholder="t('views.traceManage.task.msisdnPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.msisdnTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.msisdnTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -816,19 +816,19 @@ onMounted(() => {
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.imsi')"
|
||||
:label="t('views.traceManage.task.imsi')"
|
||||
name="imsi"
|
||||
v-bind="modalStateFrom.validateInfos.imsi"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.imsi"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.imsiPlease')"
|
||||
:placeholder="t('views.traceManage.task.imsiPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.imsiTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.imsiTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -842,19 +842,19 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.srcIp')"
|
||||
:label="t('views.traceManage.task.srcIp')"
|
||||
name="srcIp"
|
||||
v-bind="modalStateFrom.validateInfos.srcIp"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.srcIp"
|
||||
allow-clear
|
||||
placeholder="t('views.trace.task.srcIpPlease')"
|
||||
placeholder="t('views.traceManage.task.srcIpPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.srcIpTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.srcIpTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -864,19 +864,19 @@ onMounted(() => {
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.dstIp')"
|
||||
:label="t('views.traceManage.task.dstIp')"
|
||||
name="dstIp"
|
||||
v-bind="modalStateFrom.validateInfos.dstIp"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.dstIp"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.dstIpPlease')"
|
||||
:placeholder="t('views.traceManage.task.dstIpPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.dstIpTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.dstIpTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -886,7 +886,7 @@ onMounted(() => {
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.interfaces')"
|
||||
:label="t('views.traceManage.task.interfaces')"
|
||||
name="interfaces"
|
||||
v-bind="modalStateFrom.validateInfos.interfaces"
|
||||
>
|
||||
@@ -900,19 +900,19 @@ onMounted(() => {
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.signalPort')"
|
||||
:label="t('views.traceManage.task.signalPort')"
|
||||
name="signalPort"
|
||||
v-bind="modalStateFrom.validateInfos.signalPort"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.signalPort"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.signalPortPlease')"
|
||||
:placeholder="t('views.traceManage.task.signalPortPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>t('views.trace.task.signalPortTip')</div>
|
||||
<div>t('views.traceManage.task.signalPortTip')</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -922,7 +922,7 @@ onMounted(() => {
|
||||
</template>
|
||||
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.rangePicker')"
|
||||
:label="t('views.traceManage.task.rangePicker')"
|
||||
name="endTime"
|
||||
v-bind="modalStateFrom.validateInfos.endTime"
|
||||
>
|
||||
@@ -935,19 +935,19 @@ onMounted(() => {
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
:placeholder="[
|
||||
t('views.trace.task.startTime'),
|
||||
t('views.trace.task.endTime'),
|
||||
t('views.traceManage.task.startTime'),
|
||||
t('views.traceManage.task.endTime'),
|
||||
]"
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.comment')" name="comment">
|
||||
<a-form-item :label="t('views.traceManage.task.comment')" name="comment">
|
||||
<a-textarea
|
||||
v-model:value="modalState.from.comment"
|
||||
:auto-size="{ minRows: 2, maxRows: 6 }"
|
||||
:maxlength="250"
|
||||
:show-count="true"
|
||||
:placeholder="t('views.trace.task.commentPlease')"
|
||||
:placeholder="t('views.traceManage.task.commentPlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
|
||||
@@ -88,28 +88,28 @@ let tableColumns: ColumnsType = [
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.neType'),
|
||||
title: t('views.traceManage.task.neType'),
|
||||
dataIndex: 'neType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.neID'),
|
||||
title: t('views.traceManage.task.neID'),
|
||||
dataIndex: 'neId',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.trackType'),
|
||||
title: t('views.traceManage.task.trackType'),
|
||||
dataIndex: 'traceType',
|
||||
key: 'traceType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.trackType'),
|
||||
title: t('views.traceManage.task.trackType'),
|
||||
dataIndex: 'accountId',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.startTime'),
|
||||
title: t('views.traceManage.task.startTime'),
|
||||
dataIndex: 'startTime',
|
||||
align: 'center',
|
||||
customRender(opt) {
|
||||
@@ -118,7 +118,7 @@ let tableColumns: ColumnsType = [
|
||||
},
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.endTime'),
|
||||
title: t('views.traceManage.task.endTime'),
|
||||
dataIndex: 'endTime',
|
||||
align: 'center',
|
||||
customRender(opt) {
|
||||
@@ -172,15 +172,15 @@ function fnTableSize({ key }: MenuInfo) {
|
||||
*/
|
||||
function fnRecordDelete(id: string) {
|
||||
Modal.confirm({
|
||||
title: t('views.trace.task.tipTitle'),
|
||||
content: t('views.trace.task.delTaskTip', { num: id }),
|
||||
title: t('views.traceManage.task.tipTitle'),
|
||||
content: t('views.traceManage.task.delTaskTip', { num: id }),
|
||||
onOk() {
|
||||
const key = 'delTraceTask';
|
||||
message.loading({ content: t('common.loading'), key });
|
||||
delTraceTask(id).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: t('views.trace.task.delTask', { num: id }),
|
||||
content: t('views.traceManage.task.delTask', { num: id }),
|
||||
key,
|
||||
duration: 2,
|
||||
});
|
||||
@@ -272,32 +272,32 @@ const modalStateFrom = Form.useForm(
|
||||
traceType: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.trackTypePlease'),
|
||||
message: t('views.traceManage.task.trackTypePlease'),
|
||||
},
|
||||
],
|
||||
neId: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.neTypePlease'),
|
||||
message: t('views.traceManage.task.neTypePlease'),
|
||||
},
|
||||
],
|
||||
endTime: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.rangePickerPlease'),
|
||||
message: t('views.traceManage.task.rangePickerPlease'),
|
||||
},
|
||||
],
|
||||
// 跟踪用户
|
||||
imsi: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.imsiPlease'),
|
||||
message: t('views.traceManage.task.imsiPlease'),
|
||||
},
|
||||
],
|
||||
msisdn: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.msisdnPlease'),
|
||||
message: t('views.traceManage.task.msisdnPlease'),
|
||||
},
|
||||
],
|
||||
// 跟踪接口
|
||||
@@ -305,27 +305,27 @@ const modalStateFrom = Form.useForm(
|
||||
{
|
||||
required: true,
|
||||
pattern: regExpIPv4,
|
||||
message: t('views.trace.task.srcIpPlease'),
|
||||
message: t('views.traceManage.task.srcIpPlease'),
|
||||
},
|
||||
],
|
||||
dstIp: [
|
||||
{
|
||||
required: true,
|
||||
pattern: regExpIPv4,
|
||||
message: t('views.trace.task.dstIpPlease'),
|
||||
message: t('views.traceManage.task.dstIpPlease'),
|
||||
},
|
||||
],
|
||||
interfaces: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.interfacesPlease'),
|
||||
message: t('views.traceManage.task.interfacesPlease'),
|
||||
},
|
||||
],
|
||||
signalPort: [
|
||||
{
|
||||
required: true,
|
||||
pattern: regExpPort,
|
||||
message: t('views.trace.task.signalPortPlease'),
|
||||
message: t('views.traceManage.task.signalPortPlease'),
|
||||
},
|
||||
],
|
||||
})
|
||||
@@ -392,10 +392,10 @@ function fnModalVisibleByVive(id: string) {
|
||||
}
|
||||
fnSelectInterfaceInit(res.data.neType);
|
||||
}
|
||||
modalState.title = t('views.trace.task.viewTask');
|
||||
modalState.title = t('views.traceManage.task.viewTask');
|
||||
modalState.visibleByView = true;
|
||||
} else {
|
||||
message.error(t('views.trace.task.errorTaskInfo'), 3);
|
||||
message.error(t('views.traceManage.task.errorTaskInfo'), 3);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -407,7 +407,7 @@ function fnModalVisibleByVive(id: string) {
|
||||
function fnModalVisibleByEdit(id?: string) {
|
||||
if (!id) {
|
||||
modalStateFrom.resetFields();
|
||||
modalState.title = t('views.trace.task.addTask');
|
||||
modalState.title = t('views.traceManage.task.addTask');
|
||||
modalState.visibleByEdit = true;
|
||||
} else {
|
||||
if (modalState.confirmLoading) return;
|
||||
@@ -430,10 +430,10 @@ function fnModalVisibleByEdit(id?: string) {
|
||||
}
|
||||
fnSelectInterfaceInit(res.data.neType);
|
||||
}
|
||||
modalState.title = t('views.trace.task.editTask');
|
||||
modalState.title = t('views.traceManage.task.editTask');
|
||||
modalState.visibleByEdit = true;
|
||||
} else {
|
||||
message.error(t('views.trace.task.errorTaskInfo'), 3);
|
||||
message.error(t('views.traceManage.task.errorTaskInfo'), 3);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -532,12 +532,12 @@ onMounted(() => {
|
||||
<a-form :model="queryParams" name="queryParams" layout="horizontal">
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.neType')" name="neType ">
|
||||
<a-form-item :label="t('views.traceManage.task.neType')" name="neType ">
|
||||
<a-auto-complete
|
||||
v-model:value="queryParams.neType"
|
||||
:options="useNeInfoStore().getNeSelectOtions"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.neTypePlease')"
|
||||
:placeholder="t('views.traceManage.task.neTypePlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -674,7 +674,7 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.trackType')"
|
||||
:label="t('views.traceManage.task.trackType')"
|
||||
name="traceType"
|
||||
>
|
||||
<DictTag
|
||||
@@ -684,7 +684,7 @@ onMounted(() => {
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.neType')" name="neType">
|
||||
<a-form-item :label="t('views.traceManage.task.neType')" name="neType">
|
||||
<a-cascader
|
||||
:value="modalState.neType"
|
||||
:options="useNeInfoStore().getNeCascaderOtions"
|
||||
@@ -696,10 +696,10 @@ onMounted(() => {
|
||||
|
||||
<!-- 用户跟踪 -->
|
||||
<template v-if="modalState.from.traceType === 'UE'">
|
||||
<a-form-item :label="t('views.trace.task.msisdn')" name="msisdn">
|
||||
<a-form-item :label="t('views.traceManage.task.msisdn')" name="msisdn">
|
||||
{{ modalState.from.msisdn }}
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.imsi')" name="imsi">
|
||||
<a-form-item :label="t('views.traceManage.task.imsi')" name="imsi">
|
||||
{{ modalState.from.imsi }}
|
||||
</a-form-item>
|
||||
</template>
|
||||
@@ -708,25 +708,25 @@ onMounted(() => {
|
||||
<template v-if="modalState.from.traceType === 'Interface'">
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.srcIp')" name="srcIp">
|
||||
<a-form-item :label="t('views.traceManage.task.srcIp')" name="srcIp">
|
||||
{{ modalState.from.srcIp }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.dstIp')" name="dstIp">
|
||||
<a-form-item :label="t('views.traceManage.task.dstIp')" name="dstIp">
|
||||
{{ modalState.from.dstIp }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item :label="t('views.trace.task.interfaces')" name="endTime">
|
||||
<a-form-item :label="t('views.traceManage.task.interfaces')" name="endTime">
|
||||
{{ modalState.neTypeInterfaceSelect }}
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.signalPort')" name="endTime">
|
||||
<a-form-item :label="t('views.traceManage.task.signalPort')" name="endTime">
|
||||
{{ modalState.from.signalPort }}
|
||||
</a-form-item>
|
||||
</template>
|
||||
|
||||
<a-form-item :label="t('views.trace.task.rangePicker')" name="endTime">
|
||||
<a-form-item :label="t('views.traceManage.task.rangePicker')" name="endTime">
|
||||
<a-range-picker
|
||||
disabled
|
||||
:value="modalState.timeRangePicker"
|
||||
@@ -738,7 +738,7 @@ onMounted(() => {
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.comment')" name="comment">
|
||||
<a-form-item :label="t('views.traceManage.task.comment')" name="comment">
|
||||
{{ modalState.from.comment }}
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
@@ -764,13 +764,13 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.trackType')"
|
||||
:label="t('views.traceManage.task.trackType')"
|
||||
name="traceType"
|
||||
v-bind="modalStateFrom.validateInfos.traceType"
|
||||
>
|
||||
<a-select
|
||||
v-model:value="modalState.from.traceType"
|
||||
:placeholder="t('views.trace.task.trackTypePlease')"
|
||||
:placeholder="t('views.traceManage.task.trackTypePlease')"
|
||||
:options="dict.traceType"
|
||||
>
|
||||
</a-select>
|
||||
@@ -778,7 +778,7 @@ onMounted(() => {
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.neType')"
|
||||
:label="t('views.traceManage.task.neType')"
|
||||
name="neType"
|
||||
v-bind="modalStateFrom.validateInfos.neId"
|
||||
>
|
||||
@@ -787,7 +787,7 @@ onMounted(() => {
|
||||
:options="useNeInfoStore().getNeCascaderOtions"
|
||||
@change="fnNeChange"
|
||||
:allow-clear="false"
|
||||
:placeholder="t('views.trace.task.neTypePlease')"
|
||||
:placeholder="t('views.traceManage.task.neTypePlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -796,19 +796,19 @@ onMounted(() => {
|
||||
<!-- 用户跟踪 -->
|
||||
<template v-if="modalState.from.traceType === 'UE'">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.msisdn')"
|
||||
:label="t('views.traceManage.task.msisdn')"
|
||||
name="msisdn"
|
||||
v-bind="modalStateFrom.validateInfos.msisdn"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.msisdn"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.msisdnPlease')"
|
||||
:placeholder="t('views.traceManage.task.msisdnPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.msisdnTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.msisdnTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -816,19 +816,19 @@ onMounted(() => {
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.imsi')"
|
||||
:label="t('views.traceManage.task.imsi')"
|
||||
name="imsi"
|
||||
v-bind="modalStateFrom.validateInfos.imsi"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.imsi"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.imsiPlease')"
|
||||
:placeholder="t('views.traceManage.task.imsiPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.imsiTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.imsiTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -842,19 +842,19 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.srcIp')"
|
||||
:label="t('views.traceManage.task.srcIp')"
|
||||
name="srcIp"
|
||||
v-bind="modalStateFrom.validateInfos.srcIp"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.srcIp"
|
||||
allow-clear
|
||||
placeholder="t('views.trace.task.srcIpPlease')"
|
||||
placeholder="t('views.traceManage.task.srcIpPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.srcIpTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.srcIpTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -864,19 +864,19 @@ onMounted(() => {
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.dstIp')"
|
||||
:label="t('views.traceManage.task.dstIp')"
|
||||
name="dstIp"
|
||||
v-bind="modalStateFrom.validateInfos.dstIp"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.dstIp"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.dstIpPlease')"
|
||||
:placeholder="t('views.traceManage.task.dstIpPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.dstIpTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.dstIpTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -886,7 +886,7 @@ onMounted(() => {
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.interfaces')"
|
||||
:label="t('views.traceManage.task.interfaces')"
|
||||
name="interfaces"
|
||||
v-bind="modalStateFrom.validateInfos.interfaces"
|
||||
>
|
||||
@@ -900,19 +900,19 @@ onMounted(() => {
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.signalPort')"
|
||||
:label="t('views.traceManage.task.signalPort')"
|
||||
name="signalPort"
|
||||
v-bind="modalStateFrom.validateInfos.signalPort"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.signalPort"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.signalPortPlease')"
|
||||
:placeholder="t('views.traceManage.task.signalPortPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>t('views.trace.task.signalPortTip')</div>
|
||||
<div>t('views.traceManage.task.signalPortTip')</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -922,7 +922,7 @@ onMounted(() => {
|
||||
</template>
|
||||
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.rangePicker')"
|
||||
:label="t('views.traceManage.task.rangePicker')"
|
||||
name="endTime"
|
||||
v-bind="modalStateFrom.validateInfos.endTime"
|
||||
>
|
||||
@@ -935,19 +935,19 @@ onMounted(() => {
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
:placeholder="[
|
||||
t('views.trace.task.startTime'),
|
||||
t('views.trace.task.endTime'),
|
||||
t('views.traceManage.task.startTime'),
|
||||
t('views.traceManage.task.endTime'),
|
||||
]"
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.comment')" name="comment">
|
||||
<a-form-item :label="t('views.traceManage.task.comment')" name="comment">
|
||||
<a-textarea
|
||||
v-model:value="modalState.from.comment"
|
||||
:auto-size="{ minRows: 2, maxRows: 6 }"
|
||||
:maxlength="250"
|
||||
:show-count="true"
|
||||
:placeholder="t('views.trace.task.commentPlease')"
|
||||
:placeholder="t('views.traceManage.task.commentPlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
|
||||
@@ -273,7 +273,7 @@ onMounted(() => {
|
||||
|
||||
<template>
|
||||
<PageContainer>
|
||||
<a-card :title="t('views.trace.pcap.cardTitle')">
|
||||
<a-card :title="t('views.traceManage.pcap.cardTitle')">
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form
|
||||
@@ -284,7 +284,7 @@ onMounted(() => {
|
||||
:label-col="{ span: 5 }"
|
||||
labelWrap
|
||||
>
|
||||
<a-form-item :label="t('views.trace.pcap.neType')" name="neType">
|
||||
<a-form-item :label="t('views.traceManage.pcap.neType')" name="neType">
|
||||
<a-cascader
|
||||
v-model:value="modalState.neType"
|
||||
:options="useNeInfoStore().getNeCascaderOtions"
|
||||
@@ -293,13 +293,13 @@ onMounted(() => {
|
||||
placeholder="请选择网元"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.pcap.neIp')" name="ip">
|
||||
<a-form-item :label="t('views.traceManage.pcap.neIp')" name="ip">
|
||||
<span style="font-weight: bold">{{ modalState.from.ip }}</span>
|
||||
</a-form-item>
|
||||
|
||||
<template v-if="modalState.neType[0] === 'UPF'">
|
||||
<a-form-item
|
||||
:label="t('views.trace.pcap.capStart')"
|
||||
:label="t('views.traceManage.pcap.capStart')"
|
||||
name="upfStart"
|
||||
v-bind="modalStateFrom.validateInfos.upfStart"
|
||||
>
|
||||
@@ -317,12 +317,12 @@ onMounted(() => {
|
||||
:loading="modalState.confirmLoading"
|
||||
@click.prevent="fnUPF('start')"
|
||||
>
|
||||
{{ t('views.trace.pcap.runText') }}
|
||||
{{ t('views.traceManage.pcap.runText') }}
|
||||
</a-button>
|
||||
</a-input-group>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="t('views.trace.pcap.capStop')"
|
||||
:label="t('views.traceManage.pcap.capStop')"
|
||||
name="upfStop"
|
||||
v-bind="modalStateFrom.validateInfos.upfStop"
|
||||
>
|
||||
@@ -340,14 +340,14 @@ onMounted(() => {
|
||||
:loading="modalState.confirmLoading"
|
||||
@click.prevent="fnUPF('stop')"
|
||||
>
|
||||
{{ t('views.trace.pcap.runText') }}
|
||||
{{ t('views.traceManage.pcap.runText') }}
|
||||
</a-button>
|
||||
</a-input-group>
|
||||
</a-form-item>
|
||||
</template>
|
||||
<template v-else>
|
||||
<a-form-item
|
||||
:label="t('views.trace.pcap.capArg')"
|
||||
:label="t('views.traceManage.pcap.capArg')"
|
||||
name="cmd"
|
||||
v-bind="modalStateFrom.validateInfos.cmd"
|
||||
>
|
||||
@@ -359,7 +359,7 @@ onMounted(() => {
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="t('views.trace.pcap.capTime')"
|
||||
:label="t('views.traceManage.pcap.capTime')"
|
||||
name="timeout"
|
||||
v-bind="modalStateFrom.validateInfos.timeout"
|
||||
>
|
||||
@@ -381,8 +381,8 @@ onMounted(() => {
|
||||
<template #icon><ApiOutlined /></template>
|
||||
{{
|
||||
runTime != 0
|
||||
? t('views.trace.pcap.runTimeText', { s: runTime })
|
||||
: t('views.trace.pcap.runText')
|
||||
? t('views.traceManage.pcap.runTimeText', { s: runTime })
|
||||
: t('views.traceManage.pcap.runText')
|
||||
}}
|
||||
</a-button>
|
||||
<a-button
|
||||
@@ -391,7 +391,7 @@ onMounted(() => {
|
||||
:disabled="!modalState.confirmLoading"
|
||||
@click.prevent="fnStop"
|
||||
>
|
||||
{{ t('views.trace.pcap.stopText') }}
|
||||
{{ t('views.traceManage.pcap.stopText') }}
|
||||
</a-button>
|
||||
</a-space>
|
||||
</a-form-item>
|
||||
@@ -401,7 +401,7 @@ onMounted(() => {
|
||||
<a-col :offset="2" :lg="10" :md="10" :xs="24">
|
||||
<a-form layout="vertical" autocomplete="off">
|
||||
<a-form-item
|
||||
:label="t('views.trace.pcap.capLog')"
|
||||
:label="t('views.traceManage.pcap.capLog')"
|
||||
name="execLogMsg"
|
||||
v-show="!!modalState.execLogMsg"
|
||||
>
|
||||
@@ -419,7 +419,7 @@ onMounted(() => {
|
||||
@click.prevent="fnDownPCAP"
|
||||
>
|
||||
<template #icon><DownloadOutlined /></template>
|
||||
{{ t('views.trace.pcap.capDownText') }}
|
||||
{{ t('views.traceManage.pcap.capDownText') }}
|
||||
</a-button>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
|
||||
@@ -64,47 +64,47 @@ let tableState: TabeStateType = reactive({
|
||||
/**表格字段列 */
|
||||
let tableColumns: ColumnsType = [
|
||||
{
|
||||
title: t('views.trace.analysis.trackTaskId'),
|
||||
title: t('views.traceManage.analysis.trackTaskId'),
|
||||
dataIndex: 'taskId',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.imsi'),
|
||||
title: t('views.traceManage.analysis.imsi'),
|
||||
dataIndex: 'imsi',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.msisdn'),
|
||||
title: t('views.traceManage.analysis.msisdn'),
|
||||
dataIndex: 'msisdn',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.srcIp'),
|
||||
title: t('views.traceManage.analysis.srcIp'),
|
||||
dataIndex: 'srcAddr',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.dstIp'),
|
||||
title: t('views.traceManage.analysis.dstIp'),
|
||||
dataIndex: 'dstAddr',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.signalType'),
|
||||
title: t('views.traceManage.analysis.signalType'),
|
||||
dataIndex: 'ifType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.msgType'),
|
||||
title: t('views.traceManage.analysis.msgType'),
|
||||
dataIndex: 'msgType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.msgDirect'),
|
||||
title: t('views.traceManage.analysis.msgDirect'),
|
||||
dataIndex: 'msgDirect',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.rowTime'),
|
||||
title: t('views.traceManage.analysis.rowTime'),
|
||||
dataIndex: 'timestamp',
|
||||
align: 'center',
|
||||
customRender(opt) {
|
||||
@@ -215,10 +215,10 @@ function fnModalVisible(row: Record<string, any>) {
|
||||
modalState.from.rawDataHTML = withoutHiddenElements;
|
||||
modalState.from.downBtn = true;
|
||||
} else {
|
||||
modalState.from.rawDataHTML = t('views.trace.analysis.noData');
|
||||
modalState.from.rawDataHTML = t('views.traceManage.analysis.noData');
|
||||
}
|
||||
});
|
||||
modalState.title = t('views.trace.analysis.taskTitle', { num: row.imsi });
|
||||
modalState.title = t('views.traceManage.analysis.taskTitle', { num: row.imsi });
|
||||
modalState.visible = true;
|
||||
}
|
||||
|
||||
@@ -293,7 +293,7 @@ function convertToReadableFormat(hexString: string) {
|
||||
function fnDownloadFile() {
|
||||
Modal.confirm({
|
||||
title: t('common.tipTitle'),
|
||||
content: t('views.trace.analysis.taskDownTip'),
|
||||
content: t('views.traceManage.analysis.taskDownTip'),
|
||||
onOk() {
|
||||
const blob = new Blob([modalState.from.rawDataHTML], {
|
||||
type: 'text/plain',
|
||||
@@ -321,25 +321,25 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:placeholder="t('views.trace.analysis.imsi')"
|
||||
:placeholder="t('views.traceManage.analysis.imsi')"
|
||||
name="imsi"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="queryParams.imsi"
|
||||
:allow-clear="true"
|
||||
:placeholder="t('views.trace.analysis.imsiPlease')"
|
||||
:placeholder="t('views.traceManage.analysis.imsiPlease')"
|
||||
></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:placeholder="t('views.trace.analysis.msisdn')"
|
||||
:placeholder="t('views.traceManage.analysis.msisdn')"
|
||||
name="imsi"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="queryParams.msisdn"
|
||||
:allow-clear="true"
|
||||
:placeholder="t('views.trace.analysis.msisdnPlease')"
|
||||
:placeholder="t('views.traceManage.analysis.msisdnPlease')"
|
||||
></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -443,7 +443,7 @@ onMounted(() => {
|
||||
:visible="modalState.visible"
|
||||
@cancel="fnModalVisibleClose"
|
||||
>
|
||||
<div class="raw-title">{{ t('views.trace.analysis.signalData') }}</div>
|
||||
<div class="raw-title">{{ t('views.traceManage.analysis.signalData') }}</div>
|
||||
<a-row
|
||||
class="raw"
|
||||
:gutter="16"
|
||||
@@ -456,7 +456,7 @@ onMounted(() => {
|
||||
</a-row>
|
||||
<a-divider />
|
||||
<div class="raw-title">
|
||||
{{ t('views.trace.analysis.signalDetail') }}
|
||||
{{ t('views.traceManage.analysis.signalDetail') }}
|
||||
<a-button
|
||||
type="dashed"
|
||||
size="small"
|
||||
@@ -466,7 +466,7 @@ onMounted(() => {
|
||||
<template #icon>
|
||||
<DownloadOutlined />
|
||||
</template>
|
||||
{{ t('views.trace.analysis.taskDownText') }}
|
||||
{{ t('views.traceManage.analysis.taskDownText') }}
|
||||
</a-button>
|
||||
</div>
|
||||
<div class="raw-html" v-html="modalState.from.rawDataHTML"></div>
|
||||
|
||||
@@ -88,28 +88,28 @@ let tableColumns: ColumnsType = [
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.neType'),
|
||||
title: t('views.traceManage.task.neType'),
|
||||
dataIndex: 'neType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.neID'),
|
||||
title: t('views.traceManage.task.neID'),
|
||||
dataIndex: 'neId',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.trackType'),
|
||||
title: t('views.traceManage.task.trackType'),
|
||||
dataIndex: 'traceType',
|
||||
key: 'traceType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.trackType'),
|
||||
title: t('views.traceManage.task.trackType'),
|
||||
dataIndex: 'accountId',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.startTime'),
|
||||
title: t('views.traceManage.task.startTime'),
|
||||
dataIndex: 'startTime',
|
||||
align: 'center',
|
||||
customRender(opt) {
|
||||
@@ -118,7 +118,7 @@ let tableColumns: ColumnsType = [
|
||||
},
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.endTime'),
|
||||
title: t('views.traceManage.task.endTime'),
|
||||
dataIndex: 'endTime',
|
||||
align: 'center',
|
||||
customRender(opt) {
|
||||
@@ -172,15 +172,15 @@ function fnTableSize({ key }: MenuInfo) {
|
||||
*/
|
||||
function fnRecordDelete(id: string) {
|
||||
Modal.confirm({
|
||||
title: t('views.trace.task.tipTitle'),
|
||||
content: t('views.trace.task.delTaskTip', { num: id }),
|
||||
title: t('views.traceManage.task.tipTitle'),
|
||||
content: t('views.traceManage.task.delTaskTip', { num: id }),
|
||||
onOk() {
|
||||
const key = 'delTraceTask';
|
||||
message.loading({ content: t('common.loading'), key });
|
||||
delTraceTask(id).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: t('views.trace.task.delTask', { num: id }),
|
||||
content: t('views.traceManage.task.delTask', { num: id }),
|
||||
key,
|
||||
duration: 2,
|
||||
});
|
||||
@@ -272,32 +272,32 @@ const modalStateFrom = Form.useForm(
|
||||
traceType: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.trackTypePlease'),
|
||||
message: t('views.traceManage.task.trackTypePlease'),
|
||||
},
|
||||
],
|
||||
neId: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.neTypePlease'),
|
||||
message: t('views.traceManage.task.neTypePlease'),
|
||||
},
|
||||
],
|
||||
endTime: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.rangePickerPlease'),
|
||||
message: t('views.traceManage.task.rangePickerPlease'),
|
||||
},
|
||||
],
|
||||
// 跟踪用户
|
||||
imsi: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.imsiPlease'),
|
||||
message: t('views.traceManage.task.imsiPlease'),
|
||||
},
|
||||
],
|
||||
msisdn: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.msisdnPlease'),
|
||||
message: t('views.traceManage.task.msisdnPlease'),
|
||||
},
|
||||
],
|
||||
// 跟踪接口
|
||||
@@ -305,27 +305,27 @@ const modalStateFrom = Form.useForm(
|
||||
{
|
||||
required: true,
|
||||
pattern: regExpIPv4,
|
||||
message: t('views.trace.task.srcIpPlease'),
|
||||
message: t('views.traceManage.task.srcIpPlease'),
|
||||
},
|
||||
],
|
||||
dstIp: [
|
||||
{
|
||||
required: true,
|
||||
pattern: regExpIPv4,
|
||||
message: t('views.trace.task.dstIpPlease'),
|
||||
message: t('views.traceManage.task.dstIpPlease'),
|
||||
},
|
||||
],
|
||||
interfaces: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.interfacesPlease'),
|
||||
message: t('views.traceManage.task.interfacesPlease'),
|
||||
},
|
||||
],
|
||||
signalPort: [
|
||||
{
|
||||
required: true,
|
||||
pattern: regExpPort,
|
||||
message: t('views.trace.task.signalPortPlease'),
|
||||
message: t('views.traceManage.task.signalPortPlease'),
|
||||
},
|
||||
],
|
||||
})
|
||||
@@ -392,10 +392,10 @@ function fnModalVisibleByVive(id: string) {
|
||||
}
|
||||
fnSelectInterfaceInit(res.data.neType);
|
||||
}
|
||||
modalState.title = t('views.trace.task.viewTask');
|
||||
modalState.title = t('views.traceManage.task.viewTask');
|
||||
modalState.visibleByView = true;
|
||||
} else {
|
||||
message.error(t('views.trace.task.errorTaskInfo'), 3);
|
||||
message.error(t('views.traceManage.task.errorTaskInfo'), 3);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -407,7 +407,7 @@ function fnModalVisibleByVive(id: string) {
|
||||
function fnModalVisibleByEdit(id?: string) {
|
||||
if (!id) {
|
||||
modalStateFrom.resetFields();
|
||||
modalState.title = t('views.trace.task.addTask');
|
||||
modalState.title = t('views.traceManage.task.addTask');
|
||||
modalState.visibleByEdit = true;
|
||||
} else {
|
||||
if (modalState.confirmLoading) return;
|
||||
@@ -430,10 +430,10 @@ function fnModalVisibleByEdit(id?: string) {
|
||||
}
|
||||
fnSelectInterfaceInit(res.data.neType);
|
||||
}
|
||||
modalState.title = t('views.trace.task.editTask');
|
||||
modalState.title = t('views.traceManage.task.editTask');
|
||||
modalState.visibleByEdit = true;
|
||||
} else {
|
||||
message.error(t('views.trace.task.errorTaskInfo'), 3);
|
||||
message.error(t('views.traceManage.task.errorTaskInfo'), 3);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -532,12 +532,12 @@ onMounted(() => {
|
||||
<a-form :model="queryParams" name="queryParams" layout="horizontal">
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.neType')" name="neType ">
|
||||
<a-form-item :label="t('views.traceManage.task.neType')" name="neType ">
|
||||
<a-auto-complete
|
||||
v-model:value="queryParams.neType"
|
||||
:options="useNeInfoStore().getNeSelectOtions"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.neTypePlease')"
|
||||
:placeholder="t('views.traceManage.task.neTypePlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -674,7 +674,7 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.trackType')"
|
||||
:label="t('views.traceManage.task.trackType')"
|
||||
name="traceType"
|
||||
>
|
||||
<DictTag
|
||||
@@ -684,7 +684,7 @@ onMounted(() => {
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.neType')" name="neType">
|
||||
<a-form-item :label="t('views.traceManage.task.neType')" name="neType">
|
||||
<a-cascader
|
||||
:value="modalState.neType"
|
||||
:options="useNeInfoStore().getNeCascaderOtions"
|
||||
@@ -696,10 +696,10 @@ onMounted(() => {
|
||||
|
||||
<!-- 用户跟踪 -->
|
||||
<template v-if="modalState.from.traceType === 'UE'">
|
||||
<a-form-item :label="t('views.trace.task.msisdn')" name="msisdn">
|
||||
<a-form-item :label="t('views.traceManage.task.msisdn')" name="msisdn">
|
||||
{{ modalState.from.msisdn }}
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.imsi')" name="imsi">
|
||||
<a-form-item :label="t('views.traceManage.task.imsi')" name="imsi">
|
||||
{{ modalState.from.imsi }}
|
||||
</a-form-item>
|
||||
</template>
|
||||
@@ -708,25 +708,25 @@ onMounted(() => {
|
||||
<template v-if="modalState.from.traceType === 'Interface'">
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.srcIp')" name="srcIp">
|
||||
<a-form-item :label="t('views.traceManage.task.srcIp')" name="srcIp">
|
||||
{{ modalState.from.srcIp }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.dstIp')" name="dstIp">
|
||||
<a-form-item :label="t('views.traceManage.task.dstIp')" name="dstIp">
|
||||
{{ modalState.from.dstIp }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item :label="t('views.trace.task.interfaces')" name="endTime">
|
||||
<a-form-item :label="t('views.traceManage.task.interfaces')" name="endTime">
|
||||
{{ modalState.neTypeInterfaceSelect }}
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.signalPort')" name="endTime">
|
||||
<a-form-item :label="t('views.traceManage.task.signalPort')" name="endTime">
|
||||
{{ modalState.from.signalPort }}
|
||||
</a-form-item>
|
||||
</template>
|
||||
|
||||
<a-form-item :label="t('views.trace.task.rangePicker')" name="endTime">
|
||||
<a-form-item :label="t('views.traceManage.task.rangePicker')" name="endTime">
|
||||
<a-range-picker
|
||||
disabled
|
||||
:value="modalState.timeRangePicker"
|
||||
@@ -738,7 +738,7 @@ onMounted(() => {
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.comment')" name="comment">
|
||||
<a-form-item :label="t('views.traceManage.task.comment')" name="comment">
|
||||
{{ modalState.from.comment }}
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
@@ -764,13 +764,13 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.trackType')"
|
||||
:label="t('views.traceManage.task.trackType')"
|
||||
name="traceType"
|
||||
v-bind="modalStateFrom.validateInfos.traceType"
|
||||
>
|
||||
<a-select
|
||||
v-model:value="modalState.from.traceType"
|
||||
:placeholder="t('views.trace.task.trackTypePlease')"
|
||||
:placeholder="t('views.traceManage.task.trackTypePlease')"
|
||||
:options="dict.traceType"
|
||||
>
|
||||
</a-select>
|
||||
@@ -778,7 +778,7 @@ onMounted(() => {
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.neType')"
|
||||
:label="t('views.traceManage.task.neType')"
|
||||
name="neType"
|
||||
v-bind="modalStateFrom.validateInfos.neId"
|
||||
>
|
||||
@@ -787,7 +787,7 @@ onMounted(() => {
|
||||
:options="useNeInfoStore().getNeCascaderOtions"
|
||||
@change="fnNeChange"
|
||||
:allow-clear="false"
|
||||
:placeholder="t('views.trace.task.neTypePlease')"
|
||||
:placeholder="t('views.traceManage.task.neTypePlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -796,19 +796,19 @@ onMounted(() => {
|
||||
<!-- 用户跟踪 -->
|
||||
<template v-if="modalState.from.traceType === 'UE'">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.msisdn')"
|
||||
:label="t('views.traceManage.task.msisdn')"
|
||||
name="msisdn"
|
||||
v-bind="modalStateFrom.validateInfos.msisdn"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.msisdn"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.msisdnPlease')"
|
||||
:placeholder="t('views.traceManage.task.msisdnPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.msisdnTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.msisdnTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -816,19 +816,19 @@ onMounted(() => {
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.imsi')"
|
||||
:label="t('views.traceManage.task.imsi')"
|
||||
name="imsi"
|
||||
v-bind="modalStateFrom.validateInfos.imsi"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.imsi"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.imsiPlease')"
|
||||
:placeholder="t('views.traceManage.task.imsiPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.imsiTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.imsiTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -842,19 +842,19 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.srcIp')"
|
||||
:label="t('views.traceManage.task.srcIp')"
|
||||
name="srcIp"
|
||||
v-bind="modalStateFrom.validateInfos.srcIp"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.srcIp"
|
||||
allow-clear
|
||||
placeholder="t('views.trace.task.srcIpPlease')"
|
||||
placeholder="t('views.traceManage.task.srcIpPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.srcIpTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.srcIpTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -864,19 +864,19 @@ onMounted(() => {
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.dstIp')"
|
||||
:label="t('views.traceManage.task.dstIp')"
|
||||
name="dstIp"
|
||||
v-bind="modalStateFrom.validateInfos.dstIp"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.dstIp"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.dstIpPlease')"
|
||||
:placeholder="t('views.traceManage.task.dstIpPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.dstIpTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.dstIpTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -886,7 +886,7 @@ onMounted(() => {
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.interfaces')"
|
||||
:label="t('views.traceManage.task.interfaces')"
|
||||
name="interfaces"
|
||||
v-bind="modalStateFrom.validateInfos.interfaces"
|
||||
>
|
||||
@@ -900,19 +900,19 @@ onMounted(() => {
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.signalPort')"
|
||||
:label="t('views.traceManage.task.signalPort')"
|
||||
name="signalPort"
|
||||
v-bind="modalStateFrom.validateInfos.signalPort"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.signalPort"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.signalPortPlease')"
|
||||
:placeholder="t('views.traceManage.task.signalPortPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>t('views.trace.task.signalPortTip')</div>
|
||||
<div>t('views.traceManage.task.signalPortTip')</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -922,7 +922,7 @@ onMounted(() => {
|
||||
</template>
|
||||
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.rangePicker')"
|
||||
:label="t('views.traceManage.task.rangePicker')"
|
||||
name="endTime"
|
||||
v-bind="modalStateFrom.validateInfos.endTime"
|
||||
>
|
||||
@@ -935,19 +935,19 @@ onMounted(() => {
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
:placeholder="[
|
||||
t('views.trace.task.startTime'),
|
||||
t('views.trace.task.endTime'),
|
||||
t('views.traceManage.task.startTime'),
|
||||
t('views.traceManage.task.endTime'),
|
||||
]"
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.comment')" name="comment">
|
||||
<a-form-item :label="t('views.traceManage.task.comment')" name="comment">
|
||||
<a-textarea
|
||||
v-model:value="modalState.from.comment"
|
||||
:auto-size="{ minRows: 2, maxRows: 6 }"
|
||||
:maxlength="250"
|
||||
:show-count="true"
|
||||
:placeholder="t('views.trace.task.commentPlease')"
|
||||
:placeholder="t('views.traceManage.task.commentPlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
|
||||
@@ -64,47 +64,47 @@ let tableState: TabeStateType = reactive({
|
||||
/**表格字段列 */
|
||||
let tableColumns: ColumnsType = [
|
||||
{
|
||||
title: t('views.trace.analysis.trackTaskId'),
|
||||
title: t('views.traceManage.analysis.trackTaskId'),
|
||||
dataIndex: 'taskId',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.imsi'),
|
||||
title: t('views.traceManage.analysis.imsi'),
|
||||
dataIndex: 'imsi',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.msisdn'),
|
||||
title: t('views.traceManage.analysis.msisdn'),
|
||||
dataIndex: 'msisdn',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.srcIp'),
|
||||
title: t('views.traceManage.analysis.srcIp'),
|
||||
dataIndex: 'srcAddr',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.dstIp'),
|
||||
title: t('views.traceManage.analysis.dstIp'),
|
||||
dataIndex: 'dstAddr',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.signalType'),
|
||||
title: t('views.traceManage.analysis.signalType'),
|
||||
dataIndex: 'ifType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.msgType'),
|
||||
title: t('views.traceManage.analysis.msgType'),
|
||||
dataIndex: 'msgType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.msgDirect'),
|
||||
title: t('views.traceManage.analysis.msgDirect'),
|
||||
dataIndex: 'msgDirect',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.rowTime'),
|
||||
title: t('views.traceManage.analysis.rowTime'),
|
||||
dataIndex: 'timestamp',
|
||||
align: 'center',
|
||||
customRender(opt) {
|
||||
@@ -215,10 +215,10 @@ function fnModalVisible(row: Record<string, any>) {
|
||||
modalState.from.rawDataHTML = withoutHiddenElements;
|
||||
modalState.from.downBtn = true;
|
||||
} else {
|
||||
modalState.from.rawDataHTML = t('views.trace.analysis.noData');
|
||||
modalState.from.rawDataHTML = t('views.traceManage.analysis.noData');
|
||||
}
|
||||
});
|
||||
modalState.title = t('views.trace.analysis.taskTitle', { num: row.imsi });
|
||||
modalState.title = t('views.traceManage.analysis.taskTitle', { num: row.imsi });
|
||||
modalState.visible = true;
|
||||
}
|
||||
|
||||
@@ -293,7 +293,7 @@ function convertToReadableFormat(hexString: string) {
|
||||
function fnDownloadFile() {
|
||||
Modal.confirm({
|
||||
title: t('common.tipTitle'),
|
||||
content: t('views.trace.analysis.taskDownTip'),
|
||||
content: t('views.traceManage.analysis.taskDownTip'),
|
||||
onOk() {
|
||||
const blob = new Blob([modalState.from.rawDataHTML], {
|
||||
type: 'text/plain',
|
||||
@@ -321,25 +321,25 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:placeholder="t('views.trace.analysis.imsi')"
|
||||
:placeholder="t('views.traceManage.analysis.imsi')"
|
||||
name="imsi"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="queryParams.imsi"
|
||||
:allow-clear="true"
|
||||
:placeholder="t('views.trace.analysis.imsiPlease')"
|
||||
:placeholder="t('views.traceManage.analysis.imsiPlease')"
|
||||
></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:placeholder="t('views.trace.analysis.msisdn')"
|
||||
:placeholder="t('views.traceManage.analysis.msisdn')"
|
||||
name="imsi"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="queryParams.msisdn"
|
||||
:allow-clear="true"
|
||||
:placeholder="t('views.trace.analysis.msisdnPlease')"
|
||||
:placeholder="t('views.traceManage.analysis.msisdnPlease')"
|
||||
></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -443,7 +443,7 @@ onMounted(() => {
|
||||
:visible="modalState.visible"
|
||||
@cancel="fnModalVisibleClose"
|
||||
>
|
||||
<div class="raw-title">{{ t('views.trace.analysis.signalData') }}</div>
|
||||
<div class="raw-title">{{ t('views.traceManage.analysis.signalData') }}</div>
|
||||
<a-row
|
||||
class="raw"
|
||||
:gutter="16"
|
||||
@@ -456,7 +456,7 @@ onMounted(() => {
|
||||
</a-row>
|
||||
<a-divider />
|
||||
<div class="raw-title">
|
||||
{{ t('views.trace.analysis.signalDetail') }}
|
||||
{{ t('views.traceManage.analysis.signalDetail') }}
|
||||
<a-button
|
||||
type="dashed"
|
||||
size="small"
|
||||
@@ -466,7 +466,7 @@ onMounted(() => {
|
||||
<template #icon>
|
||||
<DownloadOutlined />
|
||||
</template>
|
||||
{{ t('views.trace.analysis.taskDownText') }}
|
||||
{{ t('views.traceManage.analysis.taskDownText') }}
|
||||
</a-button>
|
||||
</div>
|
||||
<div class="raw-html" v-html="modalState.from.rawDataHTML"></div>
|
||||
|
||||
@@ -64,47 +64,47 @@ let tableState: TabeStateType = reactive({
|
||||
/**表格字段列 */
|
||||
let tableColumns: ColumnsType = [
|
||||
{
|
||||
title: t('views.trace.analysis.trackTaskId'),
|
||||
title: t('views.traceManage.analysis.trackTaskId'),
|
||||
dataIndex: 'taskId',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.imsi'),
|
||||
title: t('views.traceManage.analysis.imsi'),
|
||||
dataIndex: 'imsi',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.msisdn'),
|
||||
title: t('views.traceManage.analysis.msisdn'),
|
||||
dataIndex: 'msisdn',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.srcIp'),
|
||||
title: t('views.traceManage.analysis.srcIp'),
|
||||
dataIndex: 'srcAddr',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.dstIp'),
|
||||
title: t('views.traceManage.analysis.dstIp'),
|
||||
dataIndex: 'dstAddr',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.signalType'),
|
||||
title: t('views.traceManage.analysis.signalType'),
|
||||
dataIndex: 'ifType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.msgType'),
|
||||
title: t('views.traceManage.analysis.msgType'),
|
||||
dataIndex: 'msgType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.msgDirect'),
|
||||
title: t('views.traceManage.analysis.msgDirect'),
|
||||
dataIndex: 'msgDirect',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.analysis.rowTime'),
|
||||
title: t('views.traceManage.analysis.rowTime'),
|
||||
dataIndex: 'timestamp',
|
||||
align: 'center',
|
||||
customRender(opt) {
|
||||
@@ -215,10 +215,10 @@ function fnModalVisible(row: Record<string, any>) {
|
||||
modalState.from.rawDataHTML = withoutHiddenElements;
|
||||
modalState.from.downBtn = true;
|
||||
} else {
|
||||
modalState.from.rawDataHTML = t('views.trace.analysis.noData');
|
||||
modalState.from.rawDataHTML = t('views.traceManage.analysis.noData');
|
||||
}
|
||||
});
|
||||
modalState.title = t('views.trace.analysis.taskTitle', { num: row.imsi });
|
||||
modalState.title = t('views.traceManage.analysis.taskTitle', { num: row.imsi });
|
||||
modalState.visible = true;
|
||||
}
|
||||
|
||||
@@ -293,7 +293,7 @@ function convertToReadableFormat(hexString: string) {
|
||||
function fnDownloadFile() {
|
||||
Modal.confirm({
|
||||
title: t('common.tipTitle'),
|
||||
content: t('views.trace.analysis.taskDownTip'),
|
||||
content: t('views.traceManage.analysis.taskDownTip'),
|
||||
onOk() {
|
||||
const blob = new Blob([modalState.from.rawDataHTML], {
|
||||
type: 'text/plain',
|
||||
@@ -321,25 +321,25 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:placeholder="t('views.trace.analysis.imsi')"
|
||||
:placeholder="t('views.traceManage.analysis.imsi')"
|
||||
name="imsi"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="queryParams.imsi"
|
||||
:allow-clear="true"
|
||||
:placeholder="t('views.trace.analysis.imsiPlease')"
|
||||
:placeholder="t('views.traceManage.analysis.imsiPlease')"
|
||||
></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:placeholder="t('views.trace.analysis.msisdn')"
|
||||
:placeholder="t('views.traceManage.analysis.msisdn')"
|
||||
name="imsi"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="queryParams.msisdn"
|
||||
:allow-clear="true"
|
||||
:placeholder="t('views.trace.analysis.msisdnPlease')"
|
||||
:placeholder="t('views.traceManage.analysis.msisdnPlease')"
|
||||
></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -443,7 +443,7 @@ onMounted(() => {
|
||||
:visible="modalState.visible"
|
||||
@cancel="fnModalVisibleClose"
|
||||
>
|
||||
<div class="raw-title">{{ t('views.trace.analysis.signalData') }}</div>
|
||||
<div class="raw-title">{{ t('views.traceManage.analysis.signalData') }}</div>
|
||||
<a-row
|
||||
class="raw"
|
||||
:gutter="16"
|
||||
@@ -456,7 +456,7 @@ onMounted(() => {
|
||||
</a-row>
|
||||
<a-divider />
|
||||
<div class="raw-title">
|
||||
{{ t('views.trace.analysis.signalDetail') }}
|
||||
{{ t('views.traceManage.analysis.signalDetail') }}
|
||||
<a-button
|
||||
type="dashed"
|
||||
size="small"
|
||||
@@ -466,7 +466,7 @@ onMounted(() => {
|
||||
<template #icon>
|
||||
<DownloadOutlined />
|
||||
</template>
|
||||
{{ t('views.trace.analysis.taskDownText') }}
|
||||
{{ t('views.traceManage.analysis.taskDownText') }}
|
||||
</a-button>
|
||||
</div>
|
||||
<div class="raw-html" v-html="modalState.from.rawDataHTML"></div>
|
||||
|
||||
@@ -62,10 +62,14 @@ function fnNeChange(_: any, item: any) {
|
||||
const modalStateFrom = Form.useForm(
|
||||
modalState.from,
|
||||
reactive({
|
||||
cmd: [{ required: true, message: 'tcpdump any 参数!' }],
|
||||
timeout: [{ required: true, message: '执行时长,单位是秒!' }],
|
||||
upfStart: [{ required: true, message: 'upf start pacp 命令!' }],
|
||||
upfStop: [{ required: true, message: 'upf stop pacp 命令!' }],
|
||||
cmd: [{ required: true, message: t('views.traceManage.pcap.capArgPlease') }],
|
||||
timeout: [{ required: true, message: t('views.traceManage.pcap.capTimePlease') }],
|
||||
upfStart: [
|
||||
{ required: true, message: t('views.traceManage.pcap.capArgUPFPlease') },
|
||||
],
|
||||
upfStop: [
|
||||
{ required: true, message: t('views.traceManage.pcap.capArgUPFPlease') },
|
||||
],
|
||||
})
|
||||
);
|
||||
|
||||
@@ -81,7 +85,7 @@ function fnStart() {
|
||||
.then(() => {
|
||||
modalState.confirmLoading = true;
|
||||
const from = toRaw(modalState.from);
|
||||
const hide = message.loading('正在执行...', 0);
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
controller = new AbortController();
|
||||
const signal = controller.signal;
|
||||
timeoutId = setInterval(() => {
|
||||
@@ -90,8 +94,8 @@ function fnStart() {
|
||||
clearInterval(timeoutId);
|
||||
runTime.value = 0;
|
||||
message.warning({
|
||||
content: `执行超时`,
|
||||
duration: 2,
|
||||
content: t('views.traceManage.pcap.execTimeout'),
|
||||
duration: 3,
|
||||
});
|
||||
// 超时终止请求
|
||||
controller.abort();
|
||||
@@ -107,7 +111,7 @@ function fnStart() {
|
||||
.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: `执行完成`,
|
||||
content: t('views.traceManage.pcap.execSuccess'),
|
||||
duration: 3,
|
||||
});
|
||||
let logmsg = res.data.cmd + '\n\n' + res.data.msg;
|
||||
@@ -120,12 +124,12 @@ function fnStart() {
|
||||
res.msg.includes('timeout')
|
||||
) {
|
||||
message.warning({
|
||||
content: `中断执行`,
|
||||
content: t('views.traceManage.pcap.execBreak'),
|
||||
duration: 3,
|
||||
});
|
||||
} else {
|
||||
message.error({
|
||||
content: `执行失败`,
|
||||
content: t('views.traceManage.pcap.execFailed'),
|
||||
duration: 3,
|
||||
});
|
||||
}
|
||||
@@ -153,13 +157,13 @@ function fnStop() {
|
||||
function fnDownPCAP() {
|
||||
if (!modalState.fileName) {
|
||||
message.warning({
|
||||
content: `无效文件名`,
|
||||
content: t('views.traceManage.pcap.noFileName'),
|
||||
duration: 2,
|
||||
});
|
||||
return;
|
||||
}
|
||||
const key = 'tcpdumpPcapDownload';
|
||||
message.loading({ content: '请稍等...', key });
|
||||
message.loading({ content: t('common.loading'), key });
|
||||
tcpdumpPcapDownload({
|
||||
neType: modalState.neType[0],
|
||||
neId: modalState.neType[1],
|
||||
@@ -167,16 +171,16 @@ function fnDownPCAP() {
|
||||
}).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: `已完成`,
|
||||
content: t('views.traceManage.pcap.execSuccess'),
|
||||
key,
|
||||
duration: 2,
|
||||
duration: 3,
|
||||
});
|
||||
saveAs(res.data, modalState.fileName);
|
||||
} else {
|
||||
message.error({
|
||||
content: `${res.msg}`,
|
||||
key,
|
||||
duration: 2,
|
||||
duration: 3,
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -193,7 +197,7 @@ function fnUPF(runType: 'start' | 'stop') {
|
||||
.then(() => {
|
||||
modalState.confirmLoading = true;
|
||||
const from = toRaw(modalState.from);
|
||||
const hide = message.loading('请稍等...', 0);
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
tcpdumpNeUPFTask({
|
||||
neType: modalState.neType[0],
|
||||
neId: modalState.neType[1],
|
||||
@@ -209,12 +213,12 @@ function fnUPF(runType: 'start' | 'stop') {
|
||||
if (runType === 'start') {
|
||||
if (res.data.msg.includes('already')) {
|
||||
message.warning({
|
||||
content: `已经执行, 请根据情况停止抓包`,
|
||||
content: t('views.traceManage.pcap.execUPFStartA'),
|
||||
duration: 10,
|
||||
});
|
||||
} else {
|
||||
message.success({
|
||||
content: `执行成功, 请根据情况停止抓包`,
|
||||
content: t('views.traceManage.pcap.execUPFStart'),
|
||||
duration: 10,
|
||||
});
|
||||
}
|
||||
@@ -222,12 +226,12 @@ function fnUPF(runType: 'start' | 'stop') {
|
||||
if (runType === 'stop') {
|
||||
if (res.data.msg.includes('already')) {
|
||||
message.warning({
|
||||
content: `已经停止, 请根据情况开始抓包`,
|
||||
content: t('views.traceManage.pcap.execUPFStopA'),
|
||||
duration: 10,
|
||||
});
|
||||
} else {
|
||||
message.success({
|
||||
content: `执行成功, 抓包已停止`,
|
||||
content: t('views.traceManage.pcap.execUPFStop'),
|
||||
duration: 10,
|
||||
});
|
||||
modalState.downBtn = true;
|
||||
@@ -235,7 +239,7 @@ function fnUPF(runType: 'start' | 'stop') {
|
||||
}
|
||||
} else {
|
||||
message.error({
|
||||
content: `执行失败`,
|
||||
content: t('views.traceManage.pcap.execFailed'),
|
||||
duration: 3,
|
||||
});
|
||||
}
|
||||
@@ -263,7 +267,7 @@ onMounted(() => {
|
||||
}
|
||||
} else {
|
||||
message.warning({
|
||||
content: `暂无网元列表数据`,
|
||||
content: 'No Data',
|
||||
duration: 2,
|
||||
});
|
||||
}
|
||||
@@ -273,7 +277,7 @@ onMounted(() => {
|
||||
|
||||
<template>
|
||||
<PageContainer>
|
||||
<a-card :title="t('views.trace.pcap.cardTitle')">
|
||||
<a-card :title="t('views.traceManage.pcap.cardTitle')">
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form
|
||||
@@ -284,22 +288,22 @@ onMounted(() => {
|
||||
:label-col="{ span: 5 }"
|
||||
labelWrap
|
||||
>
|
||||
<a-form-item :label="t('views.trace.pcap.neType')" name="neType">
|
||||
<a-form-item :label="t('views.traceManage.pcap.neType')" name="neType">
|
||||
<a-cascader
|
||||
v-model:value="modalState.neType"
|
||||
:options="useNeInfoStore().getNeCascaderOtions"
|
||||
@change="fnNeChange"
|
||||
:allow-clear="false"
|
||||
placeholder="请选择网元"
|
||||
:placeholder="t('views.traceManage.pcap.neTypePlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.pcap.neIp')" name="ip">
|
||||
<a-form-item :label="t('views.traceManage.pcap.neIp')" name="ip">
|
||||
<span style="font-weight: bold">{{ modalState.from.ip }}</span>
|
||||
</a-form-item>
|
||||
|
||||
<template v-if="modalState.neType[0] === 'UPF'">
|
||||
<a-form-item
|
||||
:label="t('views.trace.pcap.capStart')"
|
||||
:label="t('views.traceManage.pcap.capStart')"
|
||||
name="upfStart"
|
||||
v-bind="modalStateFrom.validateInfos.upfStart"
|
||||
>
|
||||
@@ -307,7 +311,7 @@ onMounted(() => {
|
||||
<a-input
|
||||
v-model:value="modalState.from.upfStart"
|
||||
allow-clear
|
||||
placeholder="upf pacp 命令"
|
||||
:placeholder="t('views.traceManage.pcap.capArgUPFPlease')"
|
||||
style="width: 75%"
|
||||
/>
|
||||
<a-button
|
||||
@@ -317,12 +321,12 @@ onMounted(() => {
|
||||
:loading="modalState.confirmLoading"
|
||||
@click.prevent="fnUPF('start')"
|
||||
>
|
||||
{{ t('views.trace.pcap.runText') }}
|
||||
{{ t('views.traceManage.pcap.runText') }}
|
||||
</a-button>
|
||||
</a-input-group>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="t('views.trace.pcap.capStop')"
|
||||
:label="t('views.traceManage.pcap.capStop')"
|
||||
name="upfStop"
|
||||
v-bind="modalStateFrom.validateInfos.upfStop"
|
||||
>
|
||||
@@ -330,7 +334,7 @@ onMounted(() => {
|
||||
<a-input
|
||||
v-model:value="modalState.from.upfStop"
|
||||
allow-clear
|
||||
placeholder="upf pacp 命令"
|
||||
:placeholder="t('views.traceManage.pcap.capArgUPFPlease')"
|
||||
style="width: 75%"
|
||||
/>
|
||||
<a-button
|
||||
@@ -340,32 +344,32 @@ onMounted(() => {
|
||||
:loading="modalState.confirmLoading"
|
||||
@click.prevent="fnUPF('stop')"
|
||||
>
|
||||
{{ t('views.trace.pcap.runText') }}
|
||||
{{ t('views.traceManage.pcap.runText') }}
|
||||
</a-button>
|
||||
</a-input-group>
|
||||
</a-form-item>
|
||||
</template>
|
||||
<template v-else>
|
||||
<a-form-item
|
||||
:label="t('views.trace.pcap.capArg')"
|
||||
:label="t('views.traceManage.pcap.capArg')"
|
||||
name="cmd"
|
||||
v-bind="modalStateFrom.validateInfos.cmd"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.cmd"
|
||||
allow-clear
|
||||
placeholder="tcpdump any 参数"
|
||||
:placeholder="t('views.traceManage.pcap.capArgPlease')"
|
||||
>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="t('views.trace.pcap.capTime')"
|
||||
:label="t('views.traceManage.pcap.capTime')"
|
||||
name="timeout"
|
||||
v-bind="modalStateFrom.validateInfos.timeout"
|
||||
>
|
||||
<a-input-number
|
||||
v-model:value="modalState.from.timeout"
|
||||
placeholder="单位是秒's"
|
||||
:placeholder="t('views.traceManage.pcap.capTimePlease')"
|
||||
:min="5"
|
||||
:max="120"
|
||||
/>
|
||||
@@ -381,8 +385,8 @@ onMounted(() => {
|
||||
<template #icon><ApiOutlined /></template>
|
||||
{{
|
||||
runTime != 0
|
||||
? t('views.trace.pcap.runTimeText', { s: runTime })
|
||||
: t('views.trace.pcap.runText')
|
||||
? t('views.traceManage.pcap.runTimeText', { s: runTime })
|
||||
: t('views.traceManage.pcap.runText')
|
||||
}}
|
||||
</a-button>
|
||||
<a-button
|
||||
@@ -391,7 +395,7 @@ onMounted(() => {
|
||||
:disabled="!modalState.confirmLoading"
|
||||
@click.prevent="fnStop"
|
||||
>
|
||||
{{ t('views.trace.pcap.stopText') }}
|
||||
{{ t('views.traceManage.pcap.stopText') }}
|
||||
</a-button>
|
||||
</a-space>
|
||||
</a-form-item>
|
||||
@@ -401,7 +405,7 @@ onMounted(() => {
|
||||
<a-col :offset="2" :lg="10" :md="10" :xs="24">
|
||||
<a-form layout="vertical" autocomplete="off">
|
||||
<a-form-item
|
||||
:label="t('views.trace.pcap.capLog')"
|
||||
:label="t('views.traceManage.pcap.capLog')"
|
||||
name="execLogMsg"
|
||||
v-show="!!modalState.execLogMsg"
|
||||
>
|
||||
@@ -409,7 +413,6 @@ onMounted(() => {
|
||||
v-model:value="modalState.execLogMsg"
|
||||
:auto-size="{ minRows: 10, maxRows: 15 }"
|
||||
:disabled="true"
|
||||
placeholder="输出执行日志..."
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item v-show="modalState.downBtn">
|
||||
@@ -419,7 +422,7 @@ onMounted(() => {
|
||||
@click.prevent="fnDownPCAP"
|
||||
>
|
||||
<template #icon><DownloadOutlined /></template>
|
||||
{{ t('views.trace.pcap.capDownText') }}
|
||||
{{ t('views.traceManage.pcap.capDownText') }}
|
||||
</a-button>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
|
||||
@@ -88,28 +88,28 @@ let tableColumns: ColumnsType = [
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.neType'),
|
||||
title: t('views.traceManage.task.neType'),
|
||||
dataIndex: 'neType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.neID'),
|
||||
title: t('views.traceManage.task.neID'),
|
||||
dataIndex: 'neId',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.trackType'),
|
||||
title: t('views.traceManage.task.trackType'),
|
||||
dataIndex: 'traceType',
|
||||
key: 'traceType',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.trackType'),
|
||||
title: t('views.traceManage.task.trackType'),
|
||||
dataIndex: 'accountId',
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.startTime'),
|
||||
title: t('views.traceManage.task.startTime'),
|
||||
dataIndex: 'startTime',
|
||||
align: 'center',
|
||||
customRender(opt) {
|
||||
@@ -118,7 +118,7 @@ let tableColumns: ColumnsType = [
|
||||
},
|
||||
},
|
||||
{
|
||||
title: t('views.trace.task.endTime'),
|
||||
title: t('views.traceManage.task.endTime'),
|
||||
dataIndex: 'endTime',
|
||||
align: 'center',
|
||||
customRender(opt) {
|
||||
@@ -172,15 +172,15 @@ function fnTableSize({ key }: MenuInfo) {
|
||||
*/
|
||||
function fnRecordDelete(id: string) {
|
||||
Modal.confirm({
|
||||
title: t('views.trace.task.tipTitle'),
|
||||
content: t('views.trace.task.delTaskTip', { num: id }),
|
||||
title: t('views.traceManage.task.tipTitle'),
|
||||
content: t('views.traceManage.task.delTaskTip', { num: id }),
|
||||
onOk() {
|
||||
const key = 'delTraceTask';
|
||||
message.loading({ content: t('common.loading'), key });
|
||||
delTraceTask(id).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: t('views.trace.task.delTask', { num: id }),
|
||||
content: t('views.traceManage.task.delTask', { num: id }),
|
||||
key,
|
||||
duration: 2,
|
||||
});
|
||||
@@ -272,32 +272,32 @@ const modalStateFrom = Form.useForm(
|
||||
traceType: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.trackTypePlease'),
|
||||
message: t('views.traceManage.task.trackTypePlease'),
|
||||
},
|
||||
],
|
||||
neId: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.neTypePlease'),
|
||||
message: t('views.traceManage.task.neTypePlease'),
|
||||
},
|
||||
],
|
||||
endTime: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.rangePickerPlease'),
|
||||
message: t('views.traceManage.task.rangePickerPlease'),
|
||||
},
|
||||
],
|
||||
// 跟踪用户
|
||||
imsi: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.imsiPlease'),
|
||||
message: t('views.traceManage.task.imsiPlease'),
|
||||
},
|
||||
],
|
||||
msisdn: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.msisdnPlease'),
|
||||
message: t('views.traceManage.task.msisdnPlease'),
|
||||
},
|
||||
],
|
||||
// 跟踪接口
|
||||
@@ -305,27 +305,27 @@ const modalStateFrom = Form.useForm(
|
||||
{
|
||||
required: true,
|
||||
pattern: regExpIPv4,
|
||||
message: t('views.trace.task.srcIpPlease'),
|
||||
message: t('views.traceManage.task.srcIpPlease'),
|
||||
},
|
||||
],
|
||||
dstIp: [
|
||||
{
|
||||
required: true,
|
||||
pattern: regExpIPv4,
|
||||
message: t('views.trace.task.dstIpPlease'),
|
||||
message: t('views.traceManage.task.dstIpPlease'),
|
||||
},
|
||||
],
|
||||
interfaces: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.trace.task.interfacesPlease'),
|
||||
message: t('views.traceManage.task.interfacesPlease'),
|
||||
},
|
||||
],
|
||||
signalPort: [
|
||||
{
|
||||
required: true,
|
||||
pattern: regExpPort,
|
||||
message: t('views.trace.task.signalPortPlease'),
|
||||
message: t('views.traceManage.task.signalPortPlease'),
|
||||
},
|
||||
],
|
||||
})
|
||||
@@ -392,10 +392,10 @@ function fnModalVisibleByVive(id: string) {
|
||||
}
|
||||
fnSelectInterfaceInit(res.data.neType);
|
||||
}
|
||||
modalState.title = t('views.trace.task.viewTask');
|
||||
modalState.title = t('views.traceManage.task.viewTask');
|
||||
modalState.visibleByView = true;
|
||||
} else {
|
||||
message.error(t('views.trace.task.errorTaskInfo'), 3);
|
||||
message.error(t('views.traceManage.task.errorTaskInfo'), 3);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -407,7 +407,7 @@ function fnModalVisibleByVive(id: string) {
|
||||
function fnModalVisibleByEdit(id?: string) {
|
||||
if (!id) {
|
||||
modalStateFrom.resetFields();
|
||||
modalState.title = t('views.trace.task.addTask');
|
||||
modalState.title = t('views.traceManage.task.addTask');
|
||||
modalState.visibleByEdit = true;
|
||||
} else {
|
||||
if (modalState.confirmLoading) return;
|
||||
@@ -430,10 +430,10 @@ function fnModalVisibleByEdit(id?: string) {
|
||||
}
|
||||
fnSelectInterfaceInit(res.data.neType);
|
||||
}
|
||||
modalState.title = t('views.trace.task.editTask');
|
||||
modalState.title = t('views.traceManage.task.editTask');
|
||||
modalState.visibleByEdit = true;
|
||||
} else {
|
||||
message.error(t('views.trace.task.errorTaskInfo'), 3);
|
||||
message.error(t('views.traceManage.task.errorTaskInfo'), 3);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -532,12 +532,12 @@ onMounted(() => {
|
||||
<a-form :model="queryParams" name="queryParams" layout="horizontal">
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.neType')" name="neType ">
|
||||
<a-form-item :label="t('views.traceManage.task.neType')" name="neType ">
|
||||
<a-auto-complete
|
||||
v-model:value="queryParams.neType"
|
||||
:options="useNeInfoStore().getNeSelectOtions"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.neTypePlease')"
|
||||
:placeholder="t('views.traceManage.task.neTypePlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -674,7 +674,7 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.trackType')"
|
||||
:label="t('views.traceManage.task.trackType')"
|
||||
name="traceType"
|
||||
>
|
||||
<DictTag
|
||||
@@ -684,7 +684,7 @@ onMounted(() => {
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.neType')" name="neType">
|
||||
<a-form-item :label="t('views.traceManage.task.neType')" name="neType">
|
||||
<a-cascader
|
||||
:value="modalState.neType"
|
||||
:options="useNeInfoStore().getNeCascaderOtions"
|
||||
@@ -696,10 +696,10 @@ onMounted(() => {
|
||||
|
||||
<!-- 用户跟踪 -->
|
||||
<template v-if="modalState.from.traceType === 'UE'">
|
||||
<a-form-item :label="t('views.trace.task.msisdn')" name="msisdn">
|
||||
<a-form-item :label="t('views.traceManage.task.msisdn')" name="msisdn">
|
||||
{{ modalState.from.msisdn }}
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.imsi')" name="imsi">
|
||||
<a-form-item :label="t('views.traceManage.task.imsi')" name="imsi">
|
||||
{{ modalState.from.imsi }}
|
||||
</a-form-item>
|
||||
</template>
|
||||
@@ -708,25 +708,25 @@ onMounted(() => {
|
||||
<template v-if="modalState.from.traceType === 'Interface'">
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.srcIp')" name="srcIp">
|
||||
<a-form-item :label="t('views.traceManage.task.srcIp')" name="srcIp">
|
||||
{{ modalState.from.srcIp }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.trace.task.dstIp')" name="dstIp">
|
||||
<a-form-item :label="t('views.traceManage.task.dstIp')" name="dstIp">
|
||||
{{ modalState.from.dstIp }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item :label="t('views.trace.task.interfaces')" name="endTime">
|
||||
<a-form-item :label="t('views.traceManage.task.interfaces')" name="endTime">
|
||||
{{ modalState.neTypeInterfaceSelect }}
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.signalPort')" name="endTime">
|
||||
<a-form-item :label="t('views.traceManage.task.signalPort')" name="endTime">
|
||||
{{ modalState.from.signalPort }}
|
||||
</a-form-item>
|
||||
</template>
|
||||
|
||||
<a-form-item :label="t('views.trace.task.rangePicker')" name="endTime">
|
||||
<a-form-item :label="t('views.traceManage.task.rangePicker')" name="endTime">
|
||||
<a-range-picker
|
||||
disabled
|
||||
:value="modalState.timeRangePicker"
|
||||
@@ -738,7 +738,7 @@ onMounted(() => {
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.comment')" name="comment">
|
||||
<a-form-item :label="t('views.traceManage.task.comment')" name="comment">
|
||||
{{ modalState.from.comment }}
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
@@ -764,13 +764,13 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.trackType')"
|
||||
:label="t('views.traceManage.task.trackType')"
|
||||
name="traceType"
|
||||
v-bind="modalStateFrom.validateInfos.traceType"
|
||||
>
|
||||
<a-select
|
||||
v-model:value="modalState.from.traceType"
|
||||
:placeholder="t('views.trace.task.trackTypePlease')"
|
||||
:placeholder="t('views.traceManage.task.trackTypePlease')"
|
||||
:options="dict.traceType"
|
||||
>
|
||||
</a-select>
|
||||
@@ -778,7 +778,7 @@ onMounted(() => {
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.neType')"
|
||||
:label="t('views.traceManage.task.neType')"
|
||||
name="neType"
|
||||
v-bind="modalStateFrom.validateInfos.neId"
|
||||
>
|
||||
@@ -787,7 +787,7 @@ onMounted(() => {
|
||||
:options="useNeInfoStore().getNeCascaderOtions"
|
||||
@change="fnNeChange"
|
||||
:allow-clear="false"
|
||||
:placeholder="t('views.trace.task.neTypePlease')"
|
||||
:placeholder="t('views.traceManage.task.neTypePlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -796,19 +796,19 @@ onMounted(() => {
|
||||
<!-- 用户跟踪 -->
|
||||
<template v-if="modalState.from.traceType === 'UE'">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.msisdn')"
|
||||
:label="t('views.traceManage.task.msisdn')"
|
||||
name="msisdn"
|
||||
v-bind="modalStateFrom.validateInfos.msisdn"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.msisdn"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.msisdnPlease')"
|
||||
:placeholder="t('views.traceManage.task.msisdnPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.msisdnTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.msisdnTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -816,19 +816,19 @@ onMounted(() => {
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.imsi')"
|
||||
:label="t('views.traceManage.task.imsi')"
|
||||
name="imsi"
|
||||
v-bind="modalStateFrom.validateInfos.imsi"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.imsi"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.imsiPlease')"
|
||||
:placeholder="t('views.traceManage.task.imsiPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.imsiTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.imsiTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -842,19 +842,19 @@ onMounted(() => {
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.srcIp')"
|
||||
:label="t('views.traceManage.task.srcIp')"
|
||||
name="srcIp"
|
||||
v-bind="modalStateFrom.validateInfos.srcIp"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.srcIp"
|
||||
allow-clear
|
||||
placeholder="t('views.trace.task.srcIpPlease')"
|
||||
placeholder="t('views.traceManage.task.srcIpPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.srcIpTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.srcIpTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -864,19 +864,19 @@ onMounted(() => {
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.dstIp')"
|
||||
:label="t('views.traceManage.task.dstIp')"
|
||||
name="dstIp"
|
||||
v-bind="modalStateFrom.validateInfos.dstIp"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.dstIp"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.dstIpPlease')"
|
||||
:placeholder="t('views.traceManage.task.dstIpPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>{{ t('views.trace.task.dstIpTip') }}</div>
|
||||
<div>{{ t('views.traceManage.task.dstIpTip') }}</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -886,7 +886,7 @@ onMounted(() => {
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.interfaces')"
|
||||
:label="t('views.traceManage.task.interfaces')"
|
||||
name="interfaces"
|
||||
v-bind="modalStateFrom.validateInfos.interfaces"
|
||||
>
|
||||
@@ -900,19 +900,19 @@ onMounted(() => {
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.signalPort')"
|
||||
:label="t('views.traceManage.task.signalPort')"
|
||||
name="signalPort"
|
||||
v-bind="modalStateFrom.validateInfos.signalPort"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.signalPort"
|
||||
allow-clear
|
||||
:placeholder="t('views.trace.task.signalPortPlease')"
|
||||
:placeholder="t('views.traceManage.task.signalPortPlease')"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>t('views.trace.task.signalPortTip')</div>
|
||||
<div>t('views.traceManage.task.signalPortTip')</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</a-tooltip>
|
||||
@@ -922,7 +922,7 @@ onMounted(() => {
|
||||
</template>
|
||||
|
||||
<a-form-item
|
||||
:label="t('views.trace.task.rangePicker')"
|
||||
:label="t('views.traceManage.task.rangePicker')"
|
||||
name="endTime"
|
||||
v-bind="modalStateFrom.validateInfos.endTime"
|
||||
>
|
||||
@@ -935,19 +935,19 @@ onMounted(() => {
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
:placeholder="[
|
||||
t('views.trace.task.startTime'),
|
||||
t('views.trace.task.endTime'),
|
||||
t('views.traceManage.task.startTime'),
|
||||
t('views.traceManage.task.endTime'),
|
||||
]"
|
||||
style="width: 100%"
|
||||
></a-range-picker>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('views.trace.task.comment')" name="comment">
|
||||
<a-form-item :label="t('views.traceManage.task.comment')" name="comment">
|
||||
<a-textarea
|
||||
v-model:value="modalState.from.comment"
|
||||
:auto-size="{ minRows: 2, maxRows: 6 }"
|
||||
:maxlength="250"
|
||||
:show-count="true"
|
||||
:placeholder="t('views.trace.task.commentPlease')"
|
||||
:placeholder="t('views.traceManage.task.commentPlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
|
||||
Reference in New Issue
Block a user