 YbTreeSelect  树型选择器
YbTreeSelect  树型选择器
  注意:旧版 api 已废弃,在下一个主版本将完全去除。本版本对旧版 api 做了兼容,仍可继续使用旧版 api,请逐步替换成新版 api,详情见Props。
# 基本使用
当开启 leaf-only 时,只有叶节点才能被选中
  复制 
# 可筛选
  复制 
# 全选
- 全选功能默认 multiple 属性为 true 时生效,需要关闭则 is-show-select-all 设置为 false
- 若选项中存在禁用状态的选项,点击全选也无法被选中
                size
                  
 
                clearable
                
 
                disabled
                
 
                filterable
                
 
                collapse-tags
                
 
                check-strictly
                
 
                is-show-select-all
                
 
                leaf-only
                
  复制 
# 懒加载
- params 默认请求参数,当改变时,会触发请求
- request 加载数据,返回 Promise 或者 Array
        基本使用:
        
 
        打开面板进行搜索:
        
  复制 
# 可搜索
- 设置 filterable 和 remote 为 true,request 函数即可远程搜索,并且提供 params.queryWord
  复制 
# 插槽的使用
- 插槽
- prefix:组件头部内容插槽名称
- empty:无选项时插槽名称
 
- 作用域插槽
- default:自定义整行节点 label 区域插槽名称,参数:{ data, node },如果添加了会使 "node-label"和"after-node-label"无效
- node-label: 显示横线时自定义节点 label 区域插槽名称,参数:{ data, node }
- after-node-label: 显示横线时追加在横线右边的内容插槽名称,参数:{ data, node }
- node-label-tooltip: 自定义鼠标移入节点名称时展示的浮窗内容,参数:{ data, node }
 
Pre
  复制 
# Props
| 参数 | 说明 | 类型 | 可选值 | 默认值 | 
|---|---|---|---|---|
| value / v-model | 绑定值 | boolean / string / number | -- | -- | 
| multiple | 是否多选 | boolean | - | false | 
| getSelectedLabel | 自定义显示选中的名称 | function(node,valueKey,value){ return { [valueKey]:value,label:"自定义" } } | - | false | 
| leafOnly | 是否只有叶节点才能被选中 | boolean | - | false | 
| optionsFieldMap | 选项中字段映射,如果全选无效请确认是否给定 optionsFieldMap.key,详见 Props optionsFieldMap | object | -- | -- | 
| request | 加载下拉选项数据,返回 Promise 或者 Array,优先级最高 | function({queryWord,...others}){} | -- | -- | 
| params | 加载下拉选项数据的请求参数,与 request 配合使用,当数据改变时,触发 request | object | -- | -- | 
| options | 下拉选项数据,优先级仅次于 request | array | -- | -- | 
| debounceTime | 防抖动时间,与 request 配合使用 | number | -- | 300 | 
| searchWhenOpen | 是否每次打开面板加载数据,与 request 配合使用 | boolean | -- | -- | 
| formatter | 格式化数据,function(item) 需返回渲染数据 | function | -- | -- | 
| dependence | 依赖字段,当设置依赖字段时,只有依赖字段值发生变化才会调用 request | array | -- | -- | 
| isShowSelectAll | 是否显示全选,详见 全选用法 | boolean | -- | true | 
| expandedKeys | 当存在分组的选项时,展开的分组的 keys , 支持 sync 修饰符 | array | -- | -- | 
| defaultExpandAll | 当存在分组的选项时,是否默认全部展开 , 如果是数字类型,可以让前几组默认展开 | boolean | number | -- | true | 
| optionsArrangeToRight | 选项是否从左往右排布,一行最多排 4 个 | boolean | -- | false | 
| valueChangeToRequest | 当使用了 request 获取选项时,只要 value 在外部被改变时会触发一次 request 函数,无论 searchWhenOpen 是否开启 | boolean | -- | false | 
| pageSize | 每个节点一次最多只加载的子节点数量,超过这个数会出现“展开更多”的按钮 | number | - | 100 | 
| checkStrictly | 在显示复选框的情况下,是否严格的遵循父子不互相关联的做法,默认为 false | boolean | — | false | 
| resetToFirstPage | 是否折叠节点时,重置到第一页,以下次再展开时,只显示 pageSize 的子节点数量;而且 data 改变时,即使存在相同的 nodeKey 节点也会重置到第一页 | boolean | - | false | 
| showLine | 是否显示结构线 | boolean | - | true | 
| showLabelLine | 是否显示节点名称后面的线线 | boolean | - | true | 
| expandIconIndent | 展开小图标的缩进 | number | - | 16 | 
| labelTooltip | 鼠标移入节点名称显示浮窗信息,默认是'overflow',节点名称溢出才显示完整的名称,还可以通过函数控制哪些节点才显示 function({data,node}){return Boolean} ,当使用 node-label 插槽时,label 需要放进有 className 为'el-tree-node__label'的盒子里,labelTooltip 才会有效 | string|function | 'always' | 'overflow'|'none' | |
| labelTooltipConfig | 对应 el-popover (opens new window)的属性 | object | {} | |
| -- | 其他属性同 el-select (opens new window),其中 | -- | -- | -- | 
| ... | 其他属性同 el-tree (opens new window) | -- | -- | -- | 
| 已废弃,防抖动时间,与 request 配合使用 | number | -- | 300 | |
| 已废弃,yb-select 的属性,需使用驼峰写法,不支持 value | object | -- | {} | |
| 已废弃,yb-tree 的属性,需使用驼峰写法 | object | -- | {} | |
| 已废弃,yb-select 的事件 | object | -- | {} | |
| 已废弃,yb-tree 的事件 | object | -- | {} | |
| el-tree还是yb-cascader-list。若值为auto,则根据limitCount自动计算 | string | tree/cascader/auto | auto | |
| yb-cascader-list,否则为el-tree | number | -- | 100 | |
| 已废弃,请使用 treeOptions.data 代替 | ||||
| 已废弃,请使用 treeOptions.props 代替 | ||||
| 已废弃,请使用 treeOptions.nodeKey 代替 | ||||
| 已废弃,请使用 treeOptions.nodeKey 代替 | ||||
| 已废弃,请使用 treeOptions.checkStrictly 代替 | 
# Props optionsFieldMap
| 参数 | 说明 | 类型 | 可选值 | 默认值 | 
|---|---|---|---|---|
| label | 指定节点标签为节点对象的某个属性值 | string | -- | 'label' | 
| value | 指定节点值为节点对象的某个属性值 | string | -- | 'value' | 
| key | 指定节点 key 为节点对象的某个属性值,在多选时,请保证 options[optionsFieldMap.key]值是唯一的 | string | -- | 'value' | 
| disabled | 指定节点禁用为节点对象的某个属性值 | string | -- | 'disabled' | 
| children | 指定节点分组子节点数据为节点对象的某个属性值 | string | -- | 'children' | 
| isLeaf | 指定节点叶节点为节点对象的某个属性值 | string | -- | 'isLeaf' | 
# Methods
方法调用方式应该是 this.$refs['tree']['methodName']()
| 方法名称 | 说明 | 参数 | 返回值 | 
|---|---|---|---|
| getSelect | 获取 el-select 实例 | - | |
| getTree | 获取 el-tree 实例 | - | |
| getSelectedNodes | 已废弃 | - | object|object[] | 
# Events
| 事件名称 | 说明 | 参数 | 
|---|---|---|
| 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、节点组件本身 | 
# Slots
| 名称 | 说明 | 
|---|---|
| prefix | 组件头部内容 | 
| empty | 无选项时插槽名称 | 
# Scoped Slots
| 名称 | 说明 | 参数 | 
|---|---|---|
| default | 自定义整行节点 label 区域插槽,优先级高于 node-label,after-node-label | { data, node } | 
| node-label | 自定义节点 label 区域插槽 | { data, node } | 
| after-node-label | 显示横线时追加在横线右边的内容 | { data, node } | 
| node-label-tooltip | 自定义鼠标移入节点名称时展示的浮窗内容 | { data, node } | 
上次更新: 2025/01/21, 14:27:00
