通过iview组件库可以得到: DatePicker无法直接实现月份的范围选择,但是发现,可以通过设置属性 options
对象中的 disabledDate
可以设置不可选择的日期。
HTML代码:
<DatePicker
type="month"
placeholder="请选择起始月"
style="width: 200px"
:options="optionsStart"
@on-change="onChangeStart"
></DatePicker>
<span> - </span>
<DatePicker
type="month"
placeholder="请选择终止月"
style="width: 200px"
:options="optionsEnd"
@on-change="onChangeEnd"
></DatePicker>
JS代码
data() {
return {
startTime: null,
endTime: null,
optionsStart: {
disabledDate: (date) => {
if (this.endTime) {
const end = this.getDate(this.endTime);
return date > end;
}
},
},
optionsEnd: {
disabledDate: (date) => {
if (this.startTime) {
const start = this.getDate(this.startTime);
return date < start;
}
},
},
};
},
methods: {
// 格式化日期
getDate(strDate) {
let monthStr = strDate.split("-")[1];
let newMonthStr = parseInt(monthStr) + "";
strDate = strDate.split("-")[0] + "-" + newMonthStr + "-1";
var date = eval(
"new Date(" +
strDate
.replace(/\d+(?=-[^-]+$)/, function (a) {
return parseInt(a, 10) - 1;
})
.match(/\d+/g) +
")"
);
return date;
},
onChangeStart(date) {
this.startTime = date;
},
onChangeEnd(date) {
this.endTime = date;
},
},