From 19324ab92d82364eead0be676a945559f2a9efd6 Mon Sep 17 00:00:00 2001 From: Fine Date: Tue, 8 Nov 2022 11:19:14 +0800 Subject: [PATCH] add aggregations --- src/hooks/useLegendProcessor.ts | 32 ++++++++++++++++++- .../dashboard/graphs/components/Legend.vue | 9 +++--- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/src/hooks/useLegendProcessor.ts b/src/hooks/useLegendProcessor.ts index 58aedc08..d46f2b82 100644 --- a/src/hooks/useLegendProcessor.ts +++ b/src/hooks/useLegendProcessor.ts @@ -33,6 +33,36 @@ export default function useLegendProcess(legend?: LegendOptions) { } return true; } + function aggregations(data: { [key: string]: number[] }) { + const source: any = {}; + const keys = Object.keys(data); - return { showEchartsLegend, isRight }; + for (const k of keys) { + source[k].linear = data[k]; + if (legend) { + if (legend.min) { + source[k].min = Math.min(...data[k]); + } + if (legend.max) { + source[k].max = Math.max(...data[k]); + } + if (legend.mean) { + const total = data[k].reduce((prev: number, next: number) => { + prev += next; + return prev; + }, 0); + source[k].mean = total / data[k].length; + } + if (legend.total) { + source[k].total = data[k].reduce((prev: number, next: number) => { + prev += next; + return prev; + }, 0); + } + } + } + + return source; + } + return { showEchartsLegend, isRight, aggregations }; } diff --git a/src/views/dashboard/graphs/components/Legend.vue b/src/views/dashboard/graphs/components/Legend.vue index 1fb91bed..4fca15a3 100644 --- a/src/views/dashboard/graphs/components/Legend.vue +++ b/src/views/dashboard/graphs/components/Legend.vue @@ -18,6 +18,7 @@ limitations under the License. -->