fix:cdr添加结束时间范围搜索
This commit is contained in:
@@ -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',
|
||||||
|
|||||||
@@ -787,6 +787,9 @@ const local:any = {
|
|||||||
pleclientname:'请输入设备名',
|
pleclientname:'请输入设备名',
|
||||||
search:'搜索',
|
search:'搜索',
|
||||||
reset:'重置',
|
reset:'重置',
|
||||||
|
timerange:'结束时间范围',
|
||||||
|
startTime:'开始时间',
|
||||||
|
endTime:'结束时间'
|
||||||
},
|
},
|
||||||
kyc:{
|
kyc:{
|
||||||
title:'KYC实名认证审核',
|
title:'KYC实名认证审核',
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ type SearchModel = {
|
|||||||
pageSize: number;
|
pageSize: number;
|
||||||
userName?: string;
|
userName?: string;
|
||||||
clientName?: string;
|
clientName?: string;
|
||||||
|
endTimeS?:string;
|
||||||
|
endTimeE?:string;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 格式化通话时长
|
// 格式化通话时长
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user