From 51588055449403f8d0077cc17833d61030c64bd5 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Wed, 30 Oct 2024 10:02:01 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/10488 --- app/src/protyle/util/insertHTML.ts | 15 +++++++++++---- app/src/protyle/wysiwyg/index.ts | 1 + 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/protyle/util/insertHTML.ts b/app/src/protyle/util/insertHTML.ts index 6ca0c3581..0ced26d13 100644 --- a/app/src/protyle/util/insertHTML.ts +++ b/app/src/protyle/util/insertHTML.ts @@ -209,18 +209,25 @@ const processTable = (range: Range, html: string, protyle: IProtyle, blockElemen const scrollLeft = blockElement.firstElementChild.scrollLeft; const tableSelectElement = blockElement.querySelector(".table__select") as HTMLElement; let index = 0; - const oldHTML = blockElement.outerHTML; - blockElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss")); + const matchCellsElement: HTMLTableCellElement[] = [] blockElement.querySelectorAll("th, td").forEach((item: HTMLTableCellElement) => { if (!item.classList.contains("fn__none") && item.offsetLeft + 6 > tableSelectElement.offsetLeft + scrollLeft && item.offsetLeft + item.clientWidth - 6 < tableSelectElement.offsetLeft + scrollLeft + tableSelectElement.clientWidth && item.offsetTop + 6 > tableSelectElement.offsetTop && item.offsetTop + item.clientHeight - 6 < tableSelectElement.offsetTop + tableSelectElement.clientHeight && cellElements.length > index) { - item.innerHTML = cellElements[index].innerHTML; + matchCellsElement.push(item); index++; - setLastNodeRange(item, range, false); } }); + tableSelectElement.removeAttribute("style"); + const oldHTML = blockElement.outerHTML; + blockElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss")); + matchCellsElement.forEach((item, matchIndex) => { + item.innerHTML = cellElements[matchIndex].innerHTML; + if (matchIndex === matchCellsElement.length - 1) { + setLastNodeRange(item, range, false); + } + }) range.collapse(false); updateTransaction(protyle, blockElement.getAttribute("data-node-id"), blockElement.outerHTML, oldHTML); return true; diff --git a/app/src/protyle/wysiwyg/index.ts b/app/src/protyle/wysiwyg/index.ts index 0086f400f..b2c946b81 100644 --- a/app/src/protyle/wysiwyg/index.ts +++ b/app/src/protyle/wysiwyg/index.ts @@ -1467,6 +1467,7 @@ export class WYSIWYG { const scrollLeft = nodeElement.firstElementChild.scrollLeft; const tableSelectElement = nodeElement.querySelector(".table__select") as HTMLElement; html = ""; + tableSelectElement.removeAttribute("style"); const oldHTML = nodeElement.outerHTML; nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss")); nodeElement.querySelectorAll("th, td").forEach((item: HTMLTableCellElement) => {