From 6e00ab682e34dbff0ab9641873ccc55b7d1a5b32 Mon Sep 17 00:00:00 2001 From: lizw-2015 <1183409807@qq.com> Date: Mon, 9 Jun 2025 18:17:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(editor):=20=E6=96=B0=E5=A2=9E=E8=B4=A7?= =?UTF-8?q?=E6=9E=B6=E5=88=97=E9=85=8D=E7=BD=AE=E7=BC=96=E8=BE=91=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 BayEditor组件用于编辑货架列配置 - 在 PropertyPanel 中集成 BayEditor组件 - 更新 RackPropertySetter以支持货架列配置编辑 - 优化 PropertyPanel 中的数据更新逻辑 --- src/editor/propEditors/BayEditor.vue | 302 +++++++++++++++++++++ src/editor/widgets/property/PropertyPanel.vue | 4 +- .../widgets/property/PropertyPanelConstant.ts | 2 + src/modules/rack/RackPropertySetter.ts | 11 +- 4 files changed, 312 insertions(+), 7 deletions(-) create mode 100644 src/editor/propEditors/BayEditor.vue diff --git a/src/editor/propEditors/BayEditor.vue b/src/editor/propEditors/BayEditor.vue new file mode 100644 index 0000000..f326cf0 --- /dev/null +++ b/src/editor/propEditors/BayEditor.vue @@ -0,0 +1,302 @@ + + + + + Basic + + + + + + + + + + + + + + + + + + + + Apply Basic Settings + + + Advanced + + + + + + + + + + + + + {{ `Bay ${idx + 1}` }} + + + + + + + + + + + + + + + Level Heights + + + + + + + + + + + + diff --git a/src/editor/widgets/property/PropertyPanel.vue b/src/editor/widgets/property/PropertyPanel.vue index 5102397..1cf6e7b 100644 --- a/src/editor/widgets/property/PropertyPanel.vue +++ b/src/editor/widgets/property/PropertyPanel.vue @@ -77,9 +77,9 @@ function onDataChange(newData: any) { if (!viewport) return viewport.stateManager.update(({ getEntity, putEntity }) => { const data = getEntity(props.data.id) - lodash.merge(data, newData) + lodash.assign(data, newData) + // console.log('onDataChange@1', JSON.stringify(data.dt)) putEntity(data) - console.log('onDataChange@1', JSON.stringify(data.tf)) }) } diff --git a/src/editor/widgets/property/PropertyPanelConstant.ts b/src/editor/widgets/property/PropertyPanelConstant.ts index 9197a78..ea6c113 100644 --- a/src/editor/widgets/property/PropertyPanelConstant.ts +++ b/src/editor/widgets/property/PropertyPanelConstant.ts @@ -4,6 +4,7 @@ import type { PropertyFieldSetter } from "@/core/base/PropertyTypes.ts"; import { dataFormInputComponents } from "@/components/data-form/DataFormConstant.ts"; import TransformEditor from "@/editor/propEditors/TransformEditor.vue"; import InOutCenterEditor from "@/editor/propEditors/InOutCenterEditor.vue"; +import BayEditor from "@/editor/propEditors/BayEditor.vue"; const defDataFormProps: DataFormProps = { columnCount: 1, @@ -14,6 +15,7 @@ const defDataFormProps: DataFormProps = { dataFormInputComponents.TransformEditor = markRaw(TransformEditor); dataFormInputComponents.InOutCenterEditor = markRaw(InOutCenterEditor); +dataFormInputComponents.BayEditor = markRaw(BayEditor); const basicFieldsSetter: Array = [ { diff --git a/src/modules/rack/RackPropertySetter.ts b/src/modules/rack/RackPropertySetter.ts index 97cdae9..9e80d21 100644 --- a/src/modules/rack/RackPropertySetter.ts +++ b/src/modules/rack/RackPropertySetter.ts @@ -29,11 +29,11 @@ const propertySetter: PropertySetter = { dataPath: 'dt.columnSpacing', label: '支脚跨越', input: 'InputNumber', inputProps: {}, }, - // { - // dataPath: 'dt.bays', input: 'BayEditor', - // inputProps: { - // }, - // }, + { + dataPath: 'dt.bays', input: 'BayEditor', + inputProps: { + }, + }, /** * dt.bays 5列3层货架示例 * { @@ -47,6 +47,7 @@ const propertySetter: PropertySetter = { * bays: [ // 每列的配置 * { * bayWidth: 1.6, // 列的宽度 + * offset: // 列偏移 * levelHeight: [ 1.4, 1.4, 1.4 ] // 每层的高度 * }, * {bayWidth: 1.6, levelHeight: [ 1.4, 1.4, 1.4 ]},