From c5bfa680583edaa682c7eeaf7ecb8b2829e03b42 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Fri, 25 Jul 2025 11:52:57 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/10964 --- app/src/assets/scss/component/_menu.scss | 7 +++ app/src/protyle/render/av/groups.ts | 60 +++++++++++++++++++++- app/src/protyle/render/av/openMenuPanel.ts | 18 ++++++- 3 files changed, 82 insertions(+), 3 deletions(-) diff --git a/app/src/assets/scss/component/_menu.scss b/app/src/assets/scss/component/_menu.scss index 168301387..75a0c09a4 100644 --- a/app/src/assets/scss/component/_menu.scss +++ b/app/src/assets/scss/component/_menu.scss @@ -296,6 +296,13 @@ min-width: 84px; } + &__labels { + font-size: 12px; + margin-bottom: 4px; + line-height: 20px; + color: var(--b3-theme-on-surface); + } + &__icon { align-self: center; height: 14px; diff --git a/app/src/protyle/render/av/groups.ts b/app/src/protyle/render/av/groups.ts index de43da90b..6dd056c17 100644 --- a/app/src/protyle/render/av/groups.ts +++ b/app/src/protyle/render/av/groups.ts @@ -103,6 +103,64 @@ const getLanguageByIndex = (index: number, type: "sort" | "date") => { } }; +export const getGroupsNumberHTML = (group: IAVGroup) => { + return `
+ + +
+
+
${window.siyuan.languages.groupRange}
+ - +
+
${window.siyuan.languages.groupStep}
+ +
+
+
+
`; +}; + +export const bindGroupsNumber = (options: { + protyle: IProtyle; + menuElement: HTMLElement; + blockElement: Element; + data: IAV; +}) => { + return () => { + if (!options.menuElement.querySelector('[data-type="avGroupRange"]')) { + return; + } + const blockID = options.blockElement.getAttribute("data-node-id"); + const inputElements = options.menuElement.querySelectorAll("input"); + const range = { + numStart: inputElements[0].value ? parseFloat(inputElements[0].value) : 0, + numEnd: inputElements[1].value ? parseFloat(inputElements[1].value) : 1000, + numStep: inputElements[2].value ? parseFloat(inputElements[2].value) : 100 + }; + transaction(options.protyle, [{ + action: "setAttrViewGroup", + avID: options.data.id, + blockID, + data: { + range + } + }], [{ + action: "setAttrViewGroup", + avID: options.data.id, + blockID, + data: { + range: options.data.view.group.range + } + }]); + options.data.view.group.range = range; + }; +}; + export const getGroupsHTML = (columns: IAVColumn[], view: IAVView) => { let html = ""; let column: IAVColumn; @@ -125,7 +183,7 @@ export const getGroupsHTML = (columns: IAVColumn[], view: IAVView) => { ${getLanguageByIndex(view.group.method, "date")} -