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 = ( -
+
{viewProps.placeholder || '拖拽组件或模板到这里'}
); diff --git a/packages/utils/package.json b/packages/utils/package.json index 6f56bc89d..b23f3a054 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@ali/lowcode-utils", - "version": "1.0.7-0", + "version": "1.0.7-1", "description": "Utils for Ali lowCode engine", "files": [ "es", diff --git a/packages/rax-render/src/utils/appHelper.ts b/packages/utils/src/appHelper.ts similarity index 94% rename from packages/rax-render/src/utils/appHelper.ts rename to packages/utils/src/appHelper.ts index b4fef97c3..3046af0cd 100644 --- a/packages/rax-render/src/utils/appHelper.ts +++ b/packages/utils/src/appHelper.ts @@ -6,7 +6,7 @@ let instance = null; EventEmitter.defaultMaxListeners = 100; -export default class AppHelper extends EventEmitter { +export class AppHelper extends EventEmitter { static getInstance = () => { if (!instance) { instance = new AppHelper(); diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 08d5342b1..0f9fcad2a 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -19,3 +19,4 @@ export * from './shallow-equal'; export * from './svg-icon'; export * from './unique-id'; export * from './build-components'; +export * from './appHelper';