Vanessa 2024-10-30 10:02:01 +08:00
parent 3443891014
commit 5158805544
2 changed files with 12 additions and 4 deletions

View file

@ -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;

View file

@ -1467,6 +1467,7 @@ export class WYSIWYG {
const scrollLeft = nodeElement.firstElementChild.scrollLeft;
const tableSelectElement = nodeElement.querySelector(".table__select") as HTMLElement;
html = "<table>";
tableSelectElement.removeAttribute("style");
const oldHTML = nodeElement.outerHTML;
nodeElement.setAttribute("updated", dayjs().format("YYYYMMDDHHmmss"));
nodeElement.querySelectorAll("th, td").forEach((item: HTMLTableCellElement) => {