diff --git a/app/src/protyle/render/av/select.ts b/app/src/protyle/render/av/select.ts index a5ccef810..fc8528808 100644 --- a/app/src/protyle/render/av/select.ts +++ b/app/src/protyle/render/av/select.ts @@ -427,7 +427,18 @@ export const addColOptionOrCell = (protyle: IProtyle, data: IAV, cellElements: H const nodeElement = hasClosestBlock(cellElements[0]); if (!nodeElement) { cellElements.forEach((item, index) => { - cellElements[index] = blockElement.querySelector(`.av__cell[data-id="${item.dataset.id}"]`) as HTMLElement; + const rowElement = hasClosestByClassName(item, "av__row"); + if (rowElement) { + let cellIndex: number; + rowElement.querySelectorAll(".av__cell").forEach((cellElement: HTMLElement, ghostIndex) => { + if (cellElement.dataset.id === item.dataset.id) { + cellIndex = ghostIndex + } + }); + if (typeof cellIndex === "number") { + cellElements[index] = blockElement.querySelectorAll(`.av__row[data-id="${rowElement.dataset.id}"] .av__cell`)[cellIndex] as HTMLElement; + } + } }); } const colId = cellElements[0].dataset.colId; @@ -545,25 +556,9 @@ export const getSelectHTML = (data: IAVTable, cellElements: HTMLElement[]) => { } }); - let allUniqueOptions: IAVCellSelectValue[] = []; - data.rows.find(row => { - const rowElement = hasClosestByClassName(cellElements[0], "av__row"); - if (rowElement && rowElement.dataset.id === row.id) { - row.cells.find(cell => { - if (cell.id === cellElements[0].dataset.id) { - if (cell.value && cell.value.mSelect) { - allUniqueOptions = cell.value.mSelect; - } - return true; - } - }); - return true; - } - }); - let selectedHTML = ""; - allUniqueOptions.forEach((unique) => { - selectedHTML += `
${unique.content}
`; + genCellValueByElement(colData.type, cellElements[0]).mSelect?.forEach((item) => { + selectedHTML += `
${item.content}
`; }); return `