You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
1.5 KiB

<template>
<view style="width: 100%;">
<u-input type="select" :value="value" @click="show = true"></u-input>
<u-select v-model="show" mode="mutil-column" :default-value="defaultValueC" :list="data" @confirm="onConfirm" cancel="onCancel">
</u-select>
</view>
</template>
<script>
export default {
props: {
value: {
type: String,
default: null
},
placeholder: {
type: String,
default: '请选择'
},
defaultValue: {
type: Array,
default: null
}
},
computed: {
defaultValueC() {
let y1i = 0;
if (this.data.length == 0) {
return [y1i];
}
if (this.defaultValue != null) {
y1i = this.getIndex(this.defaultValue[0],this.data[0]);
} else {
y1i = this.getIndex(('' + new Date().getFullYear()),this.data[0]);
}
return [y1i];
}
},
data() {
return {
show: false,
data: []
}
},
methods: {
onConfirm(data) {
this.$emit("input", data[0].value)
},
onCancel(){
},
getIndex(s,d){
let index = 0
d.forEach((item,i) => {
if(item.value == s){
index = i;
}
})
return index;
}
},
mounted() {
var yyyy = new Date().getFullYear();
let y1 = [{
label: ('' + yyyy),
value: ('' + yyyy)
}];
for (let i = 1; i < 50; i++) {
y1.splice(0, 0, {
label: '' + (yyyy - i),
value: '' + (yyyy - i),
})
y1.push({
label: '' + (yyyy + i),
value: '' + (yyyy + i),
})
}
this.data.push(y1);
}
}
</script>
<style>
</style>

Powered by TurnKey Linux.