ElementUI disabledData
小花花inhere 人气:0关于结束时间不能大于开始时间的问题,在elementui里我们用官方提供的 disabledDate 选项来解决。
HTML:给选择器加上:picker-options属性
//开始时间 <el-date-picker v-model="startDate"></el-date-picker> //截止时间 <el-date-picker v-model="endDate" :picker-options="endDateOpt"></el-date-picker>
DATA:
我这里就简略写下关键的。
data() { return { startDate: null, endDate: null, endDateOpt: { disabledData: (time) => { return time.getTime() < this.startDate; } } } }
以上是单个选择框的,如果是daterange或datetimerange的话:
<el-date-picker v-model="value1" type="daterange" :picker-options="pickerOptions"> </el-date-picker>
data() { return { value: '', pickerOptions2: { disabledDate: (time) => { return time.getTime() > new Date(2017, 11, 30) || time.getTime() < new Date(2017, 11, 11);//注意是||不是&& } } }; }
PS:element 时间选择器,disabledDate同时限制多个条件
<el-date-picker v-model="listQuery.allDate" type="daterange" range-separator="-" unlink-panels value-format="yyyy-MM-dd" start-placeholder="开始日期" end-placeholder="结束日期" class="data_piccker" style="width:240px" :picker-options="pickerOptions" ></el-date-picker>
pickerOptions: { onPick: ({ maxDate, minDate }) => { this.pickerMinDate = minDate.getTime() if (maxDate) { this.pickerMinDate = '' } }, disabledDate: (time) => { const year = 365 * 24 * 3600 * 1000 //一年前的时间戳 let lastyear = this.pickerMinDate - year //已经选择一个日期则…… if (this.pickerMinDate !== '') { const day31 = 31 * 24 * 3600 * 1000 //选中的日期前推31天,的时间戳 let datarangeb = this.pickerMinDate - day31 //选中的日期后推31天 let datarangea = this.pickerMinDate + day31 //如果后推的日期早于今天,则设置为今日 if (datarangea > new Date()) { datarangea = new Date() } //使用或||可以同时限制多个条件 return time.getTime() < datarangeb || time.getTime() > datarangea } //未选择日期,默认状态当天之前不可选,一年之前不可取 return time.getTime() > Date.now() || time.getTime() < lastyear }, },
加载全部内容