From 3b505a20f2b3f21af0e1e8610d77aa11bec743ca Mon Sep 17 00:00:00 2001 From: Vanessa Date: Tue, 5 Aug 2025 20:50:50 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/15427 --- app/src/protyle/render/av/groups.ts | 8 ++++---- app/src/protyle/render/av/openMenuPanel.ts | 18 +++++++++++------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/app/src/protyle/render/av/groups.ts b/app/src/protyle/render/av/groups.ts index 73a654df8..0b0482d2b 100644 --- a/app/src/protyle/render/av/groups.ts +++ b/app/src/protyle/render/av/groups.ts @@ -14,7 +14,7 @@ export const getPageSize = (blockElement: Element) => { } } = {}; let unGroupPageSize: number; - blockElement.querySelectorAll(".av__body").forEach((item:HTMLElement) => { + blockElement.querySelectorAll(".av__body").forEach((item: HTMLElement) => { const id = item.dataset.groupId; const pageSize = parseInt(item.dataset.pageSize); if (id) { @@ -67,7 +67,7 @@ export const getGroupsMethodHTML = (columns: IAVColumn[], group: IAVGroup) => { const selectHTML = ''; let html = ``; columns.forEach(item => { if (["rollup", "mAsset", "lineNumber"].includes(item.type)) { @@ -178,10 +178,10 @@ export const bindGroupsNumber = (options: { export const getGroupsHTML = (columns: IAVColumn[], view: IAVView) => { let html = ""; let column: IAVColumn; - if (view.group && view.group.field && view.groups) { + if (view.group && view.group.field) { let groupHTML = ""; column = columns.find(item => item.id === view.group.field); - if (view.groups.length > 0) { + if (view.groups?.length > 0) { groupHTML = ''; const disabledDrag = ["created", "date", "created", "updated"].includes(column.type); view.groups.forEach(item => { diff --git a/app/src/protyle/render/av/openMenuPanel.ts b/app/src/protyle/render/av/openMenuPanel.ts index 336ea9a7c..d85697c63 100644 --- a/app/src/protyle/render/av/openMenuPanel.ts +++ b/app/src/protyle/render/av/openMenuPanel.ts @@ -1514,13 +1514,17 @@ export const openMenuPanel = (options: { await closeCB(); } closeCB = undefined; - menuElement.innerHTML = getGroupsHTML(fields, data.view); - bindGroupsEvent({ - protyle: options.protyle, - menuElement: menuElement, - blockElement: options.blockElement, - data - }); + if ((data.view.group && data.view.group.field) || target.classList.contains("block__icon")) { + menuElement.innerHTML = getGroupsHTML(fields, data.view); + bindGroupsEvent({ + protyle: options.protyle, + menuElement: menuElement, + blockElement: options.blockElement, + data + }); + } else { + menuElement.innerHTML = getGroupsMethodHTML(fields, data.view.group); + } setPosition(menuElement, tabRect.right - menuElement.clientWidth, tabRect.bottom, tabRect.height); event.preventDefault(); event.stopPropagation();