ElementUI年份范圍選擇器功能實(shí)現(xiàn)
ElementUI 年份范圍選擇器
Element的日期選擇器組件沒(méi)有提供選擇年份范圍的功能。由于項(xiàng)目需要,決定用兩個(gè)年份選擇器封裝一個(gè),貼下代碼供大家參考。
代碼實(shí)現(xiàn)了年份范圍選擇組件的基本功能,以及父子組件間的雙向通信。
實(shí)現(xiàn)效果
依賴
- Vue2
- ElementUI
組件代碼
<template> <div class="year-range-picker"> <el-date-picker v-model="startYear" type="year" placeholder="選擇開始年" size="mini" class="year-picker" @change="changeStartYear" format="yyyy 年" value-format="yyyy" > </el-date-picker> <span class="range-word"> 至 </span> <el-date-picker v-model="endYear" type="year" placeholder="選擇結(jié)束年" size="mini" class="year-picker" @change="changeEndYear" format="yyyy 年" value-format="yyyy" > </el-date-picker> </div> </template> <script> export default { name: "YearRangePicker", // 接收父組件傳入的數(shù)據(jù) props: { yearRange: { type: Array, required: true, }, }, data() { return { startYear: "", endYear: "", }; }, mounted() { // 初始化自身變量 this.startYear = String(this.yearRange[0]); this.endYear = String(this.yearRange[1]); }, methods: { changeStartYear(val) { // 開始年份大于結(jié)束年份,調(diào)換 if (Number(this.startYear) > Number(this.endYear)) { this.startYear = this.endYear; this.endYear = val; } // 將改動(dòng)傳回父組件 this.$emit("yearChanged", [Number(this.startYear), Number(this.endYear)]); }, changeEndYear(val) { if (Number(this.startYear) > Number(this.endYear)) { this.endYear = this.startYear; this.startYear = val; } this.$emit("yearChanged", [Number(this.startYear), Number(this.endYear)]) }, }, }; </script> <style scoped> .year-range-picker { color: black; text-align: center; font-size: 18px; } .range-word { margin-left: 10px; margin-right: 10px; } .year-range-picker .year-picker { max-width: 160px; } </style>
調(diào)用組件代碼
<template> <div class="test-body"> <!-- :yearRange 為父組件向子組件傳參 --> <!-- :key 保證父組件的數(shù)據(jù)更新后,重新渲染子組件,使子組件也同步更新 --> <!-- @yearChanged 監(jiān)聽子組件向父組件傳參 --> <year-range :yearRange="yearRange" :key="`${yearRange[0]}_${yearRange[1]}`" @yearChanged="handleYearChanged" > </year-range> </div> </template> <script> // 引入組件 import YearRangePicker from "@/components/YearRangePicker/index.vue"; export default { name: "Test", data() { return { yearRange: [2021, 2022], }; }, components: { // 自定義組件標(biāo)簽名稱 "year-range": YearRangePicker, }, methods: { handleYearChanged(val) { this.yearRange = val; }, }, }; </script> <style scoped> .test-body { width: 100%; height: 400px; padding-top: 100px; } </style>
總結(jié)
本文實(shí)現(xiàn)的年份范圍選擇組件具有基本的年份范圍選擇功能。
- 借助Vue的組件特性,能夠靈活應(yīng)用到頁(yè)面任何位置。
- 基于組件通信,能夠優(yōu)雅的管理數(shù)據(jù)。
但是也存在不足,用戶調(diào)整一次年份范圍,需要分別點(diǎn)擊起始年份和結(jié)束年份,無(wú)法做到像官方的日期范圍選擇組件那樣,點(diǎn)擊一次,直接進(jìn)行區(qū)間調(diào)整。
到此這篇關(guān)于ElementUI年份范圍選擇器功能實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)ElementUI年份范圍選擇器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue中按鈕操作完刷新頁(yè)面的實(shí)現(xiàn)
這篇文章主要介紹了vue中按鈕操作完刷新頁(yè)面的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07vue+elementUI-el-table實(shí)現(xiàn)動(dòng)態(tài)顯示隱藏列方式
這篇文章主要介紹了vue+elementUI-el-table實(shí)現(xiàn)動(dòng)態(tài)顯示隱藏列方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01Vue3利用自定義指令進(jìn)行內(nèi)容控制的實(shí)現(xiàn)方法
Vue3作為一個(gè)漸進(jìn)式JavaScript框架,提供了強(qiáng)大的自定義指令功能,使得權(quán)限控制變得既簡(jiǎn)單又高效,本文將詳細(xì)介紹如何在Vue3中使用自定義指令來(lái)判斷內(nèi)容是否顯示,以滿足不同用戶權(quán)限下的界面展示需求,需要的朋友可以參考下2024-04-04vue分頁(yè)組件table-pagebar使用實(shí)例解析
這篇文章主要為大家詳細(xì)解析了vue分頁(yè)組件table-pagebar使用實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08vue項(xiàng)目打包成桌面快捷方式(electron)的方法
本文主要介紹了vue項(xiàng)目打包成桌面快捷方式(electron)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06vue中點(diǎn)擊按鈕下載文件的實(shí)現(xiàn)方式
這篇文章主要介紹了vue中點(diǎn)擊按鈕下載文件的實(shí)現(xiàn)方式,具有很的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10Vue.js每天必學(xué)之過(guò)濾器與自定義過(guò)濾器
Vue.js每天必學(xué)之過(guò)濾器與自定義過(guò)濾器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09Element-ui Drawer抽屜按需引入基礎(chǔ)使用
這篇文章主要為大家介紹了Element-ui Drawer抽屜按需引入基礎(chǔ)使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07vue裁切預(yù)覽組件功能的實(shí)現(xiàn)步驟
這篇文章主要介紹了vue裁切預(yù)覽組件功能的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05