47 lines
1.0 KiB
Vue
47 lines
1.0 KiB
Vue
<template>
|
|
<van-dropdown-item :options="yearOptions" @change="yearChange" v-model="year"></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>
|