From deca7dbb41ffc53b7245756c2f3df1ebc9843d11 Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Wed, 13 May 2026 22:09:39 +0800 Subject: [PATCH] feat(grid): add draggable resize for transpose panel --- src/components/grid/DataGrid.vue | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/components/grid/DataGrid.vue b/src/components/grid/DataGrid.vue index 0f93d8181e..35f1472b77 100644 --- a/src/components/grid/DataGrid.vue +++ b/src/components/grid/DataGrid.vue @@ -219,6 +219,7 @@ const detailCell = ref<{ rowIndex: number; col: number } | null>(null); const showCellDetail = ref(false); const transposeRowIndex = ref(null); const showTranspose = ref(false); +const transposePanelWidth = ref(320); const sortCol = ref(null); const sortColIndex = ref(null); const sortDir = ref<"asc" | "desc">("asc"); @@ -1726,6 +1727,21 @@ function transposeNav(delta: number) { } } +function onTransposeResizeStart(e: MouseEvent) { + e.preventDefault(); + const startX = e.clientX; + const startWidth = transposePanelWidth.value; + const onMove = (ev: MouseEvent) => { + transposePanelWidth.value = Math.max(200, startWidth - (ev.clientX - startX)); + }; + const onUp = () => { + document.removeEventListener("mousemove", onMove); + document.removeEventListener("mouseup", onUp); + }; + document.addEventListener("mousemove", onMove); + document.addEventListener("mouseup", onUp); +} + watch( () => props.result, () => { @@ -2681,8 +2697,13 @@ defineExpose({
+
{{ t("grid.transpose") }}