diff --git a/app/src/protyle/render/av/cell.ts b/app/src/protyle/render/av/cell.ts index c0aa3a893..d1499feaf 100644 --- a/app/src/protyle/render/av/cell.ts +++ b/app/src/protyle/render/av/cell.ts @@ -560,10 +560,10 @@ export const renderCell = (cellValue: IAVCellValue, wrap: boolean) => { text = `${urlContent}`; } else if (cellValue.type === "block") { if (cellValue?.isDetached) { - text = `${cellValue.block.content || ""} + text = `${cellValue.block.content || ""} ${window.siyuan.languages.more}`; } else { - text = `${cellValue.block.content || ""} + text = `${cellValue.block.content || ""} ${window.siyuan.languages.update}`; } } else if (cellValue.type === "number") { @@ -601,7 +601,7 @@ export const renderCell = (cellValue: IAVCellValue, wrap: boolean) => { text += ``; } else if (cellValue.type === "relation") { cellValue?.relation?.contents?.forEach((item, index) => { - text += `${item}`; + text += `${item}`; }) } if (["text", "template", "url", "email", "phone", "number", "date", "created", "updated"].includes(cellValue.type) && diff --git a/app/src/protyle/render/av/relation.ts b/app/src/protyle/render/av/relation.ts index 14870800e..467f4cc8a 100644 --- a/app/src/protyle/render/av/relation.ts +++ b/app/src/protyle/render/av/relation.ts @@ -174,6 +174,27 @@ export const toggleUpdateRelationBtn = (menuItemsElement: HTMLElement, avId: str } } +const genSelectItemHTML = (type: "selected" | "empty" | "unselect", id?: string, text?: string) => { + if (type === "selected") { + return `` + } + if (type === "empty") { + return `` + } + if (type == "unselect") { + return `` + } +} + export const bindRelationEvent = (options: { protyle: IProtyle, data: IAV, @@ -189,30 +210,29 @@ export const bindRelationEvent = (options: { avData.view.columns.find((item, index) => { if (item.type === "block") { cellIndex = index - return; + return true; } }) let html = "" let selectHTML = "" - avData.view.rows.forEach((item) => { - const text = item.cells[cellIndex].value.block.content || item.cells[cellIndex].value.block.id; - if (hasIds.includes(item.id)) { - selectHTML += `` - } else { - html += `` + hasIds.forEach(hasId => { + if (hasId) { + avData.view.rows.find((item) => { + if (item.id === hasId) { + selectHTML += genSelectItemHTML("selected", item.id, item.cells[cellIndex].value.block.content || item.cells[cellIndex].value.block.id) + return true + } + }) } }) - const empty = `` - options.menuElement.innerHTML = `
` }) } @@ -258,9 +278,9 @@ export const setRelationCell = (protyle: IProtyle, data: IAV, nodeElement: HTMLE } ids.splice(ids.indexOf(targetId), 1); separatorElement.after(target); - // TODO + target.outerHTML = genSelectItemHTML("unselect", targetId, target.querySelector(".b3-menu__label").textContent); if (!separatorElement.previousElementSibling) { - separatorElement.insertAdjacentHTML("beforebegin", empty); + separatorElement.insertAdjacentHTML("beforebegin", genSelectItemHTML("empty")); } } else { if (!separatorElement.previousElementSibling.getAttribute("data-id")) { @@ -268,9 +288,9 @@ export const setRelationCell = (protyle: IProtyle, data: IAV, nodeElement: HTMLE } ids.push(targetId); separatorElement.before(target); - // TODO + target.outerHTML = genSelectItemHTML("selected", targetId, target.querySelector(".b3-menu__label").textContent); if (!separatorElement.nextElementSibling) { - separatorElement.insertAdjacentHTML("afterend", empty); + separatorElement.insertAdjacentHTML("afterend", genSelectItemHTML("empty")); } } updateCellsValue(protyle, nodeElement, ids);