53 lines
1.1 KiB
Vue
53 lines
1.1 KiB
Vue
<template>
|
|
<van-dropdown-item
|
|
:options="yearOptions"
|
|
v-model="year"
|
|
@change="yearChange"
|
|
@open="$emit('open')"
|
|
@close="$emit('close')"
|
|
></van-dropdown-item>
|
|
</template>
|
|
|
|
<script>
|
|
module.exports = {
|
|
name: "year-van-dropdown-item",
|
|
props: {
|
|
num: {
|
|
type: Number,
|
|
default: 10
|
|
},
|
|
value: {
|
|
type: Number,
|
|
default: new Date().getFullYear()
|
|
}
|
|
},
|
|
watch: {
|
|
value: {
|
|
handler: function (val) {
|
|
this.year = val
|
|
},
|
|
immediate: true
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
yearOptions: [],
|
|
year: new Date().getFullYear()
|
|
}
|
|
},
|
|
methods: {
|
|
yearChange(val) {
|
|
this.$emit("input", val)
|
|
this.$emit("change", val)
|
|
}
|
|
},
|
|
created() {
|
|
for (let i = new Date().getFullYear() - this.num; i <= new Date().getFullYear(); i++) {
|
|
this.yearOptions.unshift({ value: i, text: i + "年" })
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped></style>
|