diff --git a/common/changes/@visactor/vtable/codex-fix-issue-5186-skip-click-after-resize_2026-06-24-16-11.json b/common/changes/@visactor/vtable/codex-fix-issue-5186-skip-click-after-resize_2026-06-24-16-11.json new file mode 100644 index 000000000..8ee2a2d78 --- /dev/null +++ b/common/changes/@visactor/vtable/codex-fix-issue-5186-skip-click-after-resize_2026-06-24-16-11.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "fix: skip click cell after resize interaction ends", + "type": "patch", + "packageName": "@visactor/vtable" + } + ], + "packageName": "@visactor/vtable", + "email": "892739385@qq.com" +} diff --git a/packages/vtable/src/event/listener/table-group.ts b/packages/vtable/src/event/listener/table-group.ts index fbecb8818..4023cac00 100644 --- a/packages/vtable/src/event/listener/table-group.ts +++ b/packages/vtable/src/event/listener/table-group.ts @@ -617,15 +617,20 @@ export function bindTableGroupListener(eventManager: EventManager) { // 只处理左键 return; } + const endedResizeCol = stateManager.isResizeCol(); + const endedResizeRow = stateManager.isResizeRow(); + const endedMoveCol = stateManager.isMoveCol(); + // const endedDragSelect = stateManager.isSelecting() && table.eventManager.isDraging; + const shouldSkipClickCell = endedResizeCol || endedResizeRow; if (stateManager.interactionState === 'grabing') { // stateManager.interactionState = 'default'; stateManager.updateInteractionState(InteractionState.default); // eventManager._resizing = false; - if (stateManager.isResizeCol()) { + if (endedResizeCol) { endResizeCol(table); - } else if (stateManager.isResizeRow()) { + } else if (endedResizeRow) { endResizeRow(table); - } else if (stateManager.isMoveCol()) { + } else if (endedMoveCol) { // const eventArgsSet: SceneEvent = getCellEventArgsSet(e); const endMoveColSuccess = table.stateManager.endMoveCol(); fireMoveColEventListeners(table, endMoveColSuccess, e.nativeEvent); @@ -658,7 +663,7 @@ export function bindTableGroupListener(eventManager: EventManager) { stateManager.updateInteractionState(InteractionState.default); // scroll end } - if (!table.eventManager.isDraging) { + if (!table.eventManager.isDraging && !shouldSkipClickCell) { // 从pointertap中挪过来的这段逻辑 const eventArgsSet: SceneEvent = getEventArgsSet(e); if (