业务场景: 当选择完一个开始日期,截止结束日期不得大于x天
下图示例为限制范围为60天内
代码贴在这里 所用事件官方文档都有
<template>
<a-range-picker style="width:100%;" :disabled-date="disabledDate" :placeholder="['开始时间', '结束时间']" :value="createValue" format="YYYY-MM-DD" @change="onChange" @calendarChange="calendarPriceRangeChange" />
</template>
<script>
import moment from 'moment';
export default {
data() {
return {
createValue: [],
selectPriceDate: '',
offsetDays: 86400000 * 60 //最多选择60天
}
},
methods:{
moment,
//选择开始时间/结束时间
calendarPriceRangeChange(date) {
this.selectPriceDate = date[0]
},
//根据选择的开始时间/结束时间,动态渲染要禁用的日期
disabledDate(current) {
if (this.selectPriceDate) {
let selectV = moment(this.selectPriceDate, 'YYYY-MM-DD').valueOf()
return current > moment(new Date(selectV + this.offsetDays), 'YYYY-MM-DD') ||
current < moment(new Date(selectV - this.offsetDays), 'YYYY-MM-DD')
} else {
return false
}
},
onChange(dates, dateStrings) {
//选择完时间 清空限制
this.selectPriceDate = ''
this.createValue = dates;
this.queryParam.opSTime = dateStrings[0];
this.queryParam.opETime = dateStrings[1];
console.log("From: ", dates[0], ", to: ", dates[1]);
console.log("From: ", dateStrings[0], ", to: ", dateStrings[1]);
},
}
</script>