vant倒序年月日期組件封裝實(shí)例詳解

如圖,時(shí)間選擇,倒序排列。時(shí)間格式 202312,可以根據(jù)自己的格式改一下數(shù)據(jù)處理方式
組件:
<template>
<div class="number">
<van-cell-group>
<van-field class="date-select" readonly clickable v-model="date" placeholder="選擇時(shí)間"
@click="showPicker = true" />
<van-popup v-model="showPicker" round position="bottom">
<van-picker class="picker" show-toolbar :columns="columns" @change="onChange"
@cancel="showPicker = false" @confirm="onConfirm">
</van-picker>
</van-popup>
</van-cell-group>
</div>
</template>
<script>
export default {
name: 'DateSelect',
props: {
default: {
type: String,
default: ''
},
minYear: {
type: String,
default: '2014'
}
},
data() {
return {
date: this.default,
initTime: this.minYear,
columns: [],
checkTime: {},
showPicker: false
}
},
created() {
this.initTimeFn()
},
methods: {
initTimeFn() {
const initTime = this.initTime
const defaultYear = this.default.substring(0, 4)
const defaultMonth = this.default.substring(4)
// for (let i = 0; i <= Number(new Date().getFullYear()) - initTime; i++) {
for (let i = Number(new Date().getFullYear()); i >= initTime; i--) {
this.checkTime[`${i}年`] = [
'01月',
'02月',
'03月',
'04月',
'05月',
'06月',
'07月',
'08月',
'09月',
'10月',
'11月',
'12月'
]
}
const yearIndex = Object.keys(this.checkTime).findIndex((item) =>
item.includes(defaultYear)
)
this.columns = [
{
values: Object.keys(this.checkTime),
defaultIndex: yearIndex //Number(new Date().getFullYear()) - initTime
},
{
values: this.checkTime[`${new Date().getFullYear()}年`],
defaultIndex: Number(defaultMonth) //new Date().getMonth()
}
]
},
onCancel() {
this.showPicker = false
},
onConfirm(value) {
this.showPicker = false
let year = value && value[0].split('年')[0]
let month = value && value[1].split('月')[0]
this.date = this.userListForm = `${year}${month}`
this.$emit('getDate', this.userListForm)
},
onChange(picker, values) {
picker.setColumnValues(1, this.checkTime[values[0]])
}
}
}
</script>
<style lang="less">
.number {
width: 2.4rem;
.picker {
font-size: 0.32rem;
}
.van-cell {
padding: 0;
}
.date-select {
border: 1px solid rgb(74, 119, 246);
padding-left: 0.1rem;
border-radius: 0.1rem;
font-size: 0.32rem;
line-height: 1.5;
}
}
</style>使用:
<DateSelect @getDate="getDate" default="202312" />
getDate(date) {
this.date = date //自己組件使用的時(shí)間變量
this.getList()
},到此這篇關(guān)于vant倒序年月日期組件封裝的文章就介紹到這了,更多相關(guān)vant倒序年月日期組件封裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Javascript中函數(shù)名.length屬性用法分析(對(duì)比arguments.length)
這篇文章主要介紹了Javascript中函數(shù)名.length屬性用法,結(jié)合實(shí)例形式簡(jiǎn)單對(duì)比分析了與arguments.length屬性的用法區(qū)別,需要的朋友可以參考下2016-09-09
JavaScript保存并運(yùn)算頁(yè)面中數(shù)字類(lèi)型變量的寫(xiě)法
這篇文章主要介紹了JavaScript保存并運(yùn)算頁(yè)面中數(shù)字類(lèi)型變量的寫(xiě)法,當(dāng)你在頁(yè)面中需要不停運(yùn)算一個(gè)數(shù)字變量時(shí)非常有用,普通的寫(xiě)法不能正常運(yùn)算,使用本文方法就可以,需要的朋友可以參考下2015-07-07
前端JS面試中常見(jiàn)的算法問(wèn)題總結(jié)
雖然說(shuō)在前端很少有機(jī)會(huì)接觸到算法,大多都交互性的操作,然而從各大公司面試來(lái)看,算法依舊是考察的一方面。下面這篇文章就給大家總結(jié)了在前端JS面試中常見(jiàn)的算法問(wèn)題,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-12-12
快速實(shí)現(xiàn)JS圖片懶加載(可視區(qū)域加載)示例代碼
目前很多網(wǎng)站,在圖片加載時(shí)均采用了一種名為懶加載的方式,具體表現(xiàn)為,當(dāng)頁(yè)面被請(qǐng)求時(shí),只加載可視區(qū)域的圖片,其它部分的圖片則不加載,只有這些圖片出現(xiàn)在可視區(qū)域時(shí)才會(huì)動(dòng)態(tài)加載這些圖片,下面本文就介紹了JS圖片懶加載(可視區(qū)域加載)的實(shí)現(xiàn)方法,一起來(lái)看看吧。2017-01-01
淺析為什么a="abc" 不等于 a=new String("abc")
這篇文章主要介紹了為什么a="abc" 不等于 a=new String("abc"),需要的朋友可以參考下2017-10-10
ionic cordova一次上傳多張圖片(類(lèi)似input file提交表單)的實(shí)現(xiàn)方法
這篇文章主要介紹了ionic cordova一次上傳多張圖片(類(lèi)似input file提交表單)的實(shí)現(xiàn)方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12

