Skip to content

TreeSelect

当选项的层级多深时,使用树形选择器比普通选择器更适合

使用

基础用法

传入 data 数据,生成树形结构 (格式同 Select 分组)

禁用可选项

将传入 data 数据中的某项设置为 disabled: true 即可

配置绑定数据键值

通过 config 配置数据键值。value- v-model 绑定的键值、desc-显示键值、disabled-控制不可选的键值、children-子节点的键值

开启多选

multipletrue 时,启用多选。此时绑定的 model-value 为数组格式

多选控制不可选项目

同单选只需将传入 data 数据中的某项设置为 disabled: true 即可

多选父子节点互不关联

check-strictlytrue 时,父子节点互不关联

只选取子节点

only-select-leaftrue 时,只会选取子节点的数据

自定义节点显示

通过 default 插槽可以定义内容。注意:在单选模式下需要参考下面内容自定义 class 实现控制不可选项目样式

选择节点过滤

filterabletrue 时,启用选择节点过滤。在选择框中输入文本,将过滤节点内容

懒加载

ElTree 一样,配置 lazy load 即可使用懒加载数据

Props

支持ElTreeSelect全部属性

NameDescriptionTypeOptionsDefault
v-model绑定值string / array--
data绑定数据array--
props配置绑定数据键值object-{children: 'childrenList', label: 'desc', rootId: 'id', disabled: 'disabled', parentId: 'parentId', value: 'value'}
remote-config远程加载数据配置。请参考下方RemoteConfigobject--
fetch-data自定义远程请求数据函数Function():Promise<Array<SelectTree>>>--
line是否显示树的连接线boolean-true

SelectTree

tsx
interface SelectTree<T = ExternalParam> {
  /**
   * 父节点主键
   */
  parentId: number

  /**
   * 主键
   */
  id: number

  /**
   * 显示名称
   */
  name: string

  childrenList: Array<T>
}

RemoteConfig

NameDescriptionTypeOptionsDefault
method请求方法stringGET/POSTGET
params请求参数Record<string, any>--
cache是否缓存结果boolean-true
cache-key本地缓存表名string-_dict_
storage-type缓存类型StorageTypesessionStorage/localStorage localStorage
expires缓存过期时间,单位:天number-7
url请求路径string--
key缓存本地数据表中的key值。默认使用参数的值拼接string--

Events

NameDescriptionParameters
change选中值发生变化时触发目前的选中值
visible-change下拉框出现/隐藏时触发出现则为 true,隐藏则为 false
remove-tag多选模式下移除 tag 时触发移除的 tag 值
clear可清空的单选模式下用户点击清空按钮时触发-
blur当 input 失去焦点时触发(event: Event)
focus当 input 获得焦点时触发(event: Event)
node-click节点被点击时的回调共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身。
node-contextmenu当某一节点被鼠标右键点击时会触发该事件共四个参数,依次为:event、传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身。
check-change节点选中状态发生变化时的回调共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点本身是否被选中、节点的子树中是否有被选中的节点
check当复选框被点击的时候触发共两个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、树目前的选中状态对象,包含 checkedNodes、checkedKeys、halfCheckedNodes、halfCheckedKeys 四个属性
current-change当前选中节点变化时触发的事件共两个参数,依次为:当前节点的数据,当前节点的 Node 对象
node-expand节点被展开时触发的事件共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身
node-collapse节点被关闭时触发的事件共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身
node-drag-start节点开始拖拽时触发的事件共两个参数,依次为:被拖拽节点对应的 Node、event
node-drag-enter拖拽进入其他节点时触发的事件共三个参数,依次为:被拖拽节点对应的 Node、所进入节点对应的 Node、event
node-drag-leave拖拽离开某个节点时触发的事件共三个参数,依次为:被拖拽节点对应的 Node、所离开节点对应的 Node、event
node-drag-over在拖拽节点时触发的事件(类似浏览器的 mouseover 事件)共三个参数,依次为:被拖拽节点对应的 Node、当前进入节点对应的 Node、event
node-drag-end拖拽结束时(可能未成功)触发的事件共四个参数,依次为:被拖拽节点对应的 Node、结束拖拽时最后进入的节点(可能为空)、被拖拽节点的放置位置(before、after、inner)、event
node-drop拖拽成功完成时触发的事件共四个参数,依次为:被拖拽节点对应的 Node、结束拖拽时最后进入的节点、被拖拽节点的放置位置(before、after、inner)、event

Slots

NameDescription
-自定义树节点的内容,参数为 { node, data, multiple }

粤ICP备2022017444号