Vanessa 2025-08-05 20:50:50 +08:00
parent 8b383d09a5
commit 3b505a20f2
2 changed files with 15 additions and 11 deletions

View file

@ -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 = '<svg class="b3-menu__checked"><use xlink:href="#iconSelect"></use></svg>';
let html = `<button class="b3-menu__item" data-type="setGroupMethod">
<div class="b3-menu__label">${window.siyuan.languages.calcOperatorNone}</div>
${group ? "" : selectHTML}
${(!group || !group.field) ? selectHTML : ""}
</button>`;
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 = '<button class="b3-menu__separator"></button>';
const disabledDrag = ["created", "date", "created", "updated"].includes(column.type);
view.groups.forEach(item => {

View file

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