From 5b3ae7f4e70457fdbc2bb6214db3735ece6d74ed Mon Sep 17 00:00:00 2001 From: Vanessa Date: Wed, 12 Nov 2025 11:51:51 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E6=95=B0=E6=8D=AE=E5=BA=93=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=E6=9B=B4=E6=96=B0=E5=90=8E=E5=A4=B4=E5=B0=BE=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=9B=BA=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/protyle/render/av/render.ts | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/app/src/protyle/render/av/render.ts b/app/src/protyle/render/av/render.ts index a5cf90f4f..e5829da09 100644 --- a/app/src/protyle/render/av/render.ts +++ b/app/src/protyle/render/av/render.ts @@ -36,8 +36,8 @@ interface ITableOptions { resetData: { left: number, alignSelf: string, - headerTransform: string, - footerTransform: string, + headerTransform: { groupId: string, transform: string }, + footerTransform: { groupId: string, transform: string }, isSearching: boolean, selectCellId: IIds, selectRowIds: IIds[], @@ -292,9 +292,9 @@ const afterRenderTable = (options: ITableOptions) => { options.blockElement.style.alignSelf = options.resetData.alignSelf; const editRect = options.protyle.contentElement.getBoundingClientRect(); if (options.resetData.headerTransform) { - const headerTransformElement = options.blockElement.querySelector('.av__row--header[style^="transform"]') as HTMLElement; + const headerTransformElement = options.blockElement.querySelector(`.av__body[data-group-id="${options.resetData.headerTransform.groupId}"] .av__row--header`) as HTMLElement; if (headerTransformElement) { - headerTransformElement.style.transform = options.resetData.headerTransform; + headerTransformElement.style.transform = options.resetData.headerTransform.transform; } } else { // 需等待渲染完,否则 getBoundingClientRect 错误 https://github.com/siyuan-note/siyuan/issues/13787 @@ -303,9 +303,9 @@ const afterRenderTable = (options: ITableOptions) => { }, Constants.TIMEOUT_LOAD); } if (options.resetData.footerTransform) { - const footerTransformElement = options.blockElement.querySelector('.av__row--footer[style^="transform"]') as HTMLElement; + const footerTransformElement = options.blockElement.querySelector(`.av__body[data-group-id="${options.resetData.footerTransform.groupId}"] .av__row--footer`) as HTMLElement; if (footerTransformElement) { - footerTransformElement.style.transform = options.resetData.footerTransform; + footerTransformElement.style.transform = options.resetData.footerTransform.transform; } } else { // 需等待渲染完,否则 getBoundingClientRect 错误 https://github.com/siyuan-note/siyuan/issues/13787 @@ -514,12 +514,20 @@ export const avRender = async (element: Element, protyle: IProtyle, cb?: (data: e.querySelectorAll(".av__body").forEach((item: HTMLElement) => { pageSizes[item.dataset.groupId || "unGroup"] = item.dataset.pageSize; }); + const headerTransformElement = e.querySelector('.av__row--header[style^="transform"]') as HTMLElement; + const footerTransformElement = e.querySelector('.av__row--footer[style^="transform"]') as HTMLElement; const resetData = { selectCellId, alignSelf: e.style.alignSelf, left: e.querySelector(".av__scroll")?.scrollLeft || 0, - headerTransform: (e.querySelector('.av__row--header[style^="transform"]') as HTMLElement)?.style.transform, - footerTransform: (e.querySelector(".av__row--footer") as HTMLElement)?.style.transform, + headerTransform: headerTransformElement ? { + groupId: headerTransformElement.parentElement.getAttribute("data-group-id"), + transform: headerTransformElement.style.transform + } : null, + footerTransform: footerTransformElement ? { + groupId: footerTransformElement.parentElement.getAttribute("data-group-id"), + transform: footerTransformElement.style.transform + } : null, isSearching: searchInputElement && document.activeElement === searchInputElement, selectRowIds, dragFillId,