ElementUI年份范圍選擇器功能實現(xiàn)
更新時間:2023年02月10日 11:30:06 作者:Iswayzw
elementUI中有日期范圍組件,月份范圍選擇的,就是沒有年份范圍選擇的,需要加一個類似風格的,下面這篇文章主要給大家介紹了關于ElementUI年份范圍選擇器功能實現(xiàn)的相關資料,需要的朋友可以參考下
ElementUI 年份范圍選擇器
Element的日期選擇器組件沒有提供選擇年份范圍的功能。由于項目需要,決定用兩個年份選擇器封裝一個,貼下代碼供大家參考。
代碼實現(xiàn)了年份范圍選擇組件的基本功能,以及父子組件間的雙向通信。
實現(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="選擇結束年"
size="mini"
class="year-picker"
@change="changeEndYear"
format="yyyy 年"
value-format="yyyy"
>
</el-date-picker>
</div>
</template>
<script>
export default {
name: "YearRangePicker",
// 接收父組件傳入的數據
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) {
// 開始年份大于結束年份,調換
if (Number(this.startYear) > Number(this.endYear)) {
this.startYear = this.endYear;
this.endYear = val;
}
// 將改動傳回父組件
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>
調用組件代碼
<template>
<div class="test-body">
<!-- :yearRange 為父組件向子組件傳參 -->
<!-- :key 保證父組件的數據更新后,重新渲染子組件,使子組件也同步更新 -->
<!-- @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: {
// 自定義組件標簽名稱
"year-range": YearRangePicker,
},
methods: {
handleYearChanged(val) {
this.yearRange = val;
},
},
};
</script>
<style scoped>
.test-body {
width: 100%;
height: 400px;
padding-top: 100px;
}
</style>
總結
本文實現(xiàn)的年份范圍選擇組件具有基本的年份范圍選擇功能。
- 借助Vue的組件特性,能夠靈活應用到頁面任何位置。
- 基于組件通信,能夠優(yōu)雅的管理數據。
但是也存在不足,用戶調整一次年份范圍,需要分別點擊起始年份和結束年份,無法做到像官方的日期范圍選擇組件那樣,點擊一次,直接進行區(qū)間調整。
到此這篇關于ElementUI年份范圍選擇器功能實現(xiàn)的文章就介紹到這了,更多相關ElementUI年份范圍選擇器內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
相關文章
vue+elementUI-el-table實現(xiàn)動態(tài)顯示隱藏列方式
這篇文章主要介紹了vue+elementUI-el-table實現(xiàn)動態(tài)顯示隱藏列方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01

