diff --git a/packages/designer/src/document/node/node.ts b/packages/designer/src/document/node/node.ts index 7186d7c6a..f37268dd7 100644 --- a/packages/designer/src/document/node/node.ts +++ b/packages/designer/src/document/node/node.ts @@ -262,8 +262,12 @@ export class Node { return this.isParental() && this.componentMeta.isContainer; } + isModal(): boolean { + return this.componentMeta.isModal; + } + isRoot(): boolean { - return this.document.rootNode == (this as any); + return this.document.rootNode === (this as any); } isPage(): boolean { diff --git a/packages/shell/src/node.ts b/packages/shell/src/node.ts index de7358390..a2949809b 100644 --- a/packages/shell/src/node.ts +++ b/packages/shell/src/node.ts @@ -67,6 +67,13 @@ export default class Node { return this[nodeSymbol].isComponent(); } + /** + * 是否为「模态框」节点 + */ + get isModal() { + return this[nodeSymbol].isModal(); + } + /** * 是否为插槽节点 */ @@ -184,6 +191,13 @@ export default class Node { return Props.create(this[nodeSymbol].props); } + /** + * 返回节点的属性集 + */ + get propsData() { + return this[nodeSymbol].propsData; + } + /** * @deprecated use .children instead */ @@ -192,7 +206,7 @@ export default class Node { } /** - * @deprecated + * 获取节点实例对应的 dom 节点 */ getDOMNode() { return this[nodeSymbol].getDOMNode(); @@ -350,4 +364,19 @@ export default class Node { replaceWith(schema: NodeSchema) { this[nodeSymbol].replaceWith(schema); } + + /** + * 选中当前节点实例 + */ + select() { + this[nodeSymbol].select(); + } + + /** + * 设置悬停态 + * @param flag + */ + hover(flag = true) { + this[nodeSymbol].hover(flag); + } } diff --git a/packages/shell/src/setting-prop-entry.ts b/packages/shell/src/setting-prop-entry.ts index 71ea2cb0d..0ebd6b011 100644 --- a/packages/shell/src/setting-prop-entry.ts +++ b/packages/shell/src/setting-prop-entry.ts @@ -15,10 +15,34 @@ export default class SettingPropEntry { return new SettingPropEntry(prop); } + /** + * 获取设置属性的 name + */ + get name() { + return this[settingPropEntrySymbol].name; + } + + /** + * 获取设置属性的 key + */ + get key() { + return this[settingPropEntrySymbol].getKey(); + } + + /** + * 获取设置属性对应的节点实例 + */ get node(): Node | null { return Node.create(this[settingPropEntrySymbol].getNode()); } + /** + * 获取设置属性的父设置属性 + */ + get parent(): SettingPropEntry { + return SettingPropEntry.create(this[settingPropEntrySymbol].parent as any); + } + /** * @deprecated use .node instead */ @@ -26,6 +50,13 @@ export default class SettingPropEntry { return this.node; } + /** + * @deprecated use .parent instead + */ + getParent() { + return this.parent; + } + /** * 设置值 * @param val