From a171d3ef46b2a717ebbf2b55e023857968808ca3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8A=9B=E7=9A=93?= Date: Thu, 3 Sep 2020 11:38:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=20set('schema')=20?= =?UTF-8?q?=E5=90=8E=20componentsTree=20=E8=B6=8A=E6=9D=A5=E8=B6=8A?= =?UTF-8?q?=E5=A4=9A=E7=9A=84=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/designer/src/document/document-model.ts | 6 +++++- packages/designer/src/project/project.ts | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/designer/src/document/document-model.ts b/packages/designer/src/document/document-model.ts index 7a7666d63..6cb074f11 100644 --- a/packages/designer/src/document/document-model.ts +++ b/packages/designer/src/document/document-model.ts @@ -1,5 +1,5 @@ import { computed, obx } from '@ali/lowcode-editor-core'; -import { NodeData, isJSExpression, isDOMText, NodeSchema, isNodeSchema, RootSchema } from '@ali/lowcode-types'; +import { NodeData, isJSExpression, isDOMText, NodeSchema, isNodeSchema, RootSchema, PageSchema } from '@ali/lowcode-types'; import { EventEmitter } from 'events'; import { Project } from '../project'; import { ISimulatorHost } from '../simulator'; @@ -659,3 +659,7 @@ export class DocumentModel { export function isDocumentModel(obj: any): obj is DocumentModel { return obj && obj.rootNode; } + +export function isPageSchema(obj: any): obj is PageSchema { + return obj?.componentName === 'Page'; +} diff --git a/packages/designer/src/project/project.ts b/packages/designer/src/project/project.ts index 47e03f24c..13cb65be0 100644 --- a/packages/designer/src/project/project.ts +++ b/packages/designer/src/project/project.ts @@ -1,7 +1,7 @@ import { EventEmitter } from 'events'; import { obx, computed } from '@ali/lowcode-editor-core'; import { Designer } from '../designer'; -import { DocumentModel, isDocumentModel } from '../document'; +import { DocumentModel, isDocumentModel, isPageSchema } from '../document'; import { ProjectSchema, RootSchema } from '@ali/lowcode-types'; export class Project { @@ -138,6 +138,11 @@ export class Project { if (isDocumentModel(doc)) { return doc.open(); + } else if (isPageSchema(doc)) { + const foundDoc = this.documents.find(curDoc => curDoc?.rootNode?.id && curDoc?.rootNode?.id === doc?.id); + if (foundDoc) { + foundDoc.remove(); + } } doc = new DocumentModel(this, doc);