From 60621705563c708b3c59dea9183683df26221564 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 12 May 2025 18:18:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B7=9F=E8=B8=AA=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=87=E9=A2=98=EF=BC=8C=E7=BC=96=E5=8F=B7?= =?UTF-8?q?=E5=90=8E=E9=9D=A2=E5=8A=A0=E4=BB=BB=E5=8A=A1=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/i18n/locales/en-US.ts | 1 + src/i18n/locales/zh-CN.ts | 1 + src/views/system/user/index.vue | 28 ++-- src/views/traceManage/task/analyze.vue | 3 + .../task/components/TaskInfoIcon.vue | 107 +++++++++++++ src/views/traceManage/task/data.vue | 5 +- src/views/traceManage/task/index.vue | 140 ++++++++++++------ 7 files changed, 223 insertions(+), 62 deletions(-) create mode 100644 src/views/traceManage/task/components/TaskInfoIcon.vue diff --git a/src/i18n/locales/en-US.ts b/src/i18n/locales/en-US.ts index 96ae7b3b..99477d83 100644 --- a/src/i18n/locales/en-US.ts +++ b/src/i18n/locales/en-US.ts @@ -1085,6 +1085,7 @@ export default { }, task: { traceId: 'Tracing No', + title: 'Tracing Title', trackType: 'Tracing Type', trackTypePlease: 'Please select a tracing type', creater: 'Created by', diff --git a/src/i18n/locales/zh-CN.ts b/src/i18n/locales/zh-CN.ts index f7440396..8d41aa2a 100644 --- a/src/i18n/locales/zh-CN.ts +++ b/src/i18n/locales/zh-CN.ts @@ -1085,6 +1085,7 @@ export default { }, task: { traceId: '跟踪编号', + title: '跟踪标题', trackType: '跟踪类型', trackTypePlease: '请选择跟踪类型', creater: '创建人', diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index b115803b..479dcf8f 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -762,7 +762,7 @@ function fnGetList(pageNum?: number) { } listUser(toRaw(queryParams)).then(res => { - if (res.code === RESULT_CODE_SUCCESS) { + if (res.code === RESULT_CODE_SUCCESS) { // 取消勾选 if (tableState.selectedRowKeys.length > 0) { tableState.selectedRowKeys = []; @@ -872,10 +872,7 @@ onMounted(() => { - + { - + { bordered :show-time="{ format: 'HH:mm:ss' }" format="YYYY-MM-DD HH:mm:ss" - value-format="x" style="width: 100%" > @@ -1185,7 +1184,10 @@ onMounted(() => { - + { - + {{ modalState.from.phone }} @@ -1440,7 +1439,10 @@ onMounted(() => { modalState.from.userId !== userStore.userId " > - + { {{ t('views.traceManage.task.traceId') }}:  {{ traceId }} + + diff --git a/src/views/traceManage/task/components/TaskInfoIcon.vue b/src/views/traceManage/task/components/TaskInfoIcon.vue new file mode 100644 index 00000000..093be150 --- /dev/null +++ b/src/views/traceManage/task/components/TaskInfoIcon.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/src/views/traceManage/task/data.vue b/src/views/traceManage/task/data.vue index f812ae34..ff7d0ddf 100644 --- a/src/views/traceManage/task/data.vue +++ b/src/views/traceManage/task/data.vue @@ -10,6 +10,7 @@ import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; import useDictStore from '@/store/modules/dict'; import useTabsStore from '@/store/modules/tabs'; import { type Dayjs } from 'dayjs'; +import TaskInfoIcon from './components/TaskInfoIcon.vue'; import useI18n from '@/hooks/useI18n'; import { getTraceData, listTraceData } from '@/api/trace/task'; import { decode } from 'js-base64'; @@ -215,7 +216,7 @@ function fnTableChange(pagination: any, filters: any, sorter: any, extra: any) { fnGetList(1); } -/**查询备份信息列表, pageNum初始页数 */ +/**查询数据信息列表, pageNum初始页数 */ function fnGetList(pageNum?: number) { if (tableState.loading) return; tableState.loading = true; @@ -429,6 +430,8 @@ onMounted(() => { {{ t('views.traceManage.task.traceId') }}:  {{ traceId }} + + diff --git a/src/views/traceManage/task/index.vue b/src/views/traceManage/task/index.vue index 0f630050..0a1638a8 100644 --- a/src/views/traceManage/task/index.vue +++ b/src/views/traceManage/task/index.vue @@ -40,6 +40,9 @@ let dict: { traceInterfaces: [], }); +/**开始结束时间 */ +let queryRangePicker = ref<[Dayjs, Dayjs] | undefined>(undefined); + /**网元类型_多neId */ let neCascaderOptions = ref[]>([]); @@ -47,9 +50,12 @@ let neCascaderOptions = ref[]>([]); let queryParams = reactive({ /**网元类型 */ neType: '', - /**记录时间 */ - startTime: '', - endTime: '', + /**开始时间 */ + startTime: undefined as undefined | number, + /**结束时间 */ + endTime: undefined as undefined | number, + /**标题 */ + title: '', /**排序字段 */ sortField: 'start_time', /**排序方式 */ @@ -64,13 +70,15 @@ let queryParams = reactive({ function fnQueryReset() { queryParams = Object.assign(queryParams, { neType: '', - startTime: '', - endTime: '', + startTime: undefined, + endTime: undefined, + title: '', sortField: 'start_time', sortOrder: 'asc', pageNum: 1, pageSize: 20, }); + queryRangePicker.value = undefined; tablePagination.current = 1; tablePagination.pageSize = 20; fnGetList(); @@ -107,6 +115,13 @@ let tableColumns: ColumnsType = [ align: 'left', width: 150, }, + { + title: t('views.traceManage.task.title'), + dataIndex: 'title', + align: 'left', + width: 200, + ellipsis: true, + }, { title: t('views.traceManage.task.trackType'), dataIndex: 'traceType', @@ -237,6 +252,19 @@ function fnGetList(pageNum?: number) { if (pageNum) { queryParams.pageNum = pageNum; } + + // 时间范围 + if ( + Array.isArray(queryRangePicker.value) && + queryRangePicker.value.length > 0 + ) { + queryParams.startTime = queryRangePicker.value[0].valueOf(); + queryParams.endTime = queryRangePicker.value[1].valueOf(); + } else { + queryParams.startTime = undefined; + queryParams.endTime = undefined; + } + listTraceTask(toRaw(queryParams)).then(res => { if (res.code === RESULT_CODE_SUCCESS) { // 取消勾选 @@ -275,11 +303,12 @@ type ModalStateType = { from: { id?: string; neList: string; // 网元列表 neType_neId 例如 UDM_001,AMF_001 - /**1-Interface,2-Device,3-User */ - traceType: string; startTime?: number; endTime?: number; + title: string; remark?: string; + /**1-Interface,2-Device,3-User */ + traceType: string; /**1接口跟踪 */ interfaces?: string; /**2设备跟踪 */ @@ -306,10 +335,11 @@ let modalState: ModalStateType = reactive({ id: undefined, neList: '', traceId: undefined, - traceType: '3', startTime: undefined, endTime: undefined, + title: '', remark: '', + traceType: '3', /**1接口跟踪 */ interfaces: '', /**2设备跟踪 */ @@ -345,6 +375,12 @@ const modalStateFrom = Form.useForm( message: t('views.traceManage.task.rangePickerPlease'), }, ], + title: [ + { + required: true, + message: t('common.inputPlease'), + }, + ], // 用户跟踪 imsi: [ { @@ -499,7 +535,7 @@ function fnModalOpenByEdit(id?: string) { */ function fnModalOk() { const from = toRaw(modalState.from); - let valids = ['traceType', 'neList', 'endTime']; + let valids = ['title', 'traceType', 'neList', 'endTime']; if (from.traceType === '1') { valids = valids.concat(['interfaces']); } @@ -577,7 +613,7 @@ onMounted(() => { ); // 获取网元网元列表 - neCascaderOptions.value = neListStore.getNeSelectOtions.filter( + neCascaderOptions.value = neListStore.getNeCascaderOptions.filter( (item: any) => { return ['AMF', 'AUSF', 'SMF', 'UDM', 'PCF'].includes(item.value); // 过滤不可用的网元 } @@ -616,32 +652,15 @@ onMounted(() => { - - - - - - + + @@ -658,6 +677,22 @@ onMounted(() => { + + + + + + @@ -826,6 +861,28 @@ onMounted(() => { :label-wrap="true" :disabled="!!modalState.from.id" > + + + + + + + + { format="YYYY-MM-DD HH:mm:ss" style="width: 100%" :disabled-date="fnRangePickerDisabledDate" - :placeholder="[ - t('views.traceManage.task.startTime'), - t('views.traceManage.task.endTime'), - ]" > - - -