ele时间选择器多范围限制

相信大家在开发中也会遇到这种需求吧

 在指定范围内限制时间

而我当前的需求是:

1.所选日期不能大于当前日期

2.第二个框选择的时间必须大于第一个框

我知道ele里面有提供这个选择,但是情况特殊,无法使用ele提供的

 

 那么接下来就是重点了

两个问题:

1.如何限制选择时间

2.如何让两个框互相关联

第一个问题:

ele提供了一个方法disabledDate,我就直接贴代码了相信大家都能看懂

<el-date-picker
    v-model="time1"
    type="date"
    value-format="yyyy-MM-dd"
    placeholder="选择日期"
    :picker-options="pickerOptions"
   >
</el-date-picker>

// 注意:pickerOptions要写在data里面
pickerOptions: {
   disabledDate (time) {
      return time.getTime() > new Date()
   }
},

此时就已经达到了这个效果(只能选择今天之前的)

 第二个问题:

我在这里也是卡了很久哈,因为你第二个框的时间限制取决于第一个框选的数据,但是这个方法又是在data里面去定义的,所以取值就成了问题

// 在第一个框内添加一个change事件
@change="restrictTime2"

// 将第一个框的值挂到window上面去
restrictTime () {
   window.time1 = this.time1
},

提示: 这里有一个小坑哈,按照逻辑,我们需要同时满足多个条件应该使用&&,但是这里需要使用||

pickerOptions2: {
   disabledDate (time) {
      return (
        // 写法1 (不支持)
        // time.getTime() < new Date(window.time1) &&
        // time.getTime() > new Date()
        // 写法2 (支持)
        time.getTime() < new Date(window.time1) ||
        time.getTime() > new Date()
      )
   }
}

最后代码附上


<el-date-picker
     v-model="time1"
     type="date"
     value-format="yyyy-MM-dd"
     placeholder="选择日期"
     :picker-options="pickerOptions"
     @change="restrictTime"
>
</el-date-picker>

<el-date-picker
     v-model="time2"
     type="date"
     value-format="yyyy-MM-dd"
     placeholder="选择日期"
     :picker-options="pickerOptions2"
>
</el-date-picker>

// data里面写的
      pickerOptions: {
        disabledDate (time) {
          return time.getTime() > new Date()
        }
      },
      pickerOptions2: {
        disabledDate (time) {
          return (
            time.getTime() < new Date(window.time1) ||
            time.getTime() > new Date()
          )
        }
      }

// methods里面写的
    restrictTime () {
      window.time1 = this.time1
    },

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值