Skip to content

树形展示

树形展示 是一个 基于 el-tree 封装的功能完整的低代码树形组件,支持懒加载、节点搜索、手风琴模式、节点菜单及创建操作,并提供与业务逻辑深度集成的事件与函数绑定能力。

基础属性

属性名类型默认值说明
highlightCurrentboolean--是否高亮当前选中节点
defaultExpandAllboolean--是否默认展开所有节点
accordionboolean--是否手风琴模式展开节点。每次只打开一个同级树节点展开
lazyboolean--是否懒加载
expandOnClickNodebooleanfalse点击时是否展开或收缩节点
checkOnClickNodebooleantrue点击时是否选中节点
loadDataFunction(可执行函数)return Promise.resolve([])数据加载函数。懒加载情况下 $args[0] 为 node 数据
createButtonActionButton--创建按钮
menuButtonsActionButton[]--节点菜单按钮。$args[0] 为 node 数据

组件事件

事件名说明
node-click树节点点击时触发。若连续两次点击同一节点,则第二次会清空当前选中状态并触发无参回调;否则传入当前节点数据

上下文

该组件通过 exposeContext 暴露运行时上下文,使用方式如下:

  • 可执行函数(如事件函数、属性绑定函数)中,通过 $useExposeContext(key) 获取;
  • 自定义 Hook 或其他组件中,通过 useExposeContext(key) 获取。
typescript
exposeContext({
  refresh: () => refresh()
})

上下文内容:

键(key)说明
refresh重新加载组件

示例

参考 媒体库

数据加载函数(懒加载情况)

javascript
return (async () => {
    const { level, data } = $args[0]
    if (level == 0) {
        return [{ id: 0, name: '一级目录' }]
    } else {
        const resp = await $request({
            method: 'post',
            url: '/lowcode/deploy-api/lowcode-media-dir/select-list',
            data: {
                whereParams: [{
                    name: 'parentId',
                    symbol: 'EQ',
                    value: data.id
                }]
            }
        })
        return resp.data
    }
})()