diff --git a/packages/designer/src/builtin-simulator/bem-tools/border-selecting.tsx b/packages/designer/src/builtin-simulator/bem-tools/border-selecting.tsx index 919bcf876..0a09dd1d9 100644 --- a/packages/designer/src/builtin-simulator/bem-tools/border-selecting.tsx +++ b/packages/designer/src/builtin-simulator/bem-tools/border-selecting.tsx @@ -46,6 +46,12 @@ export class BorderSelectingInstance extends Component<{ dragging, }); + const hideSelectTools = observed.node.componentMeta.getMetadata().experimental?.hideSelectTools; + + if (hideSelectTools) { + return null; + } + return (
{!dragging && } diff --git a/packages/editor-preset-vision/src/bundle/upgrade-metadata.ts b/packages/editor-preset-vision/src/bundle/upgrade-metadata.ts index b155b957a..6b64156b2 100644 --- a/packages/editor-preset-vision/src/bundle/upgrade-metadata.ts +++ b/packages/editor-preset-vision/src/bundle/upgrade-metadata.ts @@ -137,6 +137,7 @@ export interface OldPrototypeConfig { isContainer?: boolean; // => configure.component.isContainer isAbsoluteLayoutContainer?: boolean; // => meta.experimental.isAbsoluteLayoutContainer 是否是绝对定位容器 + hideSelectTools?: boolean; // => meta.experimental.hideSelectTools isModal?: boolean; // => configure.component.isModal isFloating?: boolean; // => configure.component.isFloating descriptor?: string; // => configure.component.descriptor @@ -595,6 +596,7 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) { transducers, isContainer, isAbsoluteLayoutContainer, + hideSelectTools, rectSelector, isModal, isFloating, @@ -684,6 +686,7 @@ export function upgradeMetadata(oldConfig: OldPrototypeConfig) { // 未考虑清楚的,放在实验性段落 const experimental: any = { isAbsoluteLayoutContainer, + hideSelectTools, }; if (context) { // for prototype.getContextInfo diff --git a/packages/types/src/metadata.ts b/packages/types/src/metadata.ts index 4fdefa653..36e99b731 100644 --- a/packages/types/src/metadata.ts +++ b/packages/types/src/metadata.ts @@ -66,6 +66,7 @@ export interface Experimental { callbacks?: Callbacks; initialChildren?: NodeData[] | ((target: SettingTarget) => NodeData[]); isAbsoluteLayoutContainer: boolean; + hideSelectTools?: boolean; // 样式 及 位置,handle上必须有明确的标识以便事件路由判断,或者主动设置事件独占模式 // NWSE 是交给引擎计算放置位置,ReactElement 必须自己控制初始位置