From b0ea54806e2dcc98b405afd0abb6f052dba0e05b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8A=9B=E7=9A=93?= Date: Thu, 3 Dec 2020 15:56:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20documentModel=20=E9=87=8C=E7=9A=84=20add?= =?UTF-8?q?on=20=E7=9B=B8=E5=85=B3=E5=87=BD=E6=95=B0=E8=B7=9F=E5=8E=9F=20v?= =?UTF-8?q?ision=20=E5=AE=9E=E7=8E=B0=E5=AF=B9=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/src/document/document-model.ts | 35 +++++++++++++++---- .../settings/settings-primary-pane.tsx | 2 +- packages/rax-simulator-renderer/package.json | 2 +- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/packages/designer/src/document/document-model.ts b/packages/designer/src/document/document-model.ts index bd4702f07..df9d3dfdb 100644 --- a/packages/designer/src/document/document-model.ts +++ b/packages/designer/src/document/document-model.ts @@ -73,7 +73,7 @@ export class DocumentModel { /** * @deprecated */ - private _addons: { [key: string]: { exportData: () => any; isProp: boolean;} } = {}; + private _addons: Array<{ name: string, exportData: any }> = []; /** * 模拟器 @@ -573,8 +573,26 @@ export class DocumentModel { * @deprecated */ getAddonData(name: string) { - const addon = this._addons[name]; - return addon?.exportData(); + const addon = this._addons.find((item) => item.name === name); + if (addon) { + return addon.exportData(); + } + } + + /** + * @deprecated + */ + exportAddonData() { + const addons = {}; + this._addons.forEach((addon) => { + const data = addon.exportData(); + if (data === null) { + delete addons[addon.name]; + } else { + addons[addon.name] = data; + } + }); + return addons; } /** @@ -584,13 +602,16 @@ export class DocumentModel { if (['id', 'params', 'layout'].indexOf(name) > -1) { throw new Error('addon name cannot be id, params, layout'); } - if (this._addons[name]) { - throw new Error(`node addon ${name} exists`); + const i = this._addons.findIndex((item) => item.name === name); + if (i > -1) { + this._addons.splice(i, 1); } - this._addons[name] = exportData; + this._addons.push({ + exportData, + name, + }); } - acceptRootNodeVisitor( visitorName = 'default', visitorFn: (node: RootNode) => any, diff --git a/packages/editor-skeleton/src/components/settings/settings-primary-pane.tsx b/packages/editor-skeleton/src/components/settings/settings-primary-pane.tsx index d9f9c0651..24b4e4062 100644 --- a/packages/editor-skeleton/src/components/settings/settings-primary-pane.tsx +++ b/packages/editor-skeleton/src/components/settings/settings-primary-pane.tsx @@ -49,7 +49,7 @@ export class SettingsPrimaryPane extends Component<{ editor: Editor; config: any
{createIcon(settings.componentMeta?.icon, { className: 'lc-settings-navigator-icon' })} - <span>x {settings.nodes.length}</span> + <span> x {settings.nodes.length}</span> </div> ); } diff --git a/packages/rax-simulator-renderer/package.json b/packages/rax-simulator-renderer/package.json index 8c7918f04..c86ca501a 100644 --- a/packages/rax-simulator-renderer/package.json +++ b/packages/rax-simulator-renderer/package.json @@ -57,5 +57,5 @@ "publishConfig": { "registry": "https://registry.npm.alibaba-inc.com" }, - "homepage": "https://unpkg.alibaba-inc.com/@ali/lowcode-rax-simulator-renderer@0.13.1-26/build/index.html" + "homepage": "https://unpkg.alibaba-inc.com/@ali/lowcode-rax-simulator-renderer@0.13.1-27/build/index.html" }