跳到主要内容

Node

@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}

相关类型:IPublicModelComponentMeta

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

getDOMNode

获取节点实例对应的 dom 节点

/**
* 获取节点实例对应的 dom 节点
*/
getDOMNode(): HTMLElement;

getRGL

获取磁贴相关信息

/**
* 获取磁贴相关信息
*/
getRGL(): {
isContainerNode: boolean;
isEmptyNode: boolean;
isRGLContainerNode: boolean;
isRGLNode: boolean;
isRGL: boolean;
rglNode: IPublicModelNode | null;
}