Skip to content

树组件

image

介绍

树组件用来展示具有层级关系的树形数据。

API

Props

参数字段名描述类型默认值
默认状态status状态(支持变量绑定)
default: 默认
hide: 隐藏
'default'、 'hide''default'
通过API获取fetchByApi是否通过api获取booleanfalse
节点数据(API获取)apifetchByApi为true时的所选apistring-
默认展开所有节点defaultExpandAll默认展开所有节点(注意:该配置只在组件渲染时已有数据情况下生效)booleantrue
展开的节点expandedKeys展开的节点(支持变量绑定), 数据为key值数组Array<string | number>-
支持选中selectable支持选中,开启后可选中节点booleantrue
选中的节点selectedKeys选中的节点(支持变量绑定), 数据为key值数组Array<string | number>-
复选框checkable是否可勾选booleanfalse
勾选的节点checkedKeys勾选的节点(支持变量绑定), 数据为key值数组Array<string | number>-
取消父子节点关联checkStrictly是否取消父子节点关联booleanfalse
选中回填方式checkedStrategy定制回填方式
all: 返回所有选中的节点
parent: 父子节点都选中时只返回父节点
child: 只返回子节点
'all'、'parent'、'child'-
支持拖拽draggable开启后节点可拖拽booleanfalse
开启异步加载loadAsync是否开启数据异步加载booleanfalse
异步加载函数loadMore异步加载子节点数据时调用Action(Object)-
加载中遮罩loading树组件加载状态(支持变量绑定)booleanfalse

Props 样式

参数字段名描述类型默认值
控件尺寸size控件尺寸'large'、'medium'、'small'、'mini''medium'
展示连接线showLine展示连接线booleantrue
节点占据一行blockNode节点占据一行booleantrue

Props 高级

参数字段名描述类型默认值
指定节点数据中的字段名fieldNames指定节点数据中的字段名{key: 'key',title: 'title', children: 'children'}
自定义标题渲染customTitleRender开启后通过jsx对标题自定义渲染booleanfalse
点击配置renderTitleFunc自定义渲染函数,函数字符串string-
节点操作buttons操作节点配置Array<ButtonItem>-
最大展示数量maxButtons节点操作最多展示的数量number-

events

事件名说明回调参数
onSelect选中树节点时ctx
params: {selectedKeys: any[], data: Object}
loopDataList: LoopData
onCheck勾选树节点时ctx
params: {checkedKeys: any[], data: Object}
loopDataList: LoopData
onExpand展开或收起树节点时ctx
params: {expandKeys: any[], data: Object}
loopDataList: LoopData
onDrop拖拽释放时ctx
params: { e: DragEvent; dragNode: TreeNodeData; dropNode: TreeNodeData; dropPosition: number; }
loopDataList: LoopData

Type

LoopData

参数名描述类型
indexName索引变量名string
paramName迭代变量名string
row当前迭代数据元素any
rowIndex当前迭代数据索引any
ref完整循环数组数据ComputedRefImpl<Array>

ButtonItem

参数名描述类型
title标题string
icon图标-
showButtonCondition显示条件String<function>
events事件any

常见场景配置

异步加载

1、开启异步加载

2、编辑异步加载函数,以获取组织下子节点数据为例:

javascript
function action(ctx, params) {
  ctx.loadApi('getChildren', {
    orgCode: params.nodeData.orgCode
  }).then(res => {
    // 设置当前节点的子节点数据
    params.nodeData.children = Array.isArray(res) ? res : [];
    // 调用params.resolve结束加载
    params.resolve()
  })
}