From 0ff329a266954f989c363d7ccad89ffaa3c50ec0 Mon Sep 17 00:00:00 2001 From: Gimmy <975402925@qq.com> Date: Sat, 8 Mar 2025 18:06:27 +0800 Subject: [PATCH 1/2] fix(grid): [grid] fix scrollLeft error after header drag resize --- packages/vue/src/grid/src/header/src/header.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/vue/src/grid/src/header/src/header.ts b/packages/vue/src/grid/src/header/src/header.ts index 56e0d0e78a..f56446983e 100644 --- a/packages/vue/src/grid/src/header/src/header.ts +++ b/packages/vue/src/grid/src/header/src/header.ts @@ -412,7 +412,22 @@ const documentOnmouseup = function ({ Object.assign($table, { _isResize: false, _lastResizeTime: Date.now() }) $table.analyColumnWidth() - $table.recalculate() + $table.recalculate().then(() => { + // 拖拽后,需要同步表头的scrollLeft + const { tableBody, tableFooter, tableHeader } = $table.$refs || {} + const headerElm = tableHeader?.$el + const bodyElm = tableBody?.$el + const footerElm = tableFooter?.$el + if (!headerElm) { + return + } + if (bodyElm) { + bodyElm.scrollLeft = headerElm.scrollLeft + } + if (footerElm) { + footerElm.scrollLeft = headerElm.scrollLeft + } + }) updateResizableToolbar($table) emitEvent($table, 'resizable-change', [params]) } From d5cdab259c291f530bde871cfac8e83e0a8fc593 Mon Sep 17 00:00:00 2001 From: Gimmy <975402925@qq.com> Date: Sat, 8 Mar 2025 18:40:51 +0800 Subject: [PATCH 2/2] fix(grid): [grid] fix scrollLeft error after header drag resize --- packages/vue/src/grid/src/header/src/header.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/vue/src/grid/src/header/src/header.ts b/packages/vue/src/grid/src/header/src/header.ts index f56446983e..5f4b8679f8 100644 --- a/packages/vue/src/grid/src/header/src/header.ts +++ b/packages/vue/src/grid/src/header/src/header.ts @@ -421,12 +421,21 @@ const documentOnmouseup = function ({ if (!headerElm) { return } + const elemStore = $table.elemStore if (bodyElm) { bodyElm.scrollLeft = headerElm.scrollLeft } if (footerElm) { footerElm.scrollLeft = headerElm.scrollLeft } + + if (!elemStore['main-header-repair']) { + return + } + elemStore['main-body-xSpace'].style.width = elemStore['main-header-repair'].style.width + if (elemStore['main-footer-xSpace']) { + elemStore['main-footer-xSpace'].style.width = elemStore['main-header-repair'].style.width + } }) updateResizableToolbar($table) emitEvent($table, 'resizable-change', [params])