From 9988706de368de4db0ccbaaae11c9d05a69776b0 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Mon, 1 Jan 2024 14:37:50 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20https://github.com/siyuan-note/siyuan/i?= =?UTF-8?q?ssues/10038=20=E5=8A=A0=E5=BC=BA=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/protyle/render/av/filter.ts | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/app/src/protyle/render/av/filter.ts b/app/src/protyle/render/av/filter.ts index 7d716157f..2894035c9 100644 --- a/app/src/protyle/render/av/filter.ts +++ b/app/src/protyle/render/av/filter.ts @@ -9,9 +9,10 @@ import * as dayjs from "dayjs"; import {unicode2Emoji} from "../../../emoji"; import {openMenuPanel} from "./openMenuPanel"; import {fetchSyncPost} from "../../../util/fetch"; +import {showMessage} from "../../../dialog/message"; export const getDefaultOperatorByType = (type: TAVCol) => { - if (["select", "number"].includes(type)) { + if (["select", "number", "date", "created", "updated"].includes(type)) { return "="; } if (["checkbox"].includes(type)) { @@ -65,7 +66,11 @@ export const setFilter = async (options: { } const menu = new Menu("set-filter-" + options.filter.column, () => { const oldFilters = JSON.parse(JSON.stringify(options.data.view.filters)); - const operator = (window.siyuan.menus.menu.element.querySelector(".b3-select") as HTMLSelectElement).value as TAVFilterOperator; + const selectElement = window.siyuan.menus.menu.element.querySelector(".b3-select") as HTMLSelectElement + if (!selectElement) { + return; + } + const operator = selectElement.value as TAVFilterOperator; let hasMatch = false; let cellValue: IAVCellValue; if (textElements.length > 0) { @@ -73,9 +78,10 @@ export const setFilter = async (options: { cellValue = genCellValue(filterType, { isNotEmpty2: textElements[1].value !== "", isNotEmpty: textElements[0].value !== "", - content: new Date(textElements[0].value + " 00:00").getTime(), - content2: new Date(textElements[1].value + " 00:00").getTime(), - hasEndDate: operator === "Is between" + content: textElements[0].value ? new Date(textElements[0].value + " 00:00").getTime() : null, + content2: textElements[1].value ? new Date(textElements[1].value + " 00:00").getTime() : null, + hasEndDate: operator === "Is between", + isNotTime: true, }); } else { cellValue = genCellValue(filterType, textElements[0].value); @@ -94,9 +100,6 @@ export const setFilter = async (options: { }); } }); - if (mSelect.length === 0) { - mSelect.push({color: "", content: ""}); - } cellValue = genCellValue(filterType, mSelect); } else { cellValue = genCellValue(filterType, undefined); @@ -149,7 +152,8 @@ export const setFilter = async (options: { }); let filterType = colData.type; if (filterType === "rollup") { - if (!colData.rollup.relationKeyID || !colData.rollup.keyID) { + if (!colData.rollup || !colData.rollup.relationKeyID || !colData.rollup.keyID) { + showMessage(window.siyuan.languages.plsChoose); openMenuPanel({ protyle: options.protyle, blockElement: options.blockElement,