Skip to content

BizTree 业务树 ​

基于 el-tree 封装的“展示 + 操作”形态业务树:关键字搜索过滤(命中高亮)、复选(父子关联开关)、展开层级控制、懒加载透传、内置 loading 遮罩、节点 hover 操作按钮(新增 / 编辑 / 删除事件外抛,action-filter 按节点定制)。其余属性 / 事件透传 el-tree(node-click、node-expand、check 等)。菜单管理、组织部门管理、商品 / 物料分类管理。

与 BizOrgTreeSelect 的边界:后者是表单字段级的“选出来”形态;本组件面向页面主体区的展示与维护(搜索、操作、懒加载一体的管理树)。

基础用法 ​

华东大区
上海分公司
杭州分公司
华北大区
北京分公司
静态数据 + expand-level 层级展开 + node-click 当前高亮(透传 el-tree)。

搜索过滤 ​

系统管理
用户管理
用户列表
用户分组
角色管理
角色列表
数据权限
操作日志
商品中心
商品列表
分类管理
searchable 输入即过滤,命中关键词自动高亮、命中路径自动展开。

节点操作按钮 ​

商品中心
商品列表
分类管理

hover 节点显示操作按钮;新增 / 删除直接操作本地数据,编辑仅演示事件外抛

show-actions hover 显示操作按钮,node-add / node-edit / node-remove 事件外抛(数据变更由外部处理,示例内直接改本地数据);action-filter 按节点定制可见操作。

复选形态 ​

父子不关联(checkStrictly)
数据看板
销售统计
库存统计
报表中心
日报
月报

已勾选叶子节点:(暂无)

checkable 复选 + check-strictly 父子关联开关,getCheckedNodes 经 expose 取完整节点。

懒加载 ​

暂无数据

展开节点时延迟 600ms 模拟接口返回子级

lazy + load 按需拉取子级(透传 el-tree),loading 控制首屏遮罩。

自定义节点 ​

运营管理
活动管理启用12 条
内容审核停用3 条
会员管理
会员列表启用230 条
等级规则启用
默认 slot 接管节点内容(图标 / 状态标签 / 计数),tree-props 重定义 label 字段。

Props ​

属性名类型默认值说明
dataBizTreeNodeData[][]树数据
tree-propsTreeOptionProps—字段映射(透传 el-tree props:label / children / disabled / isLeaf)
node-keystring'id'节点唯一键字段名,操作类方法(append / remove 等)依赖
searchablebooleanfalse顶部搜索框:输入即过滤,命中关键词高亮
filter-placeholderstring'请输入关键字'搜索占位文案
filter-method(query, data) => boolean—自定义过滤方法(默认 label 包含匹配,不区分大小写)
checkablebooleanfalse复选形态(show-checkbox)
check-strictlybooleanfalse复选父子不关联
default-expand-allbooleanfalse默认展开全部(懒加载模式下仅展开已加载节点)
expand-levelnumber1展开层级(default-expand-all 为 false 时生效,懒加载模式无效)
lazybooleanfalse懒加载模式(load 必传)
loadLoadFunction—懒加载函数(透传 el-tree load)
loadingbooleanfalse加载中遮罩
highlight-currentbooleantrue高亮当前点击节点
expand-on-click-nodebooleanfalse点击节点即展开 / 折叠
show-actionsbooleanfalse节点 hover 显示操作按钮(事件外抛,数据变更由外部处理)
action-filter(data, isLeaf) => BizTreeAction[]—按节点定制可见操作(返回空数组则该节点不显示;默认 add / edit / remove)
empty-textstring'暂无数据'空态文案
heightnumber | string—容器高度(超出滚动),如 360 / '100%'

Events ​

事件名参数说明
node-add(data, node)点击节点「新增子级」按钮
node-edit(data, node)点击节点「编辑」按钮
node-remove(data, node)点击节点「删除」按钮
node-click / node-expand / check / …—el-tree 原生事件透传(v-bind="$attrs" 落到内部 el-tree)

Slots ​

插槽名说明
default节点内容,作用域 { node, data }(不传时渲染 label + 搜索高亮 + 操作按钮)
search搜索区整体替换,作用域 { query }
empty空态整体替换

Expose ​

名称类型说明
getTree() => TreeInstanceel-tree 实例(链式调用原生方法)
filter(query: string) => void外部触发关键字过滤
clearFilter() => void清空搜索
append(data, parent) => void在指定父节点(key 或节点)下追加子节点
remove(node) => void删除节点
getCheckedKeys() => Array<string | number>获取勾选节点 key 集合
getCheckedNodes(leafOnly?: boolean) => BizTreeNodeData[]获取勾选节点数据集合
setCheckedKeys(keys) => void设置勾选
setCurrentKey(key) => void设置当前高亮节点
getCurrentNode() => BizTreeNodeData | undefined获取当前高亮节点数据

TIP

需要 node-contextmenu、node-collapse 等更多 el-tree 能力时直接在组件上绑定即可(原生透传);节点右键菜单可基于 node-contextmenu + ElDropdown 自行组合。