13 KiB

title, sidebar_position
title sidebar_position
Node 1

@types IPublicModelNode
@since v1.0.0

基本介绍

节点模型

变量

id

节点 id

@type {string}

title

节点标题

@type {string | IPublicTypeI18nData | ReactElement}

相关类型:IPublicTypeI18nData

isContainerNode

是否为「容器型」节点

@type {boolean}

@since v1.1.0

v1.1.0 之前请使用 isContainer

isRootNode

是否为根节点

@type {boolean}

@since v1.1.0

v1.1.0 之前请使用 isRoot

isEmptyNode

是否为空节点(无 children 或者 children 为空)

@type {boolean}

@since v1.1.0

v1.1.0 之前请使用 isEmpty

isPageNode

是否为 Page 节点

@type {boolean}

@since v1.1.0

v1.1.0 之前请使用 isPage

isComponentNode

是否为 Component 节点

@type {boolean}

@since v1.1.0

v1.1.0 之前请使用 isComponent

isModalNode

是否为「模态框」节点

@type {boolean}

@since v1.1.0

v1.1.0 之前请使用 isModal

isSlotNode

是否为插槽节点

@type {boolean}

@since v1.1.0

v1.1.0 之前请使用 isSlot

isParentalNode

是否为父类/分支节点

@type {boolean}

@since v1.1.0

v1.1.0 之前请使用 isParental

isLeafNode

是否为叶子节点

@type {boolean}

@since v1.1.0

v1.1.0 之前请使用 isLeaf

isLocked

获取当前节点的锁定状态

@since v1.0.16

isRGLContainerNode

设置为磁贴布局节点,使用方式可参考:磁贴布局在钉钉宜搭报表设计引擎中的实现

@type {boolean}

@since v1.1.0

v1.0.16 - v1.1.0 请使用 isRGLContainer

index

下标

@type {number}

icon

图标

@type {IPublicTypeIconType}

相关类型:IPublicTypeIconType

zLevel

节点所在树的层级深度,根节点深度为 0

@type {number}

componentName

节点 componentName

@type {string}

componentMeta

节点的物料元数据

@type {IPublicModelComponentMeta | null}

相关类型:IPublicTypeIconType

document

获取节点所属的文档模型对象

@type {IPublicModelDocumentModel | null}

相关类型:IPublicModelDocumentModel

prevSibling

获取当前节点的前一个兄弟节点

@type {IPublicModelNode | null}

nextSibling

获取当前节点的后一个兄弟节点

@type {IPublicModelNode | null}

parent

获取当前节点的父亲节点

@type {IPublicModelNode | null}

children

获取当前节点的孩子节点模型

@type {IPublicModelNodeChildren | null}

相关类型:IPublicModelNodeChildren

slots

节点上挂载的插槽节点们

@type {IPublicModelNode[]}

slotFor

当前节点为插槽节点时,返回节点对应的属性实例

@type {IPublicModelProp | null}

相关类型:IPublicModelProp

props

返回节点的属性集

@type {IPublicModelProps | null}

相关类型:IPublicModelProps

propsData

返回节点的属性集值

@type {IPublicTypePropsMap | IPublicTypePropsList | null}

相关类型:

conditionGroup

获取条件组

@type {IPublicModelExclusiveGroup | null}

相关类型:IPublicModelExclusiveGroup

@since v1.1.0

schema

获取符合搭建协议 - 节点 schema 结构

@type {IPublicTypeNodeSchema | null}

相关类型:IPublicTypeNodeSchema

settingEntry

获取对应的 setting entry

@type {IPublicModelSettingTopEntry}

相关类型:IPublicModelSettingTopEntry

visible

当前节点是否可见

@type {boolean}

@since v1.1.0

方法签名

getRect

返回节点的尺寸、位置信息

/**
 * 返回节点的尺寸、位置信息
 * get rect information for this node
 */
getRect(): DOMRect | null;

hasSlots

是否有挂载插槽节点

/**
 * 是否有挂载插槽节点
 * check if current node has slots
 */
hasSlots(): boolean;

hasCondition

是否设定了渲染条件

/**
 * 是否设定了渲染条件
 * check if current node has condition value set
 */
hasCondition(): boolean;

hasLoop

是否设定了循环数据

/**
 * 是否设定了循环数据
 * check if loop is set for this node
 */
hasLoop(): boolean;

getProp

获取指定 path 的属性模型实例

/**
 * 获取指定 path 的属性模型实例
 * get prop by path
 * @param path 属性路径,支持 a / a.b / a.0 等格式
 */
getProp(path: string, createIfNone: boolean): IPublicModelProp | null;

相关类型:IPublicModelProp

getPropValue

获取指定 path 的属性模型实例值

/**
 * 获取指定 path 的属性模型实例值
 * get prop value by path
 * @param path 属性路径,支持 a / a.b / a.0 等格式
 */
getPropValue(path: string): any;

getExtraProp

获取指定 path 的属性模型实例,注:导出时,不同于普通属性,该属性并不挂载在 props 之下,而是与 props 同级

/**
 * 获取指定 path 的属性模型实例,
 *  注:导出时,不同于普通属性,该属性并不挂载在 props 之下,而是与 props 同级
 *
 * get extra prop by path, an extra prop means a prop not exists in the `props`
 * but as siblint of the `props`
 * @param path 属性路径,支持 a / a.b / a.0 等格式
 * @param createIfNone 当没有属性的时候,是否创建一个属性
 */
getExtraProp(path: string, createIfNone?: boolean): IPublicModelProp | null;

相关类型:IPublicModelProp

getExtraPropValue

获取指定 path 的属性模型实例,注:导出时,不同于普通属性,该属性并不挂载在 props 之下,而是与 props 同级

/**
 * 获取指定 path 的属性模型实例,
 *  注:导出时,不同于普通属性,该属性并不挂载在 props 之下,而是与 props 同级
 *
 * get extra prop value by path, an extra prop means a prop not exists in the `props`
 * but as siblint of the `props`
 * @param path 属性路径,支持 a / a.b / a.0 等格式
 * @returns
 */
getExtraPropValue(path: string): any;

setPropValue

setPropValue(path: string, value: CompositeValue)

设置指定 path 的属性模型实例值

/**
 * 设置指定 path 的属性模型实例值
 * set value for prop with path
 * @param path 属性路径,支持 a / a.b / a.0 等格式
 * @param value 值
 */
setPropValue(path: string, value: IPublicTypeCompositeValue): void;

相关类型:IPublicTypeCompositeValue

setExtraPropValue

设置指定 path 的属性模型实例值

/**
 * 设置指定 path 的属性模型实例值
 * set value for extra prop with path
 * @param path 属性路径,支持 a / a.b / a.0 等格式
 * @param value 值
 */
setExtraPropValue(path: string, value: IPublicTypeCompositeValue): void;

相关类型:IPublicTypeCompositeValue

importSchema

导入节点数据

/**
 * 导入节点数据
 * import node schema
 * @param data
 */
importSchema(data: IPublicTypeNodeSchema): void;

相关类型:IPublicTypeNodeSchema

exportSchema

导出节点数据

/**
 * 导出节点数据
 * export schema from this node
 * @param stage
 * @param options
 */
exportSchema(stage: IPublicEnumTransformStage, options?: any): IPublicTypeNodeSchema;

相关类型:

insertBefore

在指定位置之前插入一个节点

/**
 * 在指定位置之前插入一个节点
 * insert a node befor current node
 * @param node
 * @param ref
 * @param useMutator
 */
insertBefore(
    node: IPublicModelNode,
    ref?: IPublicModelNode | undefined,
    useMutator?: boolean,
  ): void;

insertAfter

在指定位置之后插入一个节点

/**
 * 在指定位置之后插入一个节点
 * insert a node after this node
 * @param node
 * @param ref
 * @param useMutator
 */
insertAfter(
    node: IPublicModelNode,
    ref?: IPublicModelNode | undefined,
    useMutator?: boolean,
  ): void;

replaceChild

替换指定子节点

/**
 * 替换指定子节点
 * replace a child node with data provided
 * @param node 待替换的子节点
 * @param data 用作替换的节点对象或者节点描述
 * @returns
 */
replaceChild(node: IPublicModelNode, data: any): IPublicModelNode | null;

replaceWith

将当前节点替换成指定节点描述

/**
 * 将当前节点替换成指定节点描述
 * replace current node with a new node schema
 * @param schema
 */
replaceWith(schema: IPublicTypeNodeSchema): any;

相关类型:IPublicTypeNodeSchema

select

选中当前节点实例

/**
 * 选中当前节点实例
 * select current node
 */
select(): void;

hover

设置悬停态

/**
 * 设置悬停态
 * set hover value for current node
 * @param flag
 */
hover(flag: boolean): void;

lock

设置节点锁定状态

/**
 * 设置节点锁定状态
 * set lock value for current node
 * @param flag
 * @since v1.0.16
 */
lock(flag?: boolean): void;

@since v1.0.16

remove

删除当前节点实例

/**
 * 删除当前节点实例
 * remove current node
 */
remove(): void;

mergeChildren

执行新增、删除、排序等操作

/**
 * 执行新增、删除、排序等操作
 * excute remove/add/sort operations on node`s children
 *
 * @since v1.1.0
 */
mergeChildren(
  remover: (node: IPublicModelNode, idx: number) => boolean,
  adder: (children: IPublicModelNode[]) => any,
  sorter: (firstNode: IPublicModelNode, secondNode: IPublicModelNode) => number
): any;

@since v1.1.0

contains

当前节点是否包含某子节点

/**
 * 当前节点是否包含某子节点
 * check if current node contains another node as a child
 * @param node
 * @since v1.1.0
 */
contains(node: IPublicModelNode): boolean;

@since v1.1.0

canPerformAction

是否可执行某 action

/**
 * 是否可执行某 action
 * check if current node can perform certain aciton with actionName
 * @param actionName action 名字
 * @since v1.1.0
 */
canPerformAction(actionName: string): boolean;

@since v1.1.0

isConditionalVisible

获取该节点的 ConditionalVisible 值

/**
 * 获取该节点的 ConditionalVisible 值
 * check if current node ConditionalVisible
 * @since v1.1.0
 */
isConditionalVisible(): boolean | undefined;

@since v1.1.0

setConditionalVisible

设置该节点的 ConditionalVisible 为 true

/**
 * 设置该节点的 ConditionalVisible 为 true
 * make this node as conditionalVisible === true
 * @since v1.1.0
 */
setConditionalVisible(): void;

@since v1.1.0