包解决的老铁 ~~~~
先看效果 选择一个日期以后 前后可选的数据范围控制在特定的范围内 此处以30天为例
<template>
<div>
<a-range-picker :disabled-date="disabledDate" v-model="priceRangeDate" @calendarChange="calendarPriceRangeChange" @change="changePriceRangeDate" />
</div>
</template>
<script>
import moment from 'moment';
export default {
data() {
return {
priceRangeDate: [],
selectPriceDate: '',
offsetDays: 86400000 * 30 //最多选择30天
}
},
methods:{
moment,
//选择完时间 清空限制
changePriceRangeDate() {
this.selectPriceDate = ''
},
//选择开始时间/结束时间
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
}
}
}
};
</script>
后续可以通过dayjs或moment.js拿到相应时间戳进行交互