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); diff --git a/packages/rax-render/package.json b/packages/rax-render/package.json index f9eb41e98..1098f8fca 100644 --- a/packages/rax-render/package.json +++ b/packages/rax-render/package.json @@ -1,6 +1,6 @@ { "name": "@ali/lowcode-rax-renderer", - "version": "1.0.7-0", + "version": "1.0.7-1", "description": "Rax renderer for Ali lowCode engine", "main": "lib/index.js", "module": "lib/index.js", @@ -36,6 +36,7 @@ "@ali/b3-one": "^0.0.17", "@ali/bzb-request": "2.6.1", "@ali/lib-mtop": "^2.5.1", + "@ali/lowcode-utils": "^0.8.22", "classnames": "^2.2.6", "debug": "^4.1.1", "events": "^3.0.0", diff --git a/packages/rax-render/src/hoc/compFactory.tsx b/packages/rax-render/src/hoc/compFactory.tsx index 719b4fd9b..a1ad666bf 100644 --- a/packages/rax-render/src/hoc/compFactory.tsx +++ b/packages/rax-render/src/hoc/compFactory.tsx @@ -2,7 +2,7 @@ import { Component, createElement, forwardRef } from 'rax'; import PropTypes from 'prop-types'; -import AppHelper from '../utils/appHelper'; +import { AppHelper } from '@ali/lowcode-utils'; import { forEach, isFileSchema } from '../utils'; import CompEngine from '../engine/compEngine'; import BlockEngine from '../engine/blockEngine'; diff --git a/packages/react-simulator-renderer/src/renderer-view.tsx b/packages/react-simulator-renderer/src/renderer-view.tsx index 51d01ed39..04326932a 100644 --- a/packages/react-simulator-renderer/src/renderer-view.tsx +++ b/packages/react-simulator-renderer/src/renderer-view.tsx @@ -117,7 +117,7 @@ class Renderer extends Component<{ renderer: SimulatorRenderer }> { (!viewProps.style || Object.keys(viewProps.style).length === 0) ) { children = ( -