diff --git a/src/components/form/datePicker/index.vue b/src/components/form/datePicker/index.vue index 3939893..032bee7 100644 --- a/src/components/form/datePicker/index.vue +++ b/src/components/form/datePicker/index.vue @@ -7,7 +7,6 @@ > - { if (props.initialTimeValue) { timeValue.value = props.initialTimeValue } + + nextTick(() => { + // 初始化时检查按钮状态 + checkInitialButtonStatus() + }) + timeChange(3) }) +// 添加初始化按钮状态检查方法 +const checkInitialButtonStatus = () => { + if (timeValue.value && timeValue.value.length >= 2) { + const endTime = timeValue.value[1] + const currentDate = window.XEUtils.toDateString(new Date(), 'yyyy-MM-dd') + + // 如果结束时间小于当前日期,则不禁用"下一个"按钮 + if (new Date(endTime + ' 00:00:00').getTime() < new Date(currentDate + ' 00:00:00').getTime()) { + preDisabled.value = false + } + } +} + // 添加统一的事件触发方法 const emitChange = () => { nextTick(() => { @@ -115,11 +133,9 @@ const emitChange = () => { // 选择时间范围 const timeChange = (e: number) => { backDisabled.value = false - preDisabled.value = true count.value = 0 if (e == 1) { disabledPicker.value = true - timeValue.value = [setTime(1), setTime()] } else if (e == 2) { disabledPicker.value = true @@ -140,7 +156,6 @@ const timeChange = (e: number) => { } else if (e == 5) { disabledPicker.value = false backDisabled.value = true - preDisabled.value = true timeValue.value = [setTime(), setTime()] } if (e == 1 || e == 2) { @@ -148,10 +163,31 @@ const timeChange = (e: number) => { } else { timeFlag.value = 1 } + + // 检查按钮状态 + checkButtonStatus() + // 触发 change 事件 emitChange() } +// 添加按钮状态检查方法 +const checkButtonStatus = () => { + if (timeValue.value && timeValue.value.length >= 2) { + const endTime = timeValue.value[1] + const currentDate = window.XEUtils.toDateString(new Date(), 'yyyy-MM-dd') + + // 如果结束时间大于等于当前日期,且 nextFlag 为 false,则禁用"下一个"按钮 + if (!props.nextFlag) { + if (new Date(endTime + ' 00:00:00').getTime() >= new Date(currentDate + ' 00:00:00').getTime()) { + preDisabled.value = true + } else { + preDisabled.value = false + } + } + } +} + // 当前 const nowTime = () => { // console.log(interval.value, '000000000')