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="結(jié)束日期" @change="handleDate" :picker-options="pickerOptions0" clearable> </el-date-picker> </div>
賦值函數(shù):
? ? ? ? ? ? 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=''; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? },
問題:當(dāng)控件清空或修改時,@change=“handleDate”不會觸發(fā),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="結(jié)束日期"? ? ? ? ? ? ? ? ? ? ? @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監(jiān)聽選擇器 點擊清空按鈕時會報錯
這是因為Element-ui中沒有內(nèi)置清除按鈕的回調(diào)函數(shù), 當(dāng)點擊清除按鈕的時候,value會被設(shè)置為null。
解決方法
在下次調(diào)用之前,為value重新賦值,錯誤解決,
if (!newData) { newData = [] }
然后在為value重新賦值前把開始日期和結(jié)束日期綁定的值置為空,就成功清除了:
watch: { time_value(newData) { if (!newData) { newData = [] this.startCreateTime = '' //開始日期 this.endCreateTime = '' //結(jié)束日期 } //日期格式轉(zhuǎn)換 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() }, },
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue-cli中實現(xiàn)響應(yīng)式布局的方法
這篇文章主要介紹了vue-cli中實現(xiàn)響應(yīng)式布局的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03elementui 開始結(jié)束時間可以選擇同一天不同時間段的實現(xiàn)代碼
這篇文章主要介紹了elementui 開始結(jié)束時間可以選擇同一天不同時間段的實現(xiàn)代碼,需要先在main.js中導(dǎo)入相應(yīng)代碼,代碼簡單易懂,需要的朋友可以參考下2024-02-02使用Vue.observable()進(jìn)行狀態(tài)管理的實例代碼詳解
這篇文章主要介紹了使用Vue.observable()進(jìn)行狀態(tài)管理的實例代碼,本文通過代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05