From b7c11834602d8e4ea84d2dea035a3abf97b33d5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8A=9B=E7=9A=93?= Date: Tue, 13 Apr 2021 20:54:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20componentsMap=20=E4=B8=AD=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E4=BD=8E=E4=BB=A3=E7=A0=81=E7=BB=84=E4=BB=B6=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/src/document/document-model.ts | 28 ++++++++++++------- packages/types/src/metadata.ts | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/packages/designer/src/document/document-model.ts b/packages/designer/src/document/document-model.ts index 3722945f6..0c0cb0bb6 100644 --- a/packages/designer/src/document/document-model.ts +++ b/packages/designer/src/document/document-model.ts @@ -21,11 +21,12 @@ export type GetDataType = T extends undefined export interface ComponentMap { componentName: string; - package: string; + package?: string; version?: string; destructuring?: boolean; exportName?: string; subName?: string; + devMode?: 'lowcode' | 'procode'; } export class DocumentModel { @@ -637,26 +638,33 @@ export class DocumentModel { getComponentsMap(extraComps?: string[]) { const componentsMap: ComponentMap[] = []; // 组件去重 - const map: any = {}; + const exsitingMap: { [componentName: string]: boolean } = {}; for (const node of this._nodesMap.values()) { const { componentName } = node || {}; - if (!map[componentName] && node.componentMeta?.npm?.package) { - map[componentName] = true; - componentsMap.push({ - ...node.componentMeta.npm, - componentName, - }); + if (!exsitingMap[componentName]) { + exsitingMap[componentName] = true; + if (node.componentMeta?.npm?.package) { + componentsMap.push({ + ...node.componentMeta.npm, + componentName, + }); + } else { + componentsMap.push({ + devMode: 'lowcode', + componentName, + }); + } } } // 合并外界传入的自定义渲染的组件 if (Array.isArray(extraComps)) { extraComps.forEach(c => { - if (c && !map[c]) { + if (c && !exsitingMap[c]) { const m = this.getComponentMeta(c); if (m && m.npm?.package) { componentsMap.push({ + ...m?.npm, componentName: c, - package: m.npm?.package, }); } } diff --git a/packages/types/src/metadata.ts b/packages/types/src/metadata.ts index 7ea0428fc..bb8d7da34 100644 --- a/packages/types/src/metadata.ts +++ b/packages/types/src/metadata.ts @@ -215,4 +215,4 @@ export interface Callbacks { }, currentNode: any, ) => void; -} +} \ No newline at end of file