diff --git a/.eslintrc.js b/.eslintrc.js index 4dd6c2db3..7f19d5ce7 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -26,5 +26,6 @@ module.exports = { '@typescript-eslint/no-inferrable-types': 0, 'no-proto': 0, 'prefer-const': 0, + 'eol-last': 0, } }; diff --git a/packages/designer/src/builtin-simulator/host.ts b/packages/designer/src/builtin-simulator/host.ts index 05b655d0b..0486b5743 100644 --- a/packages/designer/src/builtin-simulator/host.ts +++ b/packages/designer/src/builtin-simulator/host.ts @@ -40,7 +40,7 @@ import clipboard from '../designer/clipboard'; import { LiveEditing } from './live-editing/live-editing'; import { Project } from '../project'; import { Scroller } from '../designer/scroller'; -import { isDOMNodeVisible } from '../utils/misc'; +import { isElementNode, isDOMNodeVisible } from '../utils/misc'; export interface LibraryItem { package: string; @@ -196,7 +196,7 @@ export class BuiltinSimulatorHost implements ISimulatorHost { return null; } + if (node.componentMeta?.getMetadata().configure.component?.isModal) { + return { container: this.document.rootNode, ref }; + } + const canDropIn = this.componentMeta?.prototype?.options?.canDropIn; if (this.isContainer()) { if (canDropIn === undefined || diff --git a/packages/designer/src/utils/misc.ts b/packages/designer/src/utils/misc.ts index c13aa021f..ee79e5729 100644 --- a/packages/designer/src/utils/misc.ts +++ b/packages/designer/src/utils/misc.ts @@ -1,5 +1,9 @@ import Viewport from '../builtin-simulator/viewport'; +export function isElementNode(domNode: Element) { + return domNode.nodeType === Node.ELEMENT_NODE; +} + export function isDOMNodeVisible(domNode: Element, viewport: Viewport) { const domNodeRect = domNode.getBoundingClientRect(); const { width, height } = viewport.contentBounds; diff --git a/packages/editor-skeleton/src/components/stage-box/stage.tsx b/packages/editor-skeleton/src/components/stage-box/stage.tsx index eff8b07f5..1d3d3cea0 100644 --- a/packages/editor-skeleton/src/components/stage-box/stage.tsx +++ b/packages/editor-skeleton/src/components/stage-box/stage.tsx @@ -3,6 +3,7 @@ import React, { Component } from 'react'; import classNames from 'classnames'; import Icons from '@ali/ve-icons'; import { Stage as StageWidget } from '../../widget/stage'; +import { isTitleConfig } from '@ali/lowcode-types'; export const StageDefaultProps = { current: false, @@ -55,6 +56,8 @@ export default class Stage extends Component { render() { const { stage, current, direction } = this.props; const content = stage?.getContent(); + const { title } = stage!; + const newTitle = isTitleConfig(title) ? title.label : title; if (current) { if (direction) { @@ -75,7 +78,7 @@ export default class Stage extends Component { const stageBacker = stage?.hasBack() ? (
- {stage.title} + {newTitle}
) : null;