diff --git a/web/main.js b/web/main.js index 1342a47..9eb5165 100644 --- a/web/main.js +++ b/web/main.js @@ -194,39 +194,30 @@ const app = createApp({ * @returns {boolean} 是否禁用 */ const disabledDate = (date) => { - if (!date || !state.exportForm.dateRange) return false; + if (!date) return false; // 如果已经选择了开始时间,计算结束时间限制 - if (state.exportForm.dateRange[0]) { + if (state.exportForm.dateRange && state.exportForm.dateRange[0]) { const startTime = new Date(state.exportForm.dateRange[0]); const oneYearLater = new Date(startTime); oneYearLater.setFullYear(startTime.getFullYear() + 1); oneYearLater.setDate(oneYearLater.getDate() - 1); // 减去一天以确保不超过一年 - const oneYearEarlier = new Date(startTime); - oneYearEarlier.setFullYear(startTime.getFullYear() - 1); - oneYearEarlier.setDate(oneYearEarlier.getDate() + 1); // 加上一天 - - // 结束时间不能早于开始时间一年前,也不能晚于开始时间一年后 - return date < oneYearEarlier || date > oneYearLater; + // 只限制结束时间不能超过开始时间一年后 + if (date > oneYearLater) return true; } // 如果已经选择了结束时间,计算开始时间限制 - if (state.exportForm.dateRange[1]) { + if (state.exportForm.dateRange && state.exportForm.dateRange[1]) { const endTime = new Date(state.exportForm.dateRange[1]); - const oneYearLater = new Date(endTime); - oneYearLater.setFullYear(endTime.getFullYear() + 1); - oneYearLater.setDate(oneYearLater.getDate() - 1); // 减去一天 - const oneYearEarlier = new Date(endTime); oneYearEarlier.setFullYear(endTime.getFullYear() - 1); oneYearEarlier.setDate(oneYearEarlier.getDate() + 1); // 加上一天 - // 开始时间不能晚于结束时间一年后,也不能早于结束时间一年前 - return date < oneYearEarlier || date > oneYearLater; + // 只限制开始时间不能早于结束时间一年前 + if (date < oneYearEarlier) return true; } - // 默认情况下不禁用任何日期 return false; }; @@ -987,15 +978,8 @@ const app = createApp({ Vue.watch(() => state.exportForm.dateRange, (newVal) => { // 触发日期选择器重新计算禁用状态 if (exportFormRef.value && exportFormRef.value.$el) { - // 查找日期选择器元素并强制重新渲染 - const datePicker = exportFormRef.value.$el.querySelector('.el-date-editor'); - if (datePicker) { - // 通过临时移除再添加来强制重新渲染 - const parent = datePicker.parentElement; - const nextSibling = datePicker.nextSibling; - parent.removeChild(datePicker); - parent.insertBefore(datePicker, nextSibling); - } + // 通过强制更新组件状态来重新计算禁用日期 + exportFormRef.value.$forceUpdate(); } }, { deep: true });