From 39cba0d87809e72f1e866f53ff3152733fc41de7 Mon Sep 17 00:00:00 2001 From: jingrow Date: Sat, 24 Jan 2026 16:44:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dpagetype=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E6=B7=BB=E5=8A=A0=E6=96=B0=E5=88=97=E5=8F=8A?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=90=8E=E4=BF=9D=E5=AD=98=E5=90=8E=E6=96=B0?= =?UTF-8?q?=E5=88=97=E4=B8=A2=E5=A4=B1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form_builder/components/Column.vue | 59 ++++++++++++++++++- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/apps/jingrow/frontend/src/core/features/form_builder/components/Column.vue b/apps/jingrow/frontend/src/core/features/form_builder/components/Column.vue index e432ee3..2e960ea 100644 --- a/apps/jingrow/frontend/src/core/features/form_builder/components/Column.vue +++ b/apps/jingrow/frontend/src/core/features/form_builder/components/Column.vue @@ -2,7 +2,7 @@
@@ -27,6 +27,7 @@ :easing="store.getAnimation" item-key="id" :disabled="store.readOnly" + @click="handleContainerClick" > -
+
@@ -67,6 +68,56 @@ whenever(Backspace, (value) => { const hovered = ref(false); const selected = computed(() => store.selected(props.column.df.name)); + +function handleColumnClick(event) { + console.log('[Column] handleColumnClick triggered'); + console.log('[Column] event.target:', event.target); + + // 如果点击的是 AddFieldButton,不选中列 + const target = event.target; + const wrapper = target.closest('.add-field-btn, .add-field-wrapper'); + console.log('[Column] closest wrapper:', wrapper); + + if (wrapper) { + console.log('[Column] Clicked on AddFieldButton, skipping column selection'); + return; + } + + console.log('[Column] Selecting column'); + store.form.selected_field = props.column.df; +} + +function handleEmptyColumnClick(event) { + // 如果点击的是按钮,不阻止事件(让按钮处理) + const target = event.target; + const isButton = target.closest('.add-field-btn, .add-field-wrapper'); + if (isButton) { + // 让事件继续传播到按钮 + return; + } + // 否则阻止事件冒泡(避免选中列) + event.stopPropagation(); +} + +function handleContainerClick(event) { + console.log('[Column] handleContainerClick triggered'); + console.log('[Column] event.target:', event.target); + + // 如果点击的是按钮,不阻止事件 + const target = event.target; + const isButton = target.closest('.add-field-btn, .add-field-wrapper'); + console.log('[Column] isButton:', isButton); + + if (isButton) { + console.log('[Column] Clicked on button, not stopping propagation'); + // 不阻止,让按钮处理 + return; + } + + // 否则阻止事件冒泡到列容器 + console.log('[Column] Stopping propagation'); + event.stopPropagation(); +}