Tree 树形控件
TsTree 提供常见树节点交互能力:单选、父子勾选联动、节点禁用,以及同层/自由拖拽。
支持 childCheckMode(同级多选/单选)与标准三态(checked/unchecked/indeterminate)父节点状态计算。
支持 parentKeysInChecked 配置 checkedKeys 返回是否包含父节点(全选/半选)。
支持 disabledKeys 默认禁用节点配置。
支持通过 nodePaddingLeft 自定义节点 padding-left(并兼容 indent)。
支持 showOverflowTooltip + tooltipEffect 的内置超长文案提示,并保留 slot 自定义覆盖。
拖拽场景推荐配合 update:data 持久化最新结构。
基础用法(单选 + 勾选模式 + 禁用 keys)
支持节点单选、childCheckMode 子节点勾选模式与 disabledKeys 默认禁用节点配置。
当前单选节点:frontend
当前勾选节点:backend-platform-gateway-prod
checkedKeys 父节点返回策略:all-or-indeterminate
禁用节点 keys:frontend-legacy
`disabled-key` + `v-model:checked-keys` 示例(包含禁用且已勾选节点)
当前勾选节点:service-core
说明:`service-core` 使用 `locked: true`(禁用),但初始化在 checked keys 中,展示为“勾选 + 禁用”。
同层拖拽(dragMode = sibling)
同一父节点下允许拖拽排序,不允许跨层级移动。
dragMode="sibling" 仅支持同级节点排序,不能跨父级移动。
自由拖拽(dragMode = free)
支持跨层级拖拽,可放置到目标节点前、后或内部。
dragMode="free" 支持跨层级自由拖拽,可放到节点前、后或节点内部。
最近一次拖拽:暂无
自定义箭头 + 独立勾选
通过 #arrow 插槽替换展开箭头;通过 independentCheck 开启父子节点互不影响的勾选模式。
使用 `showArrow` 可关闭 arrow(含 arrow 插槽渲染)。
使用 `independentCheck` 后,父子节点勾选互不影响。
当前勾选:service-api
文件夹目录(FolderOpen/FolderClose)
通过 showCheckbox=false 隐藏复选框,结合 label-prefix/label-suffix 插槽实现文件夹目录样式。
该示例使用 FolderCloseIcon / FolderOpenIcon 构建文件夹目录,并隐藏了复选框。
右键菜单(node-contextmenu)
通过 node-contextmenu 获取当前节点与原生鼠标事件,可用于自定义右键菜单。
最近右键节点:-
示例中在 `handleRightClick` 里调用了 `event.preventDefault()` 来接管浏览器右键菜单。