Skip to content

TreeSelect 树选择器

基于 ElTreeSelect 封装,支持自定义字段映射。

基础用法

vue
<template>
  <div>
    <p>单选 {{ moduleValue1 }}</p>
    <MTreeSelect v-model="moduleValue1" :data="data"></MTreeSelect>

    <p>选择框-多选 {{ moduleValue2 }}</p>
    <MTreeSelect
      v-model="moduleValue2"
      :data="data"
      :multiple="true"
      :show-checkbox="true"
    ></MTreeSelect>

    <MMarkdownView :value="readme"></MMarkdownView>
  </div>
</template>

<script setup lang="ts">
import readme from '@/components/treeSelect/README.md?raw'
import { ref } from 'vue'

const moduleValue1 = ref(4)
const moduleValue2 = ref([4])

const data = ref([
  {
    id: 1,
    name: 'Level one 1',
    children: [
      {
        id: 4,
        name: 'Level two 1-1',
        children: [
          {
            id: 5,
            name: 'Level two 1-1-1'
          }
        ]
      },
      {
        id: 6,
        name: 'Level two 1-2',
        children: [
          {
            id: 7,
            name: 'Level two 1-2-1'
          }
        ]
      }
    ]
  },
  {
    id: 8,
    name: 'Level one 2'
  }
])
</script>

<style lang="scss" scoped></style>

API

TreeSelect 属性

属性名说明类型默认值
modelValuev-model 单选或多选any | any[]
data展示数据array[]
fields数据字段映射TreeSelectFields{}

$attrs

TreeSelect 的 $attrs会透传给 ElTreeSelect 组件,支持multipleshow-checkbox 等属性。

TreeSelectFields

属性名说明类型默认值
value唯一值字段名string'id'
label标签字段名string'name'
children子节点字段名string'children'

基于 MIT 许可发布