From e9060cf8f241536a896d69d0044769bd3b0e8d49 Mon Sep 17 00:00:00 2001 From: yangyin <1850366751@qq.com> Date: 星期五, 25 十月 2024 09:25:49 +0800 Subject: [PATCH] Merge branch 'test' of http://47.103.154.90:83/r/WI/Web.Admin.V1.0 into test --- src/components/chat/chatComponents/summaryCom/components/recordSet/components/TimeRange.vue | 62 ++++++++++++++++--------------- 1 files changed, 32 insertions(+), 30 deletions(-) diff --git a/src/components/chat/chatComponents/summaryCom/components/recordSet/components/TimeRange.vue b/src/components/chat/chatComponents/summaryCom/components/recordSet/components/TimeRange.vue index 674e9bd..74da627 100644 --- a/src/components/chat/chatComponents/summaryCom/components/recordSet/components/TimeRange.vue +++ b/src/components/chat/chatComponents/summaryCom/components/recordSet/components/TimeRange.vue @@ -47,7 +47,7 @@ <script setup lang="ts"> import { ElDatePicker } from 'element-plus'; import { definePropType } from 'element-plus/es/utils/vue/props/runtime'; -import { ref, type PropType, computed, watch } from 'vue'; +import { ref, type PropType, computed, watch, nextTick, onMounted } from 'vue'; import type { TimeRangeParam } from '../types'; import type { TimeRangeEnum } from './types'; import { timeRangeEnumMapTitle, timeRangeEnumMapValue } from './types'; @@ -71,73 +71,75 @@ type: Boolean, default: false, }, + + quickActive: { + type: Number as PropType<TimeRangeEnum>, + required: false, + }, }); const dateValue = defineModel({ type: definePropType<[string, string]>(Array), }); const emit = defineEmits(['change']); -/** - * 闇�瑕佸 dateValue 鏍煎紡鍖栵紝dataValue 缁撴潫鏃堕棿涓嶆槸23:59:59 - */ -const formatDateValue = computed({ - get: () => { - if (!dateValue.value) return null; - return [moment(dateValue.value[0]).format('YYYY-MM-DD 00:00:00'), moment(dateValue.value[1]).format('YYYY-MM-DD 23:59:59')] as [ - string, - string - ]; - }, - set: (value) => { - dateValue.value = value; - }, -}); +const dateChange = () => { + nextTick(() => { + emit('change', dateValue.value); + }); +}; const disabledDate = (date: Date) => { return date > CURRENT_DAY; }; -const resetQuickPickValue = () =>{ +const resetQuickPickValue = () => { quickPickValue.value = null; -} +}; const quickPickValue = ref<TimeRangeEnum>(null); + +const pickQuickRange = (val: TimeRangeEnum) => { + if(val==undefined) return; + quickPickValue.value = val; + dateValue.value = timeRangeEnumMapValue[val]().map((item) => formatDate(item)) as [string, string]; +}; const quickPickRangeClick = (val: TimeRangeEnum) => { if (quickPickValue.value === val) return; + pickQuickRange(val); - quickPickValue.value = val; - formatDateValue.value = timeRangeEnumMapValue[val]().map((item) => formatDate(item)) as [string, string]; + dateChange(); }; const offsetClickIsAllow = computed(() => !!dateValue.value && !props.disabled); const preDayClick = () => { if (!dateValue.value) return; dateValue.value[0] = moment(dateValue.value[0]).subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'); - dateValue.value = [...dateValue.value]; - resetQuickPickValue(); + dateChange(); + resetQuickPickValue(); }; const nextDayClick = () => { if (!dateValue.value) return; dateValue.value[1] = moment(dateValue.value[1]).add(1, 'day').format('YYYY-MM-DD HH:mm:ss'); - dateValue.value = [...dateValue.value]; + dateChange(); + resetQuickPickValue(); }; const datePickerChange = (va) => { resetQuickPickValue(); + dateChange(); }; -watch( - () => formatDateValue.value, - (val) => { - emit('change', val); +onMounted(() => { + if(props.quickActive !=null){ + pickQuickRange(props.quickActive); } -); +}); defineExpose({ - formatDateValue -}) + formatDateValue: dateValue, +}); </script> <style scoped lang="scss"> :deep(.el-date-editor .el-range__close-icon--hidden) { -- Gitblit v1.9.3