elementui中el-date-picker的type=monthrange时限制开始月份跟结束月份不能超过12个月
时间: 2023-12-06 13:45:30 浏览: 223
可以通过监听 `change` 事件,然后在事件处理函数中进行判断和设置限制。
首先,我们需要给 `el-date-picker` 组件绑定 `change` 事件:
```html
<el-date-picker
v-model="dateRange"
type="monthrange"
@change="handleDateChange"
></el-date-picker>
```
然后在组件的 `methods` 中定义 `handleDateChange` 方法,对选择的日期进行判断和设置:
```js
methods: {
handleDateChange() {
const startMonth = this.dateRange[0].getMonth();
const endMonth = this.dateRange[1].getMonth();
if (endMonth - startMonth > 11) {
const newEndMonth = startMonth + 11;
this.dateRange[1] = new Date(this.dateRange[1].getFullYear(), newEndMonth, 0);
}
}
}
```
在 `handleDateChange` 方法中,我们首先获取选择的开始月份和结束月份,然后判断它们之间的月份数是否超过了 12 个月。如果超过了,我们就将结束日期设置为开始日期往后推 11 个月的月末日期。
需要注意的是,我们不能直接修改 `this.dateRange[1]` 的属性,因为 Vue 无法检测到这种修改。因此,我们需要将修改后的日期重新赋值给 `this.dateRange[1]`。
阅读全文