1. 程式人生 > 其它 >ant元件DatePicker 日期選擇框動態設定日期可選擇範圍不超過31天

ant元件DatePicker 日期選擇框動態設定日期可選擇範圍不超過31天

 
        <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資料,使下次再選擇時間的時候對開始時間不限制選擇範圍