@@ -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();
+}