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. -->