vue中el-date-picker type=daterange日期清空时不回显的解决
作者:qiuqiu1894
这篇文章主要介绍了vue中el-date-picker type=daterange日期清空时不回显的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
vue中el-date-picker type=daterange日期清空时不回显
<div class="search-brank"> <label style="cursor:pointer;" @click="search"><i class="icon-date"></i></label> <el-date-picker :editable='false' v-model="datetime" type="daterange" unlink-panels class="datePickers" start-placeholder="开始日 期" end-placeholder="结束日期" @change="handleDate" :picker-options="pickerOptions0" clearable> </el-date-picker> </div>
赋值函数:
handleDate(){ if(this.datetime[0]!=null){ this.starttime=this.formDate(this.datetime[0]); this.endtime=this.formDate(this.datetime[1]); }else{ this.starttime=''; this.endtime=''; } },
问题:当控件清空或修改时,@change=“handleDate”不会触发,datetime并不会实时更新。并且实际上,如果清空了datetime是null,并没有this.datetime[0]=null,this.datetime[1]=null的说法。
解决:使用@input=“immediUpdate”。
<div class="search-brank"> <label style="cursor:pointer;" @click="search"><i class="icon-date"></i></label> <el-date-picker :editable='false' v-model="datetime" type="daterange" unlink-panels class="datePickers" start-placeholder="开始日 期" end-placeholder="结束日期" @input="immediUpdate" :picker-options="pickerOptions0" clearable> </el-date-picker> </div>
immediUpdate(e) { this.$nextTick(() => { if(e==null){ this.starttime=''; this.endtime=''; }else{ this.$set(this,"datetime", [e[0], e[1]]); this.starttime=this.formDate(this.datetime[0]); this.endtime=this.formDate(this.datetime[1]); } }); },
vue element-ui el-date-picker日期选择器清空按钮的坑
watch监听选择器 点击清空按钮时会报错
这是因为Element-ui中没有内置清除按钮的回调函数, 当点击清除按钮的时候,value会被设置为null。
解决方法
在下次调用之前,为value重新赋值,错误解决,
if (!newData) { newData = [] }
然后在为value重新赋值前把开始日期和结束日期绑定的值置为空,就成功清除了:
watch: { time_value(newData) { if (!newData) { newData = [] this.startCreateTime = '' //开始日期 this.endCreateTime = '' //结束日期 } //日期格式转换 this.startCreateTime = this.$moment(newData[0]).format( 'YYYY-MM-DD HH:mm:ss' ) this.endCreateTime = this.$moment(newData[1]).format( 'YYYY-MM-DD HH:mm:ss' ) this.current = 1 this.initData() }, },
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。