Ant Design of Vue日期选择框a-date-picker

Ant Design of Vue日期选择框a-date-picker

问题:需要提供两个日期选择框,一个“开始时间”一个“结束时间”,且应该有限制

请添加图片描述

两种情况限制

  1. 开始时间应早于结束时间
  2. 开始时间与结束时间的间隔不能太大,太大会影响请求接口的速度,应适当给出合理的范围

利用组件a-date-picker属性disabled-date解决:

disabledDateStart:

  • 调用时间:在先选择了结束时间时,点击开始时间日期选择框,检查disabledDateStart
  • 作用:提供结束时间选择范围

disabledDateEnd:

  • 调用时间:在先选择了开始时间时,点击结束时间日期选择框,检查disabledDateEnd
  • 作用:提供开始时间选择范围

timeStart:用来记录选择的开始时间

timeEnd:用来记录选择的结束时间

onChangeStart:

  • 调用时间:选择开始时间后调用
  • 作用:把在开始日期选择框选择的时间赋值给timeStart

onChangeEnd:

  • 调用时间:选择结束时间后调用
  • 作用:把在结束日期选择框选择的时间赋值给timeEnd
onChangeStart(time) {
    this.timeStart = time
    console.log('开始时间'+time)	
},
onChangeEnd(time) {
    this.timeEnd = time
    console.log('结束时间'+time)
},
disabledDateStart(current) {
    if(this.timeStart==null&&this.timeEnd==null){
        return;
    }
    //此处的if语句是用来保证在每次选择日期时没有限制
    return current >= moment(this.timeEnd).endOf('day') || current <= moment(this.timeEnd).add(-1, 'months');
    //此时已选择结束时间,限制分为两部分,前一部分是限制开始时间应早于已确定的结束时间,后一部分是限制开始时间与结束时间之间的间隔不应超过一个月
},
disabledDateEnd(current) {
    if(this.timeStart==null&&this.timeEnd==null){
        return;
    }
    return current <= moment(this.timeStart).endOf('day') || current >= moment(this.timeStart).add(1, 'months');
    },

效果:

  1. 选择开始时间后,选择结束时间

请添加图片描述

  1. 选择结束时间后,选择开始时间

请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值