diff --git a/docs/api/editor/props.md b/docs/api/editor/props.md index ec179e5a..0438a2fa 100644 --- a/docs/api/editor/props.md +++ b/docs/api/editor/props.md @@ -1171,6 +1171,46 @@ const customContentMenu = (menus, { node }) => { ``` +## layerNodeIsExpandable + +- **详情:** + + 用于自定义判断"已选组件"面板中组件树节点是否可展开(即是否要展示为拥有子节点的形态) + + 该函数返回 `true` 时,节点会显示展开图标,并在展开后渲染子节点容器;返回 `false` 时,展开图标显示为透明占位,且不渲染子节点容器 + + 默认行为:当节点的 `items` 中至少存在一个 `visible` 状态为 `true` 的子节点时认为可展开(被搜索过滤隐藏的子节点不会让父节点显示为可展开) + +- **默认值:** `defaultIsExpandable` + +- **类型:** `(data: TreeNodeData, nodeStatusMap: Map) => boolean` + +- **示例:** + +```html + + + +``` + +::: tip +该函数仅作用于"已选组件"面板的组件树节点,不影响代码块、数据源等其它面板内的树。 + +第三方业务可从 `@tmagic/editor` 直接导入 `defaultIsExpandable` 复用默认逻辑作为兜底。 +::: + ## extendFormState - **详情:** diff --git a/packages/editor/src/Editor.vue b/packages/editor/src/Editor.vue index dedbc66f..394a9add 100644 --- a/packages/editor/src/Editor.vue +++ b/packages/editor/src/Editor.vue @@ -26,6 +26,7 @@ :custom-content-menu="customContentMenu" :indent="treeIndent" :next-level-indent-increment="treeNextLevelIndentIncrement" + :layer-node-is-expandable="layerNodeIsExpandable" >