假如 需求是 当前月往后不可选 且 可以往前选择近半年 例如可选范围是 2020-10 ~ 2021-05(结束时间以当前向前推半年),代码没有优化 里面很多方法可以合并 着急就先丢上来了 勿喷😉
<el-date-picker
v-model="value2"
type="month"
placeholder="选择月"
:picker-options="pickerOptions"
>
</el-date-picker>
pickerOptions: {
disabledDate: (time) => {
const date = new Date();
const year = date.getFullYear();
let month = date.getMonth() + 1;
if (month >= 1 && month <= 9) {
month = '0' + month;
}
const currentdate = year.toString() + month.toString(); // 当前年月
const page_year = time.getFullYear();
let page_month = time.getMonth() + 1;
if (page_month >= 1 && page_month <= 9) {
page_month = '0' + page_month;
}
const pageDate = page_year.toString() + page_month.toString(); //页面中的年月
let min_year = date.getFullYear();
let min_month = date.getMonth() + 1 - 5;
if(min_month <= 0) {
min_year = min_year - 1;
min_month = 12 + min_month;
}
if (min_month >= 1 && min_month <= 9) {
min_month = '0' + min_month;
}
const minDate = min_year.toString() + min_month.toString(); // 最小年月
return currentdate < pageDate || pageDate < minDate;
},
},