From bc655223f004bc39c4b0a3b22205d91bae40ad0e Mon Sep 17 00:00:00 2001 From: "lihao.ylh" Date: Tue, 17 Aug 2021 13:51:11 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=20toolbar=20?= =?UTF-8?q?=E9=87=8C=E6=8C=87=E5=AE=9A=20align:=20left=20|=20center=20|=20?= =?UTF-8?q?right=20=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor-skeleton/src/layouts/workbench.less | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/editor-skeleton/src/layouts/workbench.less b/packages/editor-skeleton/src/layouts/workbench.less index a8541e3ae..ac97c1450 100644 --- a/packages/editor-skeleton/src/layouts/workbench.less +++ b/packages/editor-skeleton/src/layouts/workbench.less @@ -335,9 +335,16 @@ body { flex-direction: column; z-index: 10; .lc-toolbar { + display: flex; height: var(--toolbar-height); background-color: var(--color-pane-background); padding: 8px 16px; + .lc-toolbar-center { + display: flex; + justify-content: center; + align-items: center; + flex: 1; + } } .lc-main-area { flex: 1; From 1b01de251fe028c7a2cfb13afc300e457ffd20ff Mon Sep 17 00:00:00 2001 From: "wanying.jwy" Date: Wed, 11 Aug 2021 10:12:22 +0800 Subject: [PATCH 2/3] feat: 1. reportModified when insert 2. handle canDropTo in hotkey 3. sort left area item feat: enhance-tree modified feat: enhance subtree modified feat: sort left area item feat: add useMutator fix: typo isPurging fix: typo --- .../designer/src/designer/builtin-hotkey.ts | 6 +++++- .../designer/src/document/node/node-children.ts | 17 ++++++----------- packages/designer/src/document/node/node.ts | 12 ++++++++++++ .../editor-skeleton/src/layouts/left-area.tsx | 6 +++++- 4 files changed, 28 insertions(+), 13 deletions(-) diff --git a/packages/designer/src/designer/builtin-hotkey.ts b/packages/designer/src/designer/builtin-hotkey.ts index 73cc409b4..5d187a6b2 100644 --- a/packages/designer/src/designer/builtin-hotkey.ts +++ b/packages/designer/src/designer/builtin-hotkey.ts @@ -156,7 +156,11 @@ hotkey.bind(['command+v', 'ctrl+v'], (e) => { if (!target) { return; } - const nodes = insertChildren(target, componentsTree, index); + let canAddComponentsTree = componentsTree.filter((i) => { + return doc.checkNestingUp(target, i); + }); + if (canAddComponentsTree.length === 0) return; + const nodes = insertChildren(target, canAddComponentsTree, index); if (nodes) { doc.selection.selectAll(nodes.map((o) => o.id)); setTimeout(() => designer.activeTracker.track(nodes[0]), 10); diff --git a/packages/designer/src/document/node/node-children.ts b/packages/designer/src/document/node/node-children.ts index 2f4f1a6b4..221672d3b 100644 --- a/packages/designer/src/document/node/node-children.ts +++ b/packages/designer/src/document/node/node-children.ts @@ -122,6 +122,7 @@ export class NodeChildren { * 删除一个节点 */ delete(node: Node, purge = false, useMutator = true, options: NodeRemoveOptions = {}): boolean { + node.internalPurgeStart(); if (node.isParental()) { foreachReverse(node.children, (subNode: Node) => { subNode.remove(useMutator, purge, options); @@ -150,7 +151,7 @@ export class NodeChildren { document.destroyNode(node); this.emitter.emit('change'); if (useMutator) { - this.reportModified(node, this.owner, { type: 'remove', removeIndex: i, removeNode: node }); + this.reportModified(node, this.owner, { type: 'remove', propagated: false, isSubDeleting: this.owner.isPurging, removeIndex: i, removeNode: node }); } // purge 为 true 时,已在 internalSetParent 中删除了子节点 if (i > -1 && !purge) { @@ -200,7 +201,9 @@ export class NodeChildren { if (globalContext.has('editor')) { globalContext.get('editor').emit('node.add', { node }); } - // this.reportModified(node, this.owner, { type: 'insert' }); + if (useMutator) { + this.reportModified(node, this.owner, { type: 'insert' }); + } // check condition group if (node.conditionGroup) { @@ -367,14 +370,6 @@ export class NodeChildren { return 'Array'; } - // /** - // * @deprecated - // * 为了兼容vision体系存量api - // */ - // getChildrenArray() { - // return this.children; - // } - private reportModified(node: Node, owner: Node, options = {}) { if (!node) { return; @@ -392,7 +387,7 @@ export class NodeChildren { } if (owner.parent && !owner.parent.isRoot()) { - this.reportModified(node, owner.parent, options); + this.reportModified(node, owner.parent, { ...options, propagated: true, }); } } } diff --git a/packages/designer/src/document/node/node.ts b/packages/designer/src/document/node/node.ts index b480c5722..32fa5fdeb 100644 --- a/packages/designer/src/document/node/node.ts +++ b/packages/designer/src/document/node/node.ts @@ -834,6 +834,18 @@ export class Node { // this.document.destroyNode(this); } + private purging: boolean = false; + internalPurgeStart() { + this.purging = true; + } + + /** + * 是否正在销毁 + */ + get isPurging() { + return this.purging; + } + /** * 是否可执行某action */ diff --git a/packages/editor-skeleton/src/layouts/left-area.tsx b/packages/editor-skeleton/src/layouts/left-area.tsx index 6f8831954..7fb10e81a 100644 --- a/packages/editor-skeleton/src/layouts/left-area.tsx +++ b/packages/editor-skeleton/src/layouts/left-area.tsx @@ -25,7 +25,11 @@ class Contents extends Component<{ area: Area }> { const { area } = this.props; const top: any[] = []; const bottom: any[] = []; - area.container.items.forEach((item) => { + area.container.items.sort((a, b) => { + const index1 = a.config?.index || 0; + const index2 = b.config?.index || 0; + return index1 === index2 ? 0 : (index1 > index2 ? 1 : -1); + }).forEach((item) => { const content =
{item.content}
; if (item.align === 'bottom') { bottom.push(content); From 4ab7abcf0ae61f10a16394b6e28a73ccee36f332 Mon Sep 17 00:00:00 2001 From: "lihao.ylh" Date: Tue, 17 Aug 2021 20:51:39 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E5=BD=93=E6=A0=B9=E6=8D=AE=20i18n?= =?UTF-8?q?=20key=20=E8=8E=B7=E5=8F=96=E4=B8=8D=E5=88=B0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=97=B6,=20fallback=20=E5=88=B0=E7=9B=B4=E6=8E=A5=E5=9C=A8?= =?UTF-8?q?=E5=BD=93=E5=89=8D=20i18n=20=E5=AF=B9=E8=B1=A1=E4=B8=AD?= =?UTF-8?q?=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vision-polyfill/src/props-reducers/deep-value-reducer.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/vision-polyfill/src/props-reducers/deep-value-reducer.ts b/packages/vision-polyfill/src/props-reducers/deep-value-reducer.ts index db45cfdb2..bb15f078f 100644 --- a/packages/vision-polyfill/src/props-reducers/deep-value-reducer.ts +++ b/packages/vision-polyfill/src/props-reducers/deep-value-reducer.ts @@ -40,8 +40,7 @@ export function deepValueParser(obj: any, node: Node): any { if (isI18nData(obj)) { // FIXME! use editor.get let locale = Env.getLocale(); - if (obj.key) { - // FIXME: 此处需要升级I18nUtil,改成响应式 + if (obj.key && i18nUtil.get(obj.key, locale)) { return i18nUtil.get(obj.key, locale); } if (locale !== 'zh_CN' && locale !== 'zh_TW' && !obj[locale]) {