具體效果如下:
未選擇時間時,最初選擇時間不能超過今天
選擇初始時間后,第二個選擇的時間前后不能超過初始時間的一個月。且此時下拉框變成禁用狀態(tài)。
例如:點擊7月15日后,在8月14日往后的日期全部禁止選中
7月15日前一個月的6月15日之前的日期也全部禁止選中
選好起始時間和結(jié)束時間后,下拉框與所有禁止選用的日期限制全部放開,以供下一輪的正常選擇
實現(xiàn)方法
組件demo:
<el-date-picker
v-model.trim="searchDate"
:picker-options="pickerOptions"
type="datetimerange"
size="small"
range-separator="~"
start-placeholder="開始日期"
end-placeholder="結(jié)束日期"
value-format="yyyy-MM-dd HH:mm">
</el-date-picker>
js:文章來源:http://www.zghlxwxcb.cn/news/detail-620746.html
data(){
return {
selectData: '', // 記錄初始點擊DatePicker日期選擇器的時間
pickerOptions: {
// onPick:選中日期后會執(zhí)行的回調(diào)。寫成箭頭函數(shù)否則this.selectData會報錯
// 點擊時,選擇的是初始時間,也就是minDate
onPick: ({ maxDate, minDate }) => {
this.selectData = minDate.getTime();
if (maxDate) {
// 第二次點擊日期選擇器,選好初始時間和結(jié)束時間后,解除禁用限制
this.selectData = ''
}
},
// 設(shè)置禁用狀態(tài),參數(shù)為當(dāng)前日期,要求返回 Boolean。同理寫成箭頭函數(shù)
disabledDate: (time) => {
// 是否限制的判斷條件,if里寫點擊了初始時間后的判斷條件
// 即第二個選擇的時間前后不能超過初始時間的一個月
if (this.selectData) {
return time.getTime() > new Date() || time.getTime() > this.selectData + 30 * 24 * 3600 * 1000 || time.getTime() < this.selectData - 30 * 24 * 3600 * 1000;
// time.getTime() > new Date() 為所選時間不能超過今日
// 30 * 24 * 3600 * 1000則為一個月的毫秒數(shù),根據(jù)自己的需求修改限制的時間范圍
} else {
return time.getTime() > new Date();
// 如果不需要限制所選時間不能超過今日,則直接return false即可
}
},
},
}
}
完工~THX!文章來源地址http://www.zghlxwxcb.cn/news/detail-620746.html
到了這里,關(guān)于ElementUI日期選擇器DatePicker限制所選時間范圍(例如限制前后時長不超一個月)的實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!