From 35f495b4fa62733b983f226d091c2fffa9cfc94b Mon Sep 17 00:00:00 2001
From: lizw-2015 <1183409807@qq.com>
Date: Tue, 10 Jun 2025 13:51:23 +0800
Subject: [PATCH 1/2] =?UTF-8?q?feat(editor):=20=E4=BC=98=E5=8C=96=E4=BB=93?=
=?UTF-8?q?=E5=BA=93=E5=B8=83=E5=B1=80=E7=BC=96=E8=BE=91=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 新增列数、层数、列宽、层高等设置功能
- 实现复制、删除列的功能
- 优化列和层高的编辑界面
- 改进样式,增加滚动条和背景色等细节
---
src/editor/propEditors/BayEditor.vue | 99 +++++++++++++++++++++++++---
src/editor/propEditors/InOutCenterEditor.vue | 6 +-
2 files changed, 92 insertions(+), 13 deletions(-)
diff --git a/src/editor/propEditors/BayEditor.vue b/src/editor/propEditors/BayEditor.vue
index c84b50a..09cd98f 100644
--- a/src/editor/propEditors/BayEditor.vue
+++ b/src/editor/propEditors/BayEditor.vue
@@ -1,4 +1,5 @@
+
+
+
+
+
+
diff --git a/src/editor/Model2DEditor.vue b/src/editor/Model2DEditor.vue
index 1c7e8e0..60d277d 100644
--- a/src/editor/Model2DEditor.vue
+++ b/src/editor/Model2DEditor.vue
@@ -17,6 +17,9 @@
:type="state?.view3DMode===Constract.Mode3D?'primary':''"
@click="state.view3DMode = Constract.Mode3D">3D
+
+ 批量复制
+
@@ -92,13 +95,14 @@
diff --git a/src/editor/widgets/property/PropertyPanel.vue b/src/editor/widgets/property/PropertyPanel.vue
index 1cf6e7b..a8182ca 100644
--- a/src/editor/widgets/property/PropertyPanel.vue
+++ b/src/editor/widgets/property/PropertyPanel.vue
@@ -9,23 +9,23 @@ import { defDataFormProps } from '@/editor/widgets/property/PropertyPanelConstan
import Viewport, { type ViewportState } from '@/core/engine/Viewport.ts'
defineOptions({
- name: 'PropertyPanel'
+ name: 'PropertyPanel'
})
// 定义 Props 类型
interface PropertyPanelProps {
- /** 待编辑数据 */
- data?: any;
- /** Viewport */
- viewport: Viewport;
- /** ViewportState */
- viewportState: ViewportState;
- /** 默认的DataFormProps */
- defDataFormProps?: DataFormProps;
- /** 最上面平铺的设置器 */
- flatten?: PropertyFlattenSetter;
- /** 设置器分组集合 */
- groups?: Array
;
+ /** 待编辑数据 */
+ data?: any;
+ /** Viewport */
+ viewport: Viewport;
+ /** ViewportState */
+ viewportState: ViewportState;
+ /** 默认的DataFormProps */
+ defDataFormProps?: DataFormProps;
+ /** 最上面平铺的设置器 */
+ flatten?: PropertyFlattenSetter;
+ /** 设置器分组集合 */
+ groups?: Array;
}
// 读取组件 props 属性
@@ -33,16 +33,16 @@ const props = withDefaults(defineProps(), {})
// 定义 State 类型
interface PropertyPanelState {
- /** 待编辑数据 */
- data?: any;
- /** 已展开的分组 */
- expandGroups: Array;
+ /** 待编辑数据 */
+ data?: any;
+ /** 已展开的分组 */
+ expandGroups: Array;
}
// state 属性
const state = reactive({
- data: lodash.cloneDeep(props.data),
- expandGroups: []
+ data: lodash.cloneDeep(props.data),
+ expandGroups: []
})
// 定义 Data 类型
@@ -54,84 +54,84 @@ const data: PropertyPanelData = {}
const flattenFormProps = computed(() => getDefFormProps(props.flatten))
function getDefFormProps(setter?: PropertyFlattenSetter) {
- const formProps: DataFormProps = {
- ...defDataFormProps,
- ...props.defDataFormProps
- }
- fillFormProps(setter)
- return formProps
+ const formProps: DataFormProps = {
+ ...defDataFormProps,
+ ...props.defDataFormProps
+ }
+ fillFormProps(setter)
+ return formProps
}
function fillFormProps(formProps: DataFormProps, setter?: PropertyFlattenSetter) {
- if (!setter) return
- if (setter.size) formProps.size = setter.size
- if (setter.labelWidth) formProps.labelWidth = setter.labelWidth
+ if (!setter) return
+ if (setter.size) formProps.size = setter.size
+ if (setter.labelWidth) formProps.labelWidth = setter.labelWidth
}
function getCollapseItemId(group: PropertySetterGroup, idx: number) {
- return `_${idx}_${group.title}`
+ return `_${idx}_${group.title}`
}
function onDataChange(newData: any) {
- const viewport = props.viewport
- if (!viewport) return
- viewport.stateManager.update(({ getEntity, putEntity }) => {
- const data = getEntity(props.data.id)
- lodash.assign(data, newData)
- // console.log('onDataChange@1', JSON.stringify(data.dt))
- putEntity(data)
- })
+ const viewport = props.viewport
+ if (!viewport) return
+ viewport.stateManager.update(({ getEntity, putEntity }) => {
+ const data = getEntity(props.data.id);
+ lodash.assign(data, newData);
+ // console.log('onDataChange@1', JSON.stringify(data.dt))
+ putEntity(data);
+ });
}
interface PropertyPanelExpose {
- state: PropertyPanelState;
- data: PropertyPanelData;
+ state: PropertyPanelState;
+ data: PropertyPanelData;
}
const expose: PropertyPanelExpose = {
- state,
- data
+ state,
+ data
}
// 定义组件公开内容
defineExpose(expose)
export type {
- PropertyPanelProps,
- PropertyPanelState
+ PropertyPanelProps,
+ PropertyPanelState
}
-
-
-
-
+
-
-
-
+
+
+
+
+
+