神采飞阳

 

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数据,使下次再选择时间的时候对开始时间不限制选择范围

posted on 2022-05-23 10:09  神采飞阳  阅读(1471)  评论(0编辑  收藏  举报

导航