From 7df2d153f29db4ba0c582be4cd12b37d61ff0fcf Mon Sep 17 00:00:00 2001 From: "lihao.ylh" Date: Mon, 10 Jan 2022 12:06:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=A1=A5=E5=85=85=E9=83=A8=E5=88=86=20?= =?UTF-8?q?API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/designer/src/document/node/node.ts | 6 +++- packages/shell/src/node.ts | 31 ++++++++++++++++++++- packages/shell/src/setting-prop-entry.ts | 31 +++++++++++++++++++++ 3 files changed, 66 insertions(+), 2 deletions(-) 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