element ui 时间控件DateTimePicker动态限制时间范围为固定时间

需求简介

时间控件开始日期到结束日期是一个固定时间,例如30天,选中开始时间为15号,截止日期为从开始时间向后30天,其余的禁止选择。

效果截图

在这里插入图片描述

代码块

// html
<el-date-picker
	v-model="query.cdate"
	type="daterange"
	range-separator="-"
	value-format="yyyy-MM-dd"
	:editable="false"
	:picker-options="pickerOptions"
>
</el-date-picker>

// js
data(){
  return {
     selectData: '',
     pickerOptions: {
      // 点击时,选择的是开始时间,也就是minDate
      onPick: ({ maxDate, minDate }) => {
         this.selectData = minDate.getTime()
         if (maxDate) {
           // 解除限制
           this.selectData = ''
         }
      },
      disabledDate: (time) => {
          // 是否限制的判断条件
          if (!this.isNull(this.selectData)) {
            var date = new Date(this.selectData)
            // 这里就是限制的关键,大于或者小于开始时间之后30天的日期被禁用
			return (
                   date.getTime() > new Date(time).getTime() ||
                   date.getTime() < new Date(time).getTime() - 30 * 3600 * 24 * 1000
                    );
          } else {
            return false
          }
        }
     }
  }
},
methods:{
  // 检查是否为空
  isNull(value) {
    if (value) {
      return false
    }
    return true
  }
}
 
 
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值