From f3352231a0ce0d31c9bf63fa0872a2e11de276a3 Mon Sep 17 00:00:00 2001 From: "mario.gk" Date: Wed, 12 May 2021 17:03:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=20schema=20=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=20componentsMap=20=E5=92=8C=20utils=20=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/designer/src/document/document-model.ts | 14 ++++++++++++++ packages/vision-polyfill/src/bundle/prototype.ts | 3 +++ 2 files changed, 17 insertions(+) diff --git a/packages/designer/src/document/document-model.ts b/packages/designer/src/document/document-model.ts index 0c0cb0bb6..0ba32e8e3 100644 --- a/packages/designer/src/document/document-model.ts +++ b/packages/designer/src/document/document-model.ts @@ -557,6 +557,7 @@ export class DocumentModel { const node = this.export(TransformStage.Save); const data = { componentsMap: this.getComponentsMap(extraComps), + utils: this.getUtilsMap(), componentsTree: [node], }; return data; @@ -673,6 +674,19 @@ export class DocumentModel { return componentsMap; } + /** + * 获取 schema 中的 utils 节点,当前版本不判断页面中使用了哪些 utils,直接返回资产包中所有的 utils + * @returns + */ + getUtilsMap() { + return this.designer?.editor?.get('assets')?.utils?.map((item: any) => ({ + name: item.name, + type: item.type || 'npm', + // TODO 当前只有 npm 类型,content 直接设置为 item.npm,有 function 类型之后需要处理 + content: item.npm + })); + } + onNodeCreate(func: (node: Node) => void) { this.emitter.on('nodecreate', func); return () => { diff --git a/packages/vision-polyfill/src/bundle/prototype.ts b/packages/vision-polyfill/src/bundle/prototype.ts index 6c138796c..708a48790 100644 --- a/packages/vision-polyfill/src/bundle/prototype.ts +++ b/packages/vision-polyfill/src/bundle/prototype.ts @@ -369,8 +369,11 @@ class Prototype { } setPackageName(name: string) { + // 从资产包中获取包的更多信息 + const packageInfo = designer?.editor?.get('assets')?.packages?.find((item: any) => item.package === name); this.meta.setNpm({ package: name, + version: packageInfo?.version, componentName: this.getComponentName(), }); }