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.
69 lines
1.2 KiB
69 lines
1.2 KiB
<template>
|
|
<lb-picker
|
|
:value="value"
|
|
@confirm="select"
|
|
:confirm-text="$t('common.confirm')"
|
|
:cancel-text="$t('common.cancel')"
|
|
:empty-text="$t('common.notData')"
|
|
:list="list"
|
|
:props="{
|
|
label: rangeLabel,
|
|
value: rangeValue,
|
|
}"
|
|
>
|
|
<slot
|
|
v-bind="activeItem"
|
|
></slot>
|
|
</lb-picker>
|
|
</template>
|
|
<script>
|
|
import lbPicker from "@/components/lb-picker";
|
|
export default {
|
|
name: "vPicker",
|
|
components: {
|
|
lbPicker,
|
|
},
|
|
props: {
|
|
list: {
|
|
default: [],
|
|
type: Array,
|
|
required: false,
|
|
},
|
|
rangeLabel: {
|
|
default: "label",
|
|
type: String,
|
|
required: false,
|
|
},
|
|
rangeValue: {
|
|
default: "value",
|
|
type: String,
|
|
required: false,
|
|
},
|
|
value: {
|
|
default: "",
|
|
type: String | Number,
|
|
required: false,
|
|
},
|
|
},
|
|
computed: {
|
|
activeItem() {
|
|
if (this.list && this.list.length) {
|
|
return this.list.find(item => item.value === this.value) || {};
|
|
} else {
|
|
return {};
|
|
}
|
|
},
|
|
},
|
|
data() {
|
|
return {};
|
|
},
|
|
methods: {
|
|
select($ev) {
|
|
this.$emit("input", $ev.value);
|
|
this.$emit("change", $ev.value, $ev.index, $ev.item);
|
|
},
|
|
},
|
|
mounted() {},
|
|
created() {},
|
|
};
|
|
</script>
|
|
|