diff --git a/app/src/protyle/render/av/cell.ts b/app/src/protyle/render/av/cell.ts
index e2f42e009..d92329d62 100644
--- a/app/src/protyle/render/av/cell.ts
+++ b/app/src/protyle/render/av/cell.ts
@@ -131,8 +131,8 @@ export const genCellValue = (colType: TAVCol, value: string | any) => {
cellValue = {
type: colType,
number: {
- content: 0,
- isNotEmpty: true
+ content: null,
+ isNotEmpty: false
}
};
} else if (["text", "block", "url", "phone", "email", "template"].includes(colType)) {
diff --git a/app/src/protyle/render/av/filter.ts b/app/src/protyle/render/av/filter.ts
index 615cccf14..4c1f90a2f 100644
--- a/app/src/protyle/render/av/filter.ts
+++ b/app/src/protyle/render/av/filter.ts
@@ -67,10 +67,10 @@ 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 selectElement = window.siyuan.menus.menu.element.querySelector(".b3-select") as HTMLSelectElement;
- if (!selectElement) {
+ const operator = selectElement.value as TAVFilterOperator;
+ if (!selectElement || !operator) {
return;
}
- const operator = selectElement.value as TAVFilterOperator;
let hasMatch = false;
let cellValue: IAVCellValue;
if (textElements.length > 0) {
@@ -101,6 +101,10 @@ export const setFilter = async (options: {
}
});
cellValue = genCellValue(filterType, mSelect);
+ } else if (filterType === "checkbox") {
+ cellValue = genCellValue(filterType, {
+ checked: operator === "Is true"
+ });
} else {
cellValue = genCellValue(filterType, undefined);
}
@@ -112,6 +116,12 @@ export const setFilter = async (options: {
let isSame = false;
options.data.view.filters.find((filter, index) => {
if (filter.column === options.filter.column) {
+ if (filter.type && filter.type === "checkbox") {
+ hasMatch = true;
+ delete filter.type;
+ options.data.view.filters[index] = newFilter;
+ return true;
+ }
delete filter.type;
if (objEquals(filter, newFilter)) {
isSame = true;
@@ -187,8 +197,12 @@ export const setFilter = async (options: {
}
switch (filterType) {
case "checkbox":
- selectHTML = `
-`;
+ selectHTML = `
+`;
+ if (options.filter.type) {
+ // 初始化时有 type 字段
+ selectHTML = `${selectHTML}`;
+ }
break;
case "block":
case "text":