Vanessa 2023-07-15 23:18:35 +08:00
parent a2a75be6f0
commit 46e395189d
3 changed files with 64 additions and 3 deletions

View file

@ -109,12 +109,22 @@
box-sizing: border-box; box-sizing: border-box;
opacity: 0; opacity: 0;
&.av__calc--ashow {
opacity: 1;
}
svg { svg {
height: 10px; height: 10px;
width: 10px; width: 10px;
margin-left: 5px; margin-left: 5px;
} }
span {
font-size: 16px;
color: var(--b3-theme-on-background);
margin-left: 5px;
}
&:hover { &:hover {
background-color: var(--b3-list-icon-hover); background-color: var(--b3-list-icon-hover);
} }

View file

@ -3,6 +3,56 @@ import {hasClosestBlock, hasClosestByClassName} from "../../util/hasClosest";
import {openMenuPanel} from "./openMenuPanel"; import {openMenuPanel} from "./openMenuPanel";
import {Menu} from "../../../plugin/Menu"; import {Menu} from "../../../plugin/Menu";
export const getCalcValue = (column: IAVColumn) => {
if (!column.calc || !column.calc.result) {
return ""
}
const resultCalc = column.calc.result.number
let value = "";
switch (column.calc.operator) {
case "Count all":
value = `<span>${resultCalc.content}</span>${window.siyuan.languages.calcResultCountAll}`
break;
case "Count values":
value = `<span>${resultCalc.content}</span>${window.siyuan.languages.calcResultCountValues}`;
break;
case "Count unique values":
value = `<span>${resultCalc.content}</span>${window.siyuan.languages.calcResultCountUniqueValues}`;
break;
case "Count empty":
value = `<span>${resultCalc.content}</span>${window.siyuan.languages.calcResultCountEmpty}`;
break;
case "Count not empty":
value = `<span>${resultCalc.content}</span>${window.siyuan.languages.calcResultCountNotEmpty}`;
break;
case "Percent empty":
value = `<span>${resultCalc.content}</span>${window.siyuan.languages.calcResultPercentEmpty}`;
break;
case "Percent not empty":
value = `<span>${resultCalc.content}</span>${window.siyuan.languages.calcResultPercentNotEmpty}`;
break;
case "Sum":
value = `<span>${resultCalc.content}</span>${window.siyuan.languages.calcResultSum}`;
break;
case "Average":
value = `<span>${resultCalc.content}</span>${window.siyuan.languages.calcResultAverage}`;
break;
case "Median":
value = `<span>${resultCalc.content}</span>${window.siyuan.languages.calcResultMedian}`;
break;
case "Min":
value = `<span>${resultCalc.content}</span>${window.siyuan.languages.calcResultMin}`;
break;
case "Max":
value = `<span>${resultCalc.content}</span>${window.siyuan.languages.calcResultMax}`;
break;
case "Range":
value = `<span>${resultCalc.content}</span>${window.siyuan.languages.calcResultRange}`;
break;
}
return value;
}
export const genCellValue = (colType: TAVCol, value: string | { export const genCellValue = (colType: TAVCol, value: string | {
content: string, content: string,
color: string color: string

View file

@ -1,6 +1,7 @@
import {fetchPost} from "../../../util/fetch"; import {fetchPost} from "../../../util/fetch";
import {getColIconByType, showColMenu} from "./col"; import {getColIconByType, showColMenu} from "./col";
import {Constants} from "../../../constants"; import {Constants} from "../../../constants";
import {getCalcValue} from "./cell";
export const avRender = (element: Element, cb?: () => void) => { export const avRender = (element: Element, cb?: () => void) => {
let avElements: Element[] = []; let avElements: Element[] = [];
@ -36,8 +37,9 @@ ${column.wrap ? "" : "white-space: nowrap;"}">
</div> </div>
<div class="av__widthdrag"></div> <div class="av__widthdrag"></div>
</div>`; </div>`;
calcHTML += `<div class="av__calc${(calcHTML || !column.calc) ? "" : " av__calc--show"}" data-col-id="${column.id}" data-dtype="${column.type}" data-operator="${column.calc?.operator || ""}"
style="width: ${column.width || "200px"}"><svg><use xlink:href="#iconDown"></use></svg>${window.siyuan.languages.calc}</div>`; calcHTML += `<div class="av__calc${calcHTML ? "" : " av__calc--show"}${column.calc && column.calc.operator !== "" ? " av__calc--ashow" : ""}" data-col-id="${column.id}" data-dtype="${column.type}" data-operator="${column.calc?.operator || ""}"
style="width: ${column.width || "200px"}">${getCalcValue(column) || '<svg><use xlink:href="#iconDown"></use></svg>' + window.siyuan.languages.calc}</div>`;
}); });
tableHTML += `<div class="block__icons" style="min-height: auto"> tableHTML += `<div class="block__icons" style="min-height: auto">
<div class="block__icon block__icon--show" data-type="av-header-add"><svg><use xlink:href="#iconAdd"></use></svg></div> <div class="block__icon block__icon--show" data-type="av-header-add"><svg><use xlink:href="#iconAdd"></use></svg></div>
@ -45,7 +47,6 @@ style="width: ${column.width || "200px"}"><svg><use xlink:href="#iconDown"></use
<div class="block__icon block__icon--show" data-type="av-header-more"><svg><use xlink:href="#iconMore"></use></svg></div> <div class="block__icon block__icon--show" data-type="av-header-more"><svg><use xlink:href="#iconMore"></use></svg></div>
</div> </div>
</div>`; </div>`;
// body // body
data.rows.forEach((row: IAVRow) => { data.rows.forEach((row: IAVRow) => {
tableHTML += `<div class="av__row" data-id="${row.id}"> tableHTML += `<div class="av__row" data-id="${row.id}">