1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
| <template>
| <lb-picker
| :value="value"
| @confirm="select"
| :confirm-text="$t('common.confirm')"
| :cancel-text="$t('common.cancel')"
| :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>
|
|