diff --git a/app/src/protyle/render/av/render.ts b/app/src/protyle/render/av/render.ts index 048b94a92..49d8b3b95 100644 --- a/app/src/protyle/render/av/render.ts +++ b/app/src/protyle/render/av/render.ts @@ -45,6 +45,13 @@ export const avRender = (element: Element, protyle: IProtyle, cb?: () => void, v const left = e.querySelector(".av__scroll")?.scrollLeft || 0; const headerTransform = (e.querySelector(".av__row--header") as HTMLElement)?.style.transform; const footerTransform = (e.querySelector(".av__row--footer") as HTMLElement)?.style.transform; + const selectRowIds: string[] = []; + e.querySelectorAll(".av__row--select").forEach(rowItem => { + const rowId = rowItem.getAttribute("data-id"); + if (rowId) { + selectRowIds.push(rowId); + } + }) let selectCellId = ""; const selectCellElement = e.querySelector(".av__cell--select") as HTMLElement; if (selectCellElement) { @@ -267,7 +274,7 @@ ${cell.color ? `color:${cell.color};` : ""}">${renderCell(cell.value, rowIndex)} -
${calcHTML}
+
${calcHTML}
${Constants.ZWSP}
@@ -304,6 +311,9 @@ ${cell.color ? `color:${cell.color};` : ""}">${renderCell(cell.value, rowIndex)} focusBlock(e); } } + selectRowIds.forEach(selectRowId => { + e.querySelector(`.av__row[data-id="${selectRowId}"]`).classList.add("av__row--select"); + }); if (dragFillId) { addDragFill(e.querySelector(`.av__row[data-id="${dragFillId.split(Constants.ZWSP)[0]}"] .av__cell[data-col-id="${dragFillId.split(Constants.ZWSP)[1]}"]`)); } diff --git a/app/src/protyle/render/av/row.ts b/app/src/protyle/render/av/row.ts index da71886a5..df1d113f5 100644 --- a/app/src/protyle/render/av/row.ts +++ b/app/src/protyle/render/av/row.ts @@ -363,9 +363,12 @@ export const setPageSize = (options: { }; export const deleteRow = (blockElement: HTMLElement, protyle: IProtyle) => { + const rowElements = blockElement.querySelectorAll(".av__row--select:not(.av__row--header)"); + if (rowElements.length === 0) { + return; + } const avID = blockElement.getAttribute("data-av-id"); const undoOperations: IOperation[] = []; - const rowElements = blockElement.querySelectorAll(".av__row--select:not(.av__row--header)"); const blockIds: string[] = []; rowElements.forEach(item => { blockIds.push(item.querySelector(".av__cell[data-block-id]").getAttribute("data-block-id"));