From 09785db2a2124ad567f035f13baefcd8377f1908 Mon Sep 17 00:00:00 2001 From: "rongbin.arb" Date: Mon, 8 Nov 2021 11:22:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9EenableLockedNodeSetti?= =?UTF-8?q?ng=EF=BC=8C=E6=94=AF=E6=8C=81=E8=AE=BE=E7=BD=AE=E5=AE=B9?= =?UTF-8?q?=E5=99=A8=E9=94=81=E5=AE=9A=E6=98=AF=E5=B1=9E=E6=80=A7=E4=BB=8D?= =?UTF-8?q?=E7=84=B6=E5=8F=AF=E4=BB=A5=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor-core/src/config.ts | 4 ++++ .../src/components/settings/settings-primary-pane.tsx | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/editor-core/src/config.ts b/packages/editor-core/src/config.ts index 0ba720b59..cd0f9f4ba 100644 --- a/packages/editor-core/src/config.ts +++ b/packages/editor-core/src/config.ts @@ -56,6 +56,10 @@ export interface EngineOptions { * 打开画布的锁定操作,默认值:false */ enableCanvasLock?: boolean; + /** + * 容器锁定后,容器本身是否可以设置属性,仅当画布锁定特性开启时生效, 默认值为:false + */ + enableLockedNodeSetting?: boolean; /** * 当选中节点切换时,是否停留在相同的设置 tab 上,默认值:false */ diff --git a/packages/editor-skeleton/src/components/settings/settings-primary-pane.tsx b/packages/editor-skeleton/src/components/settings/settings-primary-pane.tsx index 8237fda86..a42bb4848 100644 --- a/packages/editor-skeleton/src/components/settings/settings-primary-pane.tsx +++ b/packages/editor-skeleton/src/components/settings/settings-primary-pane.tsx @@ -7,6 +7,7 @@ import { SettingsPane } from './settings-pane'; import { StageBox } from '../stage-box'; import { SkeletonContext } from '../../context'; import { createIcon } from '@ali/lowcode-utils'; + @observer export class SettingsPrimaryPane extends Component<{ editor: Editor; config: any }, { shouldIgnoreRoot: boolean }> { state = { @@ -67,7 +68,7 @@ export class SettingsPrimaryPane extends Component<{ editor: Editor; config: any const designer = editor.get('designer'); const current = designer?.currentSelection?.getNodes()?.[0]; let node: Node | null = settings.first; - const focusNode = node.document.focusNode; + const { focusNode } = node.document; const items = []; let l = 3; @@ -138,7 +139,8 @@ export class SettingsPrimaryPane extends Component<{ editor: Editor; config: any ); } - if (settings.isLocked) { + // 当节点被锁定,且未开启锁定后容器可设置属性 + if (settings.isLocked && !engineConfig.get('enableLockedNodeSetting', false)) { return (
@@ -147,7 +149,6 @@ export class SettingsPrimaryPane extends Component<{ editor: Editor; config: any
); } - if (Array.isArray(settings.items) && settings.items.length === 0) { return (