element el-date-picker 插件設置顯示默認開始時間和結束時間

在開發過程中可能根據需要設置一個默認的時間段,在網上看了很多相關的信息,大多數都顯得很籠統並且麻煩,研究了一下el-date-picker 插件的屬性,發現了一個比較簡單的方法,來跟大家分享一下。

1.需求分析

當用戶打開某一個需要查詢數據的頁面時,插件默認顯示上一個月的時間,如當前三月則需要顯示二月份:
在這裏插入圖片描述
考慮到每一個月的天數不一定,但是每一個月都是從一號開始,所以只要終止日期小於下一個月1號就可以滿足需求,所以最後效果可以爲這樣:
在這裏插入圖片描述
前提是先聲明後端查詢時需要返回包括開始時間,但不包括結束時間

2.分析el-date-picker插件的v-model

假設當前我的插件爲如下代碼:

<el-date-picker
 v-model="date"
 value-format="yyyy-MM-dd"
 type="daterange"
 range-separator="-"
 start-placeholder="開始日期"
 end-placeholder="結束日期"
 size="small">
</el-date-picker>

注:這裏date的定義爲getdate:[],定義爲getdate:'',無法實現
當選擇好一個時間後,在日誌裏打印這個date(console.log(this.date))可以在控制檯看到如下數據:
在這裏插入圖片描述
可以看到插件綁定的對象date是一個數組,所以我們直接指定他的元素值就可以改變他顯示的時間了,需要注意的是,0號元素和1號元素必須同時設置,不然會導致控件不顯示時間

this.date[0]=this.startdate;
this.date[1]=this.enddate;

之前在網上看到很多文檔,大多數都要重寫一個方法,比較麻煩,懶人直接用這個方法就好了,兩行代碼簡單粗暴。

3.設置默認時間爲上一個月

直接貼代碼:

            created: function () {               
                var now = new Date();
                var year = now.getFullYear(); //得到當前年份
                var month = now.getMonth(); //默認得到月份是上一個月,如果當前是3月,這個值爲2月
                if(month ==12)	//如果當前是1月,則獲取到的數據爲12月,年份減一
                    year=year -1;
                var nextMonth=month+1;//其實就是當前月份
                month = month.toString().padStart(2, "0");	//當小於10時,顯示爲01.02.03
                nextMonth = nextMonth.toString().padStart(2, "0");
                this.startdate = `${year}-${month}-01`;//拼接日期
                this.enddate = `${year}-${nextMonth}-01`;
                console.log(this.startdate+"  "+this.enddate );
                this.date[0]=this.startdate;
                this.date[1]=this.enddate;
                this.queryData();//調用方法查詢指定時間段內的數據    
            }

註釋裏都已說清代碼具體含義,方法比較簡單粗暴,如果有更好的方法歡迎一起討論

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章