Merge branch 'feat/optimization-lock' into 'develop'

feat: 新增enableLockedNodeSetting,支持设置容器锁定是属性仍然可以设置

新增enableLockedNodeSetting,支持设置容器锁定是属性仍然可以设置;
部分场景在容器锁定后需要对容器的属性做设定;比如卡片锁定后虽然不能修改卡片内部的子节点,但是仍然希望可以设置卡片的标题;

See merge request !1455778
This commit is contained in:
力皓 2021-11-08 11:32:02 +08:00
commit 5fedc37074
2 changed files with 8 additions and 3 deletions

View File

@ -56,6 +56,10 @@ export interface EngineOptions {
* false
*/
enableCanvasLock?: boolean;
/**
* false
*/
enableLockedNodeSetting?: boolean;
/**
* tab false
*/

View File

@ -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 (
<div className="lc-settings-main">
<div className="lc-settings-notice">
@ -147,7 +149,6 @@ export class SettingsPrimaryPane extends Component<{ editor: Editor; config: any
</div>
);
}
if (Array.isArray(settings.items) && settings.items.length === 0) {
return (
<div className="lc-settings-main">