vue2+ElementUI时间选择器限制可选范围为今天往前7天内的任意一天

题目有2个重点:1、可选范围为今天往前7天(含今天)2、只能选择7天内的任意一天

由此可知,用户选择的最大日期和最小日期为同一天,即只能选择一天,也就是说,使用了时间范围插件,但是model中的两个日期是同一天。

HTML:

 <el-date-picker
      class="datePicker"
      v-model="params.dates"
      type="daterange"
      range-separator="-"
      :start-placeholder="today"
      :end-placeholder="today"
      value-format="yyyy-MM-dd"
      format="yyyy-MM-dd"
      @change="changeParam_data"
      @focus="resetMinDate"
      v-show="routeName !== 'keySites' && routeName !== 'equipmentDetails'"
      :picker-options="pickerOptions"
    >
    </el-date-picker>

data中设置相应的值:

 data() {
    return {
     
      today:
        new Date().getFullYear() +
        "-" +
        (new Date().getMonth() + 1) +
        "-" +
        new Date().getDate(),
      pickerMinDate: "",
      pickerOptions: {
        disabledDate: (time) => {
          //一天的毫秒数:60*60*24*1000*1 = 8.64e6
          if (this.pickerMinDate !== "") {
            // let maxTime = new Date(this.pickerMinDate).getTime()+1000*60*60*24;
            let minTime = new Date(this.pickerMinDate).getTime();
            let chooseTime = new Date(time).getTime();
            return chooseTime > minTime || chooseTime < minTime;
          } else {
            return (
              time.getTime() > Date.now() - 8.64e6 ||
              time.getTime() <
                new Date(new Date().getTime() - 60 * 60 * 1000 * 24 * 7)
            );
          }
         
        },
        onPick: ({ maxDate, minDate }) => {
          this.pickerMinDate = minDate;

        },
      },
      dateValue: "2022-01-01",
   }
  },

最后在method中设置相应的方法:(在第二次选择时清空时间值)

methods: {
  
    resetMinDate() {
      this.pickerMinDate = "";
    },
  },

 

如此,大功告成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值