ant元件DatePicker 日期選擇框動態設定日期可選擇範圍不超過31天
阿新 • • 發佈:2022-05-23
<a-range-picker v-model:value="searchData.date" :format="'YYYY-MM-DD'" :placeholder="['開始日期', '結束日期']" :allow-clear="false" :disabled-date="disabledDate" @calendarChange="calendarChange" @blur="blurDate" /> const startDate = ref<any>(); const calendarChange = (dates) => { startDate.value = dates; }; const disabledDate = (current: Moment) => { if (startDate.value && startDate.value[0]) { return ( current < moment(startDate.value[0]).subtract(31, "days") || current > moment(startDate.value[0]).add(31, "days") ); } else { return false; } }; const blurDate = () => { startDate.value = undefined; };
首先calendarChange 函式獲取到時間選擇框的點選時間的變化並回調資料存入startDate中,然後disabledDate 函式根據moment(startDate.value[0])獲取到選擇的開始時間,並根據該時間向前後各擴大31天,超出31天的時間禁用。最後使用blurDate函式在失去焦點的時候重置startDate資料,使下次再選擇時間的時候對開始時間不限制選擇範圍