SpTreeMultiSelect 多选树
大约 4 分钟
这是一个 tree 多选选择器,可以使用标签的形式展现已选择内容。
基础用法
直接在对应位置引用组件即可,支持数据双向绑定。
<SpTreeMultiSelect v-model="value" />
API
属性
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
model-value / v-model | T[] | - | 绑定值 |
title | string | - | 面板标题 |
width | number | string | 240 | 面板宽度 |
showTags | boolean | true | 是否显示已选择部门标签 |
placement | string | 'bottom' | 弹出框位置 |
leafOnly | boolean | false | 是否仅返回叶子节点数据 |
includeHalfChecked | boolean | false | 是否返回包含半选中节点数据 |
data | T[] | - | tree 数据 |
nodeKey | keyof T | id | 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 |
labelName | keyof T | name | 指定节点标签为节点对象的某个属性值 |
disabledNode | string | Function | - | 指定节点选择框是否禁用为节点对象的某个属性值 |
searchInputSize | ComponentSize | 'small' | 检索输入框大小 |
searchInputPlaceholder | string | - | 检索输入框的提示语 |
expandOnClickNode | boolean | false | 是否在点击节点的时候展开或者收缩节点,如果为 false ,则只有点箭头图标的时候才会展开或者收缩节点。 |
checkStrictly | boolean | false | 在显示复选框的情况下,是否严格的遵循父子不互相关联的做法 |
simpleData | ToNestedOptions | - | 是否使用简单数据模式,如果使用,请务必设置 idKey 、pIdKey ,并且让数据满足父子关系 |
事件
时间名 | 类型 | 说明 |
---|---|---|
confirm | (value: T[]) => void | 点击确认按钮事件 |
cancel | () => void | 点击取消按钮事件 |
beforeEnter | () => void | 打开面板动画播放前触发 |
插槽
插槽名 | 说明 |
---|---|
default | 自定义树节点的内容, 自定义树节点的内容, 参数为 { node, data } |
reference | 触发 Popover 显示的 HTML 元素,可以省略,默认会使用添加按钮 |
类型
ToNestedOptions
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
idKey | string | id | 节点数据中保存唯一标识的属性名称 |
pIdKey | string | parentId | 节点数据中保存其父节点唯一标识的属性名称 |
renameKeys | [string, string][] | false | - | 重命名的属性名称,元组的第一个元素为原始名字,第二个元素为新名字 |
copyKeys | [string, string][] | false | - | 复制的属性名称,元组的第一个元素为原始名字,第二个元素为新名字 |
方法
getCheckedNodes
如果节点可以被选中,(show-checkbox
为 true
), 本方法将返回当前选中节点的数组。
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
leafOnly | boolean | false | 是否只返回叶子节点 |
includeHalfChecked | boolean | false | 是否包含半选节点 |
setCheckedNodes
设置目前勾选的节点,使用此方法必须提前设置 node-key
属性。
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
nodes | Node[] | false | 要选中的节点构成的数组 |
leafOnly | boolean | false | 是否仅设置叶子节点 |
getCheckedKeys
若节点可用被选中 (show-checkbox
为 true
), 它将返回当前选中节点 key 的数组
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
leafOnly | boolean | false | 是否只返回叶子节点 |
setCheckedKeys
设置目前选中的节点,使用此方法必须设置 node-key
属性
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
keys | string[] | number[] | - | 一个需要被选中的多节点 key 的数组 |
leafOnly | boolean | false | 是否仅设置叶子节点 |
setChecked
设置节点是否被选中, 使用此方法必须设置 node-key
属性
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
data | string | T | - | 要选中的节点的 key 或者数据 |
checked | boolean | false | 是否选中 |
deep | boolean | false | 是否递归选中子节点 |
getCurrentKey
返回当前被选中节点 key 的数据 (如果没有则返回 null)
getCurrentNode
返回当前被选中节点的数据 (如果没有则返回 null)
setCurrentKey
通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key
属性
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
key | string | number | - | 待被选节点的 key, 如果为 null, 取消当前选中的节点 |
shouldAutoExpandParent | boolean | true | 是否自动展开父节点 |