<template>
	<view style="width: 100%;">
		<picker style="width: 100%;" @change="PickerChange" :value="index" :disabled="disabled" :range-value="rangeValue"  :range-key="rangeKey" :range="range">
		<u--input
			v-model="label"
			suffixIcon="arrow-down"
			suffixIconStyle="color: #17a2f8"
			disabled
			disabledColor="#ffffff"
			placeholder="请选择"
			border="none"
		></u--input>
		</picker>

	</view>
</template>

<script>
	export default {
		data() {
			return {
				index: -1,
				label: '请选择'
			};
		},
		props: {
		    value: String,
			rangeKey: {
				type: String,
				default: 'label'
			},
			rangeValue: {
				type: String,
				default: 'value'
			},
			range: {
				type: Array,
				default: []
			},
			disabled: {
				type: Boolean,
				default: false
			}
		},
		mounted() {
			
		},
		watch:{
			value: {
				handler (val) {
					if(val) {
						let options = this.range.filter((option)=>{
							return option[this.rangeValue] === val
						})
						if(options.length === 0){
							this.label = '请选择'
						} else {
							this.label = options[0][this.rangeKey]
						}
						
					}
				},
				immediate: true,
				deep: false
			}
		},
		methods:{
			PickerChange(e) {
				this.index = e.detail.value;
				if(this.index !== -1){
					this.label = this.range[this.index][this.rangeKey]
					this.$emit('input', this.range[this.index][this.rangeValue])
				}else{
					this.label = '请选择'
					this.$emit('input', null)
				}
				
			}
		}
	}
</script>

<style>

</style>