From 992ebbe3ce7db7a503518e3707a9d0e76164d428 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Tue, 12 Apr 2022 14:51:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(editor):=20=E4=BF=AE=E5=A4=8D=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=BB=84=E4=BB=B6=E6=97=B6=EF=BC=8C=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=85=8D=E7=BD=AE=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor/src/layouts/sidebar/ComponentListPanel.vue | 4 ++-- packages/editor/src/layouts/sidebar/LayerMenu.vue | 1 + packages/editor/src/services/editor.ts | 2 +- packages/editor/src/services/props.ts | 3 ++- packages/editor/src/type.ts | 4 +++- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/editor/src/layouts/sidebar/ComponentListPanel.vue b/packages/editor/src/layouts/sidebar/ComponentListPanel.vue index cb67a5ff..79583dcb 100644 --- a/packages/editor/src/layouts/sidebar/ComponentListPanel.vue +++ b/packages/editor/src/layouts/sidebar/ComponentListPanel.vue @@ -56,11 +56,11 @@ export default defineComponent({ collapseValue, list, - appendComponent({ text, type, ...config }: ComponentItem): void { + appendComponent({ text, type, data = {} }: ComponentItem): void { services?.editorService.add({ name: text, type, - ...config, + ...data, }); }, }; diff --git a/packages/editor/src/layouts/sidebar/LayerMenu.vue b/packages/editor/src/layouts/sidebar/LayerMenu.vue index 658fb5dc..052f11ed 100644 --- a/packages/editor/src/layouts/sidebar/LayerMenu.vue +++ b/packages/editor/src/layouts/sidebar/LayerMenu.vue @@ -72,6 +72,7 @@ export default defineComponent({ services?.editorService.add({ name: config.text, type: config.type, + ...(config.data || {}), }); }, diff --git a/packages/editor/src/services/editor.ts b/packages/editor/src/services/editor.ts index 26a30871..6599b748 100644 --- a/packages/editor/src/services/editor.ts +++ b/packages/editor/src/services/editor.ts @@ -229,7 +229,7 @@ class Editor extends BaseService { const layout = await this.getLayout(parentNode); const newNode = initPosition( - { ...toRaw(await propsService.getPropsValue(type)), ...config }, + { ...toRaw(await propsService.getPropsValue(type, config)) }, layout, parentNode, this.get('stage'), diff --git a/packages/editor/src/services/props.ts b/packages/editor/src/services/props.ts index aa561e02..a13908b2 100644 --- a/packages/editor/src/services/props.ts +++ b/packages/editor/src/services/props.ts @@ -87,7 +87,7 @@ class Props extends BaseService { * @param type 组件类型 * @returns 组件初始值 */ - public async getPropsValue(type: string) { + public async getPropsValue(type: string, defaultValue = {}) { if (type === 'area') { const value = (await this.getPropsValue('button')) as MComponent; value.className = 'action-area'; @@ -100,6 +100,7 @@ class Props extends BaseService { return cloneDeep({ ...getDefaultPropsValue(type), + ...defaultValue, ...(this.state.propsValueMap[type] || {}), }); } diff --git a/packages/editor/src/type.ts b/packages/editor/src/type.ts index 9f5191ef..e712fc86 100644 --- a/packages/editor/src/type.ts +++ b/packages/editor/src/type.ts @@ -220,7 +220,9 @@ export interface ComponentItem { type: string; /** element-plus icon class */ icon?: string | Component; - [key: string]: any; + data?: { + [key: string]: any; + }; } export interface ComponentGroup {