This commit is contained in:
Vanessa 2023-07-12 00:08:00 +08:00
parent 84884aa6f3
commit 5cbfc5ecb3
4 changed files with 21 additions and 22 deletions

View file

@ -37,7 +37,7 @@ export const getCellValue = (colType: TAVCol, value: string) => {
}; };
} }
return cellValue; return cellValue;
} };
export const setFilter = (options: { export const setFilter = (options: {
filter: IAVFilter, filter: IAVFilter,
@ -55,7 +55,7 @@ export const setFilter = (options: {
column: options.filter.column, column: options.filter.column,
value: cellValue, value: cellValue,
operator: (window.siyuan.menus.menu.element.querySelector(".b3-select") as HTMLSelectElement).value as TAVFilterOperator operator: (window.siyuan.menus.menu.element.querySelector(".b3-select") as HTMLSelectElement).value as TAVFilterOperator
} };
let isSame = false; let isSame = false;
options.data.view.filters.find((filter, index) => { options.data.view.filters.find((filter, index) => {
@ -92,7 +92,7 @@ export const setFilter = (options: {
return; return;
} }
let selectHTML = ""; let selectHTML = "";
let colData: IAVColumn let colData: IAVColumn;
switch (colType) { switch (colType) {
case "text": case "text":
selectHTML = `<option ${"=" === options.filter.operator ? "selected" : ""} value="=">${window.siyuan.languages.filterOperatorIs}</option> selectHTML = `<option ${"=" === options.filter.operator ? "selected" : ""} value="=">${window.siyuan.languages.filterOperatorIs}</option>
@ -293,21 +293,21 @@ export const getFiltersHTML = (data: IAVTable) => {
let filterHTML = ""; let filterHTML = "";
data.columns.find((item) => { data.columns.find((item) => {
if (item.id === filter.column) { if (item.id === filter.column) {
let filterValue = "" let filterValue = "";
if (filter.operator === "Is empty") { if (filter.operator === "Is empty") {
filterValue = ": " + window.siyuan.languages.filterOperatorIsEmpty filterValue = ": " + window.siyuan.languages.filterOperatorIsEmpty;
} else if (filter.operator === "Is not empty") { } else if (filter.operator === "Is not empty") {
filterValue = ": " + window.siyuan.languages.filterOperatorIsNotEmpty filterValue = ": " + window.siyuan.languages.filterOperatorIsNotEmpty;
} else if (filter.value?.number?.content && ["=", "!=", ">", "<", ">=", "<="].includes(filter.operator)) { } else if (filter.value?.number?.content && ["=", "!=", ">", "<", ">=", "<="].includes(filter.operator)) {
filterValue = ` ${filter.operator} ${filter.value.number.content}` filterValue = ` ${filter.operator} ${filter.value.number.content}`;
} else if (filter.value?.text?.content && ["=", "Contains"].includes(filter.operator)) { } else if (filter.value?.text?.content && ["=", "Contains"].includes(filter.operator)) {
filterValue = `: ${filter.value.text.content}` filterValue = `: ${filter.value.text.content}`;
} else if (filter.value?.text?.content && ["!=", "Does not contains"].includes(filter.operator)) { } else if (filter.value?.text?.content && ["!=", "Does not contains"].includes(filter.operator)) {
filterValue = `Not ${filter.value.text.content}` filterValue = `Not ${filter.value.text.content}`;
} else if (filter.value?.text?.content && "Starts with" === filter.operator) { } else if (filter.value?.text?.content && "Starts with" === filter.operator) {
filterValue = `: ${window.siyuan.languages.filterOperatorStartsWith} ${filter.value.text.content}` filterValue = `: ${window.siyuan.languages.filterOperatorStartsWith} ${filter.value.text.content}`;
} else if (filter.value?.text?.content && "Ends with" === filter.operator) { } else if (filter.value?.text?.content && "Ends with" === filter.operator) {
filterValue = `: ${window.siyuan.languages.filterOperatorEndsWith} ${filter.value.text.content}` filterValue = `: ${window.siyuan.languages.filterOperatorEndsWith} ${filter.value.text.content}`;
} }
filterHTML += `<span data-type="setFilter" class="b3-chip${filterValue ? " b3-chip--primary" : ""}"> filterHTML += `<span data-type="setFilter" class="b3-chip${filterValue ? " b3-chip--primary" : ""}">
<svg><use xlink:href="#${getColIconByType(item.type)}"></use></svg> <svg><use xlink:href="#${getColIconByType(item.type)}"></use></svg>

View file

@ -384,7 +384,7 @@ export const openMenuPanel = (protyle: IProtyle,
}); });
return true; return true;
} }
}) });
event.stopPropagation(); event.stopPropagation();
break; break;
} else if (type === "newCol") { } else if (type === "newCol") {

View file

@ -54,7 +54,7 @@ ${column.wrap ? "" : "white-space: nowrap;"}">
if (data.columns[index].hidden) { if (data.columns[index].hidden) {
return; return;
} }
let text = ''; let text = "";
if (cell.valueType === "text") { if (cell.valueType === "text") {
text = `<span class="av__celltext">${cell.value?.text.content || ""}</span>`; text = `<span class="av__celltext">${cell.value?.text.content || ""}</span>`;
} else if (cell.valueType === "block") { } else if (cell.valueType === "block") {
@ -66,7 +66,7 @@ ${column.wrap ? "" : "white-space: nowrap;"}">
text += `<span class="av__celltext"><span class="b3-chip b3-chip--middle" style="background-color:var(--b3-font-background${item.color});color:var(--b3-font-color${item.color})">${item.content}</span></span>`; text += `<span class="av__celltext"><span class="b3-chip b3-chip--middle" style="background-color:var(--b3-font-background${item.color});color:var(--b3-font-color${item.color})">${item.content}</span></span>`;
}); });
if (!text) { if (!text) {
text = '<span class="av__celltext"></span>' text = '<span class="av__celltext"></span>';
} }
} else if (cell.valueType === "date") { } else if (cell.valueType === "date") {
text = `<span class="av__celltext">${cell.value?.date.content || ""}</span>`; text = `<span class="av__celltext">${cell.value?.date.content || ""}</span>`;
@ -80,13 +80,13 @@ ${cell.color ? `color:${cell.color};` : ""}">${text}</div>`;
}); });
tableHTML += "<div></div></div>"; tableHTML += "<div></div></div>";
}); });
let tabHTML = "" let tabHTML = "";
response.data.views.forEach((item: IAVView) => { response.data.views.forEach((item: IAVView) => {
tabHTML += `<div data-id="${response.data.viewID}" class="item${item.id === response.data.viewID ? " item--focus" : ""}"> tabHTML += `<div data-id="${response.data.viewID}" class="item${item.id === response.data.viewID ? " item--focus" : ""}">
<svg class="item__graphic"><use xlink:href="#iconTable"></use></svg> <svg class="item__graphic"><use xlink:href="#iconTable"></use></svg>
<span class="item__text">${item.name}</span> <span class="item__text">${item.name}</span>
</div>` </div>`;
}) });
const paddingLeft = e.parentElement.style.paddingLeft; const paddingLeft = e.parentElement.style.paddingLeft;
const paddingRight = e.parentElement.style.paddingRight; const paddingRight = e.parentElement.style.paddingRight;
e.style.width = e.parentElement.clientWidth + "px"; e.style.width = e.parentElement.clientWidth + "px";

View file

@ -2,7 +2,6 @@ import {Menu} from "../../../plugin/Menu";
import {transaction} from "../../wysiwyg/transaction"; import {transaction} from "../../wysiwyg/transaction";
import {hasClosestByClassName} from "../../util/hasClosest"; import {hasClosestByClassName} from "../../util/hasClosest";
import {confirmDialog} from "../../../dialog/confirmDialog"; import {confirmDialog} from "../../../dialog/confirmDialog";
import {setPosition} from "../../../util/setPosition";
import {upDownHint} from "../../../util/upDownHint"; import {upDownHint} from "../../../util/upDownHint";
const filterSelectHTML = (key: string, options: { name: string, color: string }[]) => { const filterSelectHTML = (key: string, options: { name: string, color: string }[]) => {
@ -98,7 +97,7 @@ export const removeSelectCell = (protyle: IProtyle, data: IAVTable, options: {
[colData.type]: oldValue [colData.type]: oldValue
} }
}]); }]);
} };
export const setSelectCol = (protyle: IProtyle, data: IAVTable, options: { export const setSelectCol = (protyle: IProtyle, data: IAVTable, options: {
cellElement: HTMLElement; cellElement: HTMLElement;
@ -215,7 +214,7 @@ export const setSelectCol = (protyle: IProtyle, data: IAVTable, options: {
}); });
return true; return true;
} }
}) });
menuElement.innerHTML = getSelectHTML(data, options); menuElement.innerHTML = getSelectHTML(data, options);
bindSelectEvent(protyle, data, menuElement, options); bindSelectEvent(protyle, data, menuElement, options);
}); });
@ -229,7 +228,7 @@ export const setSelectCol = (protyle: IProtyle, data: IAVTable, options: {
label: `<span class="color__square" style="padding: 5px;margin: 2px;color: var(--b3-font-color${index + 1});background-color: var(--b3-font-background${index + 1});">A</span>`, label: `<span class="color__square" style="padding: 5px;margin: 2px;color: var(--b3-font-color${index + 1});background-color: var(--b3-font-background${index + 1});">A</span>`,
click(element) { click(element) {
if (element.lastElementChild.classList.contains("b3-menu__accelerator")) { if (element.lastElementChild.classList.contains("b3-menu__accelerator")) {
return return;
} }
element.parentElement.querySelector(".b3-menu__accelerator")?.remove(); element.parentElement.querySelector(".b3-menu__accelerator")?.remove();
element.insertAdjacentHTML("beforeend", '<span class="b3-menu__accelerator"><svg class="svg" style="height: 30px; float: left;"><use xlink:href="#iconSelect"></use></svg></span>'); element.insertAdjacentHTML("beforeend", '<span class="b3-menu__accelerator"><svg class="svg" style="height: 30px; float: left;"><use xlink:href="#iconSelect"></use></svg></span>');
@ -433,7 +432,7 @@ export const addSelectColAndCell = (protyle: IProtyle, data: IAVTable, options:
if (colData.type === "select") { if (colData.type === "select") {
menuElement.parentElement.remove(); menuElement.parentElement.remove();
} }
} };
export const getSelectHTML = (data: IAVTable, options: { cellElement: HTMLElement }) => { export const getSelectHTML = (data: IAVTable, options: { cellElement: HTMLElement }) => {
const cellId = options.cellElement.dataset.id; const cellId = options.cellElement.dataset.id;