Vue2中Element?DatePicker組件設(shè)置默認(rèn)日期及控制日期范圍
前言
以前都是做練習(xí), 上周拿到這個(gè)任務(wù)直接被卡住…
一、設(shè)置默認(rèn)日期
1.不要用placeholder
依然不使用placeholder
屬性, 在v-model
初始就綁定了時(shí)間的情況下, 組件可以識(shí)別并自動(dòng)切換到對(duì)應(yīng)日期, 使用placeholder
其實(shí)是無(wú)效的.
placeholder
展示的值并不是綁定在data中的屬性上的, 即便設(shè)置, 初始狀況下也無(wú)法獲取值.
<el-date-picker v-model="date" format="yyyy-MM-dd" > <!-- :placeholder="date" --> </el-date-picker>
data() { return { date: '2017-01-01' }; },
這樣也是照常顯示日期, 另外提醒就是format
不要全大寫, 會(huì)沒法切換日期.
另外:
format
: datePicker以何種格式展示時(shí)間value-foramt
: detePicker的值為何種格式(從data中直接取到的值為何種格式)
<template> <div> <el-date-picker v-model="date" format="yyyy-MM-dd" value-format="yyyyMMdd"> </el-date-picker> {{ date }} </div> </template>
data() { return { date: "20020807", }; },
合理使用免除一些不必要的數(shù)據(jù)處理.
2.設(shè)置動(dòng)態(tài)的默認(rèn)日期
還是利用v-model
, 可以利用時(shí)間對(duì)象new Date()
的輔助.
<el-date-picker v-model="date.createDate" format="yyyy-MM-dd" ></el-date-picker>
data() { return { date: { createDate: new Date(), }, }; },
不過(guò)你可能并不想每次拿數(shù)據(jù)都到date.createDate
里去拿, 所以數(shù)組也是可以的
data() { return { date: [ new Date().getFullYear() + '-' + (new Date().getMonth() + 1) + '-' + new Date().getDate() ] }; },
如果數(shù)組取值形式也不能滿意, 那就把表達(dá)式抽離出來(lái), 然后你可以在mounted
或者created
周期把它賦值給data
里綁定的那個(gè)屬性, 就像這樣:
data() { return { date: "", }; }, created() { this.initDate(); }, methods: { getDate() { return ( new Date().getFullYear() + "-" + (new Date().getMonth() + 1) + "-" + new Date().getDate() ); }, initDate() { this.date = this.getDate() }, }, };
二、限制日期選取
dateRange
模式下也是一樣的.
1.方案
不是用disabled
屬性來(lái)做這個(gè), 剛開始用的時(shí)候迷糊了…
使用pickerOptions
屬性來(lái)達(dá)到這個(gè)目的, pickerOptions
綁定的函數(shù)對(duì)象里有diabledDate
函數(shù)類型, 這個(gè)函數(shù)可以接受一個(gè)參數(shù)在運(yùn)算中作為當(dāng)前日期(這個(gè)參數(shù)一般會(huì)寫作time
), 而函數(shù)內(nèi)的表達(dá)式返回true
時(shí), datePicker
會(huì)根據(jù)表達(dá)式來(lái)對(duì)日期進(jìn)行限制選擇(就是有些日期會(huì)變成灰色不可選).
屬性 | 說(shuō)明 |
---|---|
shortcuts | 設(shè)置快捷選項(xiàng)(就是日期選擇表左邊的快捷選項(xiàng)),需要傳入 { text, onClick } 對(duì)象 |
disabledDate | 設(shè)置禁用狀態(tài),參數(shù)為當(dāng)前日期,要求返回 Boolean |
firstDayOfWeek | 周起始日 |
onPick | 選中日期后會(huì)執(zhí)行的回調(diào),只有當(dāng) daterange 或 datetimerange 才生效 |
但是這個(gè)屬性本身只需要一個(gè)對(duì)象, 不管你做什么, 你最后給它一個(gè)對(duì)象就好了, 你可以先在data里準(zhǔn)備好這個(gè)對(duì)象, 然后在里面搞一個(gè)disabledDate
屬性, 但是的disabledDate
屬性的值一定得是個(gè)函數(shù), 還得能返回Boolean
.
2.舉例
比如這樣:
<el-date-picker v-model="date" format="yyyy-MM-dd" :picker-options="limitDate" ></el-date-picker>
data() { return { date: "", limitDate: { // 一個(gè)與picker-options綁定的對(duì)象, 和它內(nèi)部的函數(shù)類型disabledDate屬性 disabledDate: this.doLimitDate }, }; }, methods: { doLimitDate() { // 一個(gè)能返回Boolean的函數(shù) this.limitDate.disabledDate = (time) => { // time為當(dāng)前日期, disabledDate自帶參數(shù) return (time.getTime() + 24 * 3600 * 1000) > Date.now() }; }, },
或者這樣:
嗯…我覺得可以嘗試直接返回一個(gè)內(nèi)含可返回布爾值的函數(shù)的對(duì)象?
<el-date-picker v-model="date" format="yyyy-MM-dd" :picker-options="limitDate" ></el-date-picker>
data() { return { date: "", }; }, computed: { limitDate() { return { disabledDate:(time) => { // time為當(dāng)前日期, disabledDate自帶參數(shù) return (time.getTime() + 24 * 3600 * 1000) > Date.now(); }; } }
效果都是一樣的, 在我的黑暗模式下不太明顯, 調(diào)回來(lái)會(huì)清晰一些:
你可以看到未達(dá)到的日期都是灰色, 不可選的.
總結(jié)
還好吧, 我前幾天一直很焦慮, 分給我的任務(wù)做的很慢, 很多組件的用法都是第一次嘗試, 然后項(xiàng)目也不熟悉, 公共組件和方法用起來(lái)也是磕磕絆絆然后接口又出了問(wèn)題, 啊——! 總之結(jié)果就是我做的很慢…
到此這篇關(guān)于Vue2中Element DatePicker組件設(shè)置默認(rèn)日期及控制日期范圍的文章就介紹到這了,更多相關(guān)Vue2 Element DatePicker組件設(shè)置日期內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解vue中點(diǎn)擊空白處隱藏div的實(shí)現(xiàn)(用指令實(shí)現(xiàn))
本篇文章主要介紹了詳解vue中點(diǎn)擊空白處隱藏div的實(shí)現(xiàn)(用指令實(shí)現(xiàn)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04一文詳解如何在vue中實(shí)現(xiàn)文件預(yù)覽功能
很多Vue項(xiàng)目中都需要PDF文件預(yù)覽功能,比如合同ERP,銷售CRM,內(nèi)部文檔CMS管理系統(tǒng),內(nèi)置PDF文件在線預(yù)覽功能,下面這篇文章主要給大家介紹了關(guān)于如何在vue中實(shí)現(xiàn)文件預(yù)覽功能的相關(guān)資料,需要的朋友可以參考下2022-10-10如何在Vue項(xiàng)目中添加接口監(jiān)聽遮罩
這篇文章主要介紹了如何在Vue項(xiàng)目中添加接口監(jiān)聽遮罩,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Vue3中的setup執(zhí)行時(shí)機(jī)與注意點(diǎn)說(shuō)明
這篇文章主要介紹了Vue3中的setup執(zhí)行時(shí)機(jī)與注意點(diǎn)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07vue實(shí)現(xiàn)div可拖動(dòng)位置也可改變盒子大小的原理
這篇文章主要介紹了vue實(shí)現(xiàn)div可拖動(dòng)位置也可改變盒子大小,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09vue頁(yè)面離開后執(zhí)行函數(shù)的實(shí)例
下面小編就為大家分享一篇vue頁(yè)面離開后執(zhí)行函數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03