# Tree 树型选择组件 基于 Element-UI 的 [Tree 组件](https://element.eleme.cn/#/zh-CN/component/tree) + [Select 组件](https://element.eleme.cn/#/zh-CN/component/select) + [Popover 组件](https://element.eleme.cn/#/zh-CN/component/popover)进行的封装,支持单选多选,以及 `v-model` 模式。可以通过 `selectProps` 和 `treeProps` 属性分别自定义 Select 组件 和 Tree 组件原生的一些属性。 ## 用法 ### 基本用法 ::: demo ```vue ``` ::: ## 单选 默认单选,单选时 value 为数字或字符串。 :::demo ```vue ``` ::: ## 多选 使用`multiple` 开启多选,多选时 value 为数组。 :::demo ```vue ``` ::: ### 搜索 filterable为true时开启搜索 ::: demo ```vue ``` ::: ## 钩子函数 所有 Element-UI 的 Select 组件和 Tree 组件 以及 Popover 组件的钩子函数理论上都支持。 - Select 的 钩子函数获取方式 ```js this.$refs['treeSelect'].$refs['select'].focus() ``` - Tree 的钩子函数的获取方式 ```js this.$refs['treeSelect'].$refs['tree'].$refs['tree'].getCheckedKeys() ``` - Popover 的钩子函数获取方式 ```js this.$refs['treeSelect'].$refs['popover'] ``` ## Props 除以下参数外,其他参数将直接透传到 ElementUI 的 Upload 组件上。 | 参数 | 说明 | 类型 | 可选值 | 默认值 | | :--------------- | :----------------------------------------------------------- | :-------------------- | :----------------------------------------------------------- | :----------------------------------------------------------- | | value | 当前选中节点,支持 v-model。(多选时为 Array,单选时为 string 或者 number) | Array\|string\|number | - | [] | | data | Tree 的 Data 属性 | string | - | [] | | multiple | 是否多选 | boolean | - | false | | selectClass | 选择器最外层容器 class | string | - | '' | | selectInputStyle | 选择器输入框 style | Object | - | {} | | disabled | 是否禁用输入框 | boolean | - | false | | selectProps | 选择框自定义 Props | Object | - | {'collapse-tags': true, clearable: true, disabled: false, placeholder: '请选择',} | | treeProps | 树组件自定义 Props | Object | | {filterable: false,data: [],props: {children: 'children',label: 'label',value: 'id',disabled: 'disabled',},} | | placement | 弹出框位置 | string | top/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-end | Bottom | | popperClass | 为 popper 添加类名 | string | - | - | | emitParent | 是否抛出父元素值 | boolean | - | true | | emitChildren | 是否抛出子元素值 | boolean | - | true | | filterable | 是否默认展开 | boolean | - | true | | poperWidth | poper宽度 | number | - | - | ## 参考 > - [Element-UI Tree 组件](https://element.eleme.cn/#/zh-CN/component/tree) > > - [Element-UI Select 组件](https://element.eleme.cn/#/zh-CN/component/select) > - [Element-UI Popover 组件](https://element.eleme.cn/#/zh-CN/component/popover)