diff --git a/packages/designer/src/document/document-model.ts b/packages/designer/src/document/document-model.ts index c7e25b7a1..11c32fc42 100644 --- a/packages/designer/src/document/document-model.ts +++ b/packages/designer/src/document/document-model.ts @@ -1,4 +1,4 @@ -import { computed, makeObservable, obx, action, runWithGlobalEventOff, wrapWithEventSwitch } from '@alilc/lowcode-editor-core'; +import { makeObservable, obx, engineConfig, action, runWithGlobalEventOff, wrapWithEventSwitch } from '@alilc/lowcode-editor-core'; import { NodeData, isJSExpression, isDOMText, NodeSchema, isNodeSchema, RootSchema, PageSchema, ComponentsMap } from '@alilc/lowcode-types'; import { EventEmitter } from 'events'; import { Project } from '../project'; @@ -87,7 +87,7 @@ export class DocumentModel { if (this._drillDownNode) { return this._drillDownNode; } - const selector = this.designer.editor?.get<((rootNode: RootNode) => Node) | null>('focusNodeSelector'); + const selector = engineConfig.get('focusNodeSelector'); if (selector && typeof selector === 'function') { return selector(this.rootNode!); } diff --git a/packages/editor-core/src/config.ts b/packages/editor-core/src/config.ts index 06600fd01..b88dda6e6 100644 --- a/packages/editor-core/src/config.ts +++ b/packages/editor-core/src/config.ts @@ -141,6 +141,10 @@ const VALID_ENGINE_OPTIONS = { type: 'boolean', description: '当开启组件未找到严格模式时,渲染模块不会默认给一个容器组件', }, + focusNodeSelector: { + type: 'function', + description: '配置指定节点为根组件', + }, }; export interface EngineOptions { /** @@ -268,6 +272,11 @@ export interface EngineOptions { * 当开启组件未找到严格模式时,渲染模块不会默认给一个容器组件 */ enableStrictNotFoundMode?: boolean; + + /** + * 配置指定节点为根组件 + */ + focusNodeSelector?: (rootNode: Node) => Node; } const getStrictModeValue = (engineOptions: EngineOptions, defaultValue: boolean): boolean => {