最近做项目,写到一个日期合同生效日期,失效日期的一个东西,利用elementUI组件的日期选择器,那么既然填了生效日期,必然填失效日期的时候生效日期之前的日期是不能选的。问题来了,怎么写呢。
<el-date-picker
v-model="value1"
type="date"
placeholder="选择日期">
</el-date-picker>
在文档中我们可以找到可以通过设置 picker-options 属性来设置当前时间日期选择器特有的选项,该属性具体参数如下图:
我们可以看出,可以通过设置 disabledDate 来禁用范围外的时间选项,就可以限制可选的范围了。而 disabledDate 是一个函数,返回boolean类型。
开动,写。
代码如下
<template>
<el-form ref="form" :model="form" label-width="80px">
<el-form-item label="开始生效时间">
<el-date-picker v-model="form.startTime" type="date" placeholder="选择日期" :picker-options="startTimePicker"/>
</el-form-item>
<el-form-item label="失效时间">
<el-date-picker v-model="form.endTime" type="date" placeholder="选择日期" :picker-options="endTimePicker"/>
</el-form-item>
</el-form>
</template>
<script>
export default {
name: '',
data() {
return {
form: {
startTime: null,
endTime: null,
},
};
},
computed: {
startTimePicker() {
return {
disabledDate: time => (this.form.endTime ? time.getTime() > new Date(this.form.endTime).getTime() : false),
};
},
endTimePicker() {
return {
disabledDate: time => (this.form.startTime ? time.getTime() < new Date(this.form.startTime).getTime() : false),
};
},
},
methods: {},
};
</script>
<style lang="scss" scoped>
</style>
大功告成。效果如下