我在使用el-date-picker时,如果添加了pickerOptions,就会导致在一开始点击选择框,日期弹出框弹出时,确认按钮置灰不可操作,如果此时有了默认事件,就意味着我想点进来就只更改时分秒,确认按钮不可操作,只有重新选择起始时间或者起始时间都更改,确认按钮才可操作,下面这种写法可以解决:
HTML
<el-date-picker
v-model="timeData"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format='yyy-MM-dd HH:mm:ss'
:editable='false'
:default-time="['00:00:00','23:59:59']"
:picker-options='pickerOptions'>
</el-date-picker>
data
//日期限制选择7天,禁用7天之后的日期
choiceDate0:'',
pickerOptions:{
onPick:({maxDate,minDate})=>{
this.choiceDate0=minDate.getTime();
if(maxDate){
this.choiceDate0='';
}
},
disabledData:time=>{
if(this.choiceDate0){
const len=6*24*3600*1000;
const min=this.choiceDate0-len;
let max=this.choiceDate0+len;
if(max>new Data()){
max=new Data();
}
return time.getTime()<min ||time.getTime()>max;
}
const nowTime=this.$common.dateFormat(new Date());
const timeArr=nowTime.split('');
const a=timeArr[0]+'23:59:59';
const t =this.$common.dateToSecond(a)*1000;
return time.getTime()>t;
}
}
mounted
this.getDefaultTime();
method
getDefaultTime(){
this.timeData=[];
const todayStart=new Date(new Date(new Date().toLocaleDateString()).getTime());
lconstet todayEnd=new Date(new Date(new Date().toLocaleDateString()).getTime()+24*60*60*100-1);
this.timeData[0]=this.$moment(todayStart).format('YYYY-MM-DD HH:mm:ss');
this.timeData[1]=this.$moment(todayEnd).format('YYYY-MM-DD HH:mm:ss');
}