jhzh
2025-04-03 db12897dc68c68d40c557aa59ad78022e2b30ac2
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>