2
0

fix:cdr添加结束时间范围搜索

This commit is contained in:
zhongzm
2025-02-13 20:25:06 +08:00
parent 7f60eafc6d
commit 37989c71ec
4 changed files with 54 additions and 8 deletions

View File

@@ -787,6 +787,9 @@ const local: any = {
pleclientname:'Please enter device name', pleclientname:'Please enter device name',
search:'Search', search:'Search',
reset:'Reset', reset:'Reset',
timerange:'End time range',
startTime:'StartTime',
endTime:'EndTime'
}, },
kyc:{ kyc:{
title:'KYC Authentication Review', title:'KYC Authentication Review',

View File

@@ -787,6 +787,9 @@ const local:any = {
pleclientname:'请输入设备名', pleclientname:'请输入设备名',
search:'搜索', search:'搜索',
reset:'重置', reset:'重置',
timerange:'结束时间范围',
startTime:'开始时间',
endTime:'结束时间'
}, },
kyc:{ kyc:{
title:'KYC实名认证审核', title:'KYC实名认证审核',

View File

@@ -16,6 +16,8 @@ type SearchModel = {
pageSize: number; pageSize: number;
userName?: string; userName?: string;
clientName?: string; clientName?: string;
endTimeS?:string;
endTimeE?:string;
}; };
// 格式化通话时长 // 格式化通话时长

View File

@@ -1,8 +1,9 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
import { Form } from 'ant-design-vue'; import { Form, DatePicker } from 'ant-design-vue';
import type { FormInstance } from 'ant-design-vue'; import type { FormInstance } from 'ant-design-vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import type { Dayjs } from 'dayjs';
const { t } = useI18n(); const { t } = useI18n();
interface SearchModel { interface SearchModel {
@@ -10,6 +11,8 @@ interface SearchModel {
pageSize: number; pageSize: number;
userName?: string; userName?: string;
clientName?: string; clientName?: string;
endTimeS?: number;
endTimeE?: number;
} }
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
@@ -19,7 +22,9 @@ const props = withDefaults(defineProps<{
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
userName: '', userName: '',
clientName: '' clientName: '',
endTimeS: undefined,
endTimeE: undefined
}) })
}); });
@@ -37,8 +42,21 @@ const formModel = computed({
set: (val: SearchModel) => emit('update:model', val) set: (val: SearchModel) => emit('update:model', val)
}); });
const dateRange = ref<[Dayjs, Dayjs] | null>(null);
const handleDateRangeChange = (dates: [Dayjs, Dayjs] | null) => {
if (dates) {
formModel.value.endTimeS = dates[0].unix() * 1000;
formModel.value.endTimeE = dates[1].unix() * 1000 + 999;
} else {
formModel.value.endTimeS = undefined;
formModel.value.endTimeE = undefined;
}
};
function handleReset() { function handleReset() {
resetFields(); resetFields();
dateRange.value = null;
emit('reset'); emit('reset');
} }
@@ -69,16 +87,32 @@ function handleSearch() {
allow-clear allow-clear
/> />
</AFormItem> </AFormItem>
<AFormItem :label="t('page.cdr.timerange')">
<ARangePicker
v-model:value="dateRange"
:show-time="{ format: 'HH:mm:ss' }"
format="YYYY-MM-DD HH:mm:ss"
:placeholder="[
t('page.cdr.startTime'),
t('page.cdr.endTime')
]"
@change="handleDateRangeChange"
/>
</AFormItem>
<AFormItem class="flex-1 justify-end"> <AFormItem class="flex-1 justify-end">
<ASpace> <ASpace>
<AButton type="primary" ghost @click="handleSearch"> <AButton type="primary" ghost @click="handleSearch">
<template #icon> <template #icon>
<icon-mdi-search /> <icon-mdi-search />
</template>{{ t('page.cdr.search') }}</AButton> </template>
<AButton @click="handleReset"><template #icon> {{ t('page.cdr.search') }}
<icon-mdi-refresh /> </AButton>
</template> <AButton @click="handleReset">
{{ t('page.cdr.reset') }}</AButton> <template #icon>
<icon-mdi-refresh />
</template>
{{ t('page.cdr.reset') }}
</AButton>
</ASpace> </ASpace>
</AFormItem> </AFormItem>
</AForm> </AForm>
@@ -91,4 +125,8 @@ function handleSearch() {
padding: 16px; padding: 16px;
} }
} }
:deep(.ant-picker) {
width: 360px;
}
</style> </style>