zhangwencui
7 小时以前 77f82fbb8542b59de772164aa2c317b5729f6946
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<template>
  <el-tree-select
    v-model="innerValue"
    :data="data"
    :multiple="multiple"
    :filterable="filterable"
    :collapse-tags="collapseTags"
    :collapse-tags-tooltip="collapseTagsTooltip"
    :placeholder="placeholder"
    :clearable="clearable"
    :check-strictly="checkStrictly"
    :render-after-expand="renderAfterExpand"
    :disabled="disabled"
    v-bind="$attrs"
    @change="handleChange"
  />
</template>
 
<script setup>
  import { computed } from "vue";
 
  const props = defineProps({
    modelValue: {
      type: [String, Number, Array, Object],
      default: undefined,
    },
    data: {
      type: Array,
      default: () => [],
    },
    multiple: {
      type: Boolean,
      default: false,
    },
    filterable: {
      type: Boolean,
      default: true,
    },
    collapseTags: {
      type: Boolean,
      default: false,
    },
    collapseTagsTooltip: {
      type: Boolean,
      default: false,
    },
    placeholder: {
      type: String,
      default: "请选择",
    },
    clearable: {
      type: Boolean,
      default: true,
    },
    checkStrictly: {
      type: Boolean,
      default: true,
    },
    renderAfterExpand: {
      type: Boolean,
      default: false,
    },
    disabled: {
      type: Boolean,
      default: false,
    },
  });
 
  const emit = defineEmits(["update:modelValue", "change"]);
 
  const innerValue = computed({
    get() {
      return props.modelValue;
    },
    set(val) {
      emit("update:modelValue", val);
    },
  });
 
  const handleChange = val => {
    emit("change", val);
  };
</script>