Element DatePicker 日期选择器限定日期选择范围

最近工作当中遇到一个小问题,就是使用Element日期控件DatePicker的时候,当一个查询条件为日期区间,我要查两个月之间的数据,分别选择开始月和结束月,会出现一个问题,那就是结束月选的日期可以比开始月小,开始月选的日期可以比结束月大
就像这样
图片一
此时代码是这样写的

<li class="option-item">
	<span class="label">开始月</span>
	<el-date-picker v-model="smonthdateVal" type="month" class="datePickerClass" format="yyyy-MM" value-format="yyyy-MM">
	</el-date-picker>
</li>
<li class="option-item">
	<span class="label">结束月</span>
	<el-date-picker v-model="emonthdateVal" type="month" class="datePickerClass" format="yyyy-MM" value-format="yyyy-MM">
	</el-date-picker>
</li>

要想选中开始月之后,选择结束月不能比开始月小,选中结束月之后,选择开始月不能比结束月大,只需加一个picker-options属性就可以了,在picker-options中加上disabledDate属性用于限制日期选择的范围
代码如下

<li class="option-item">
	<span class="label">开始月</span>
	<el-date-picker v-model="smonthdateVal" type="month" class="datePickerClass" format="yyyy-MM" :picker-options="startMonthOption" @change="selectStartMonth">
	</el-date-picker>
</li>
<li class="option-item">
	<span class="label">结束月</span>
	<el-date-picker v-model="emonthdateVal" type="month" class="datePickerClass" format="yyyy-MM" :picker-options="endMonthOption" @change="selectEndMonth">
	</el-date-picker>
</li>

data中定义全局变量startMonthOption和endMonthOption
图片二
两个change方法如下

//开始月日期控件点击时触发此方法
selectStartMonth() {
	this.endMonthOption = {
		disabledDate: (time) => {
			if(this.smonthdateVal != '') {
				return time.getTime() < this.smonthdateVal;
			}
		}
	};
},
//结束月日期控件点击时触发此方法
selectEndMonth() {
	this.startMonthOption = {
		disabledDate: (time) => {
			if(this.emonthdateVal != '') {
				return time.getTime() > this.emonthdateVal;
			}
		}
	};
},

效果如下图
图片三
图片四
注:加picker-options属性之后日期控件的数据格式必须是日期格式,也就是不能加value-format=“yyyy-MM”,要想转换成字符串格式,只能后期通过方法转换,并且要保证每次执行change方法时,日期数据的格式都是日期格式,否则disabledDate属性不起作用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值