summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhangyu <[email protected]>2023-11-03 14:29:34 +0800
committerzhangyu <[email protected]>2023-11-03 14:29:34 +0800
commite8d3f0ffad689f6d59bb86a1af573e4780f4e7b0 (patch)
tree38f94d22d4a057fe1e261eb91040625d51a98da9
parentd20454630342fca81a6ecaba019750c4959dccc9 (diff)
NEZ-3211 feat:legedn 以及 统计重构
-rw-r--r--nezha-fronted/src/components/chart/chart/uplot/chartTimeSeriesMixin.js27
-rw-r--r--nezha-fronted/src/components/chart/chartMixin.js3
2 files changed, 21 insertions, 9 deletions
diff --git a/nezha-fronted/src/components/chart/chart/uplot/chartTimeSeriesMixin.js b/nezha-fronted/src/components/chart/chart/uplot/chartTimeSeriesMixin.js
index 1cdf7b8f9..c48293f6f 100644
--- a/nezha-fronted/src/components/chart/chart/uplot/chartTimeSeriesMixin.js
+++ b/nezha-fronted/src/components/chart/chart/uplot/chartTimeSeriesMixin.js
@@ -1,6 +1,8 @@
import { initColor, Incrs } from '@/components/chart/chart/tools'
import { randomcolor } from '@/components/common/js/radomcolor/randomcolor'
import chartDataFormat from '@/components/chart/chartDataFormat'
+import lodash from "lodash";
+import {getMetricTypeValue} from "@/components/common/js/tools";
export default {
data () {
return {
@@ -28,9 +30,18 @@ export default {
time.forEach(item => {
ObjTime[item] = undefined
})
- chartData.forEach(series => { // 首先处理时间 对应点没有值(不包括null 则添加undefind)
- series.forEach(item => {
+ chartData.forEach((series, expressionIndex) => { // 首先处理时间 对应点没有值(不包括null 则添加undefind)
+ series.forEach((item, seriesIndex) => {
let seriesObjTime = {}
+ // 若需要统计,处理统计数据
+ const statisticsTypes = this.chartInfo.param.legend ? this.chartInfo.param.legend.values : ''
+ let statistics = []
+ if (!lodash.isEmpty(statisticsTypes)) {
+ statistics = statisticsTypes.map(type => {
+ return { type, value: getMetricTypeValue(item.values, type) }
+ })
+ }
+ item.statistics = statistics
item.values.forEach(value => {
seriesObjTime[value[0]] = value[1]
})
@@ -39,9 +50,8 @@ export default {
...ObjTime,
...seriesObjTime
}
- console.log(seriesObjTime, seriesObjTime)
seriesData.push(Object.keys(seriesObjTime).map(time => seriesObjTime[time]))
- seriesAll.push(this.renderSeries(item, chartIndex))
+ seriesAll.push(this.renderSeries(item, expressionIndex, seriesIndex, chartIndex))
chartIndex++
})
})
@@ -51,25 +61,26 @@ export default {
seriesAll
}
},
- renderSeries (series, chartIndex) {
+ renderSeries (series, expressionIndex, dataIndex, chartIndex) {
const leftUnit = this.chartInfo.unit
const leftUnitCompute = chartDataFormat.getUnit(leftUnit)
const decimals = this.chartInfo.param.decimals || 2
if (chartIndex > 19) {
this.seriesColor.push(randomcolor())
}
+ const legend = this.handleLegend(this.chartInfo, series, expressionIndex, dataIndex, chartIndex)
+ console.log(legend)
const obj = {
name: series.elements.name + JSON.stringify(series.metric),
label: series.elements.name + JSON.stringify(series.metric),
class: series.elements.name + JSON.stringify(series.metric),
scale: 'left', // right
- // value: (u, v) => v == null ? null : (!v ? v : leftUnitCompute.compute(v, null, -1, decimals)),
values: (u, v) => series.elements.name + JSON.stringify(series.metric),
stroke: this.seriesColor[chartIndex],
width: 1 / devicePixelRatio
}
- const name = series.elements.name + JSON.stringify(series.metric)
- const alias = series.elements.name + JSON.stringify(series.metric)
+ const name = legend.name
+ const alias = legend.alias
const statistics = series.statistics
this.legends.push({ name, alias, statistics, color: this.seriesColor[chartIndex] })
return obj
diff --git a/nezha-fronted/src/components/chart/chartMixin.js b/nezha-fronted/src/components/chart/chartMixin.js
index d143d23bf..38fc96eab 100644
--- a/nezha-fronted/src/components/chart/chartMixin.js
+++ b/nezha-fronted/src/components/chart/chartMixin.js
@@ -189,6 +189,7 @@ export default {
},
// 单个legend
handleLegend (chartInfo, data, expressionIndexs, dataIndex, colorIndex) {
+ console.log(chartInfo, data, expressionIndexs, dataIndex, colorIndex)
let expressionIndex = expressionIndexs
let legend = '' // up
let alias = ''
@@ -250,7 +251,7 @@ export default {
const colorRandom = randomcolor()
this.colorList.push(colorRandom)
}
- this.legends.push({ name, alias, statistics, color: this.colorList[colorIndex] })
+ // this.legends.push({ name, alias, statistics, color: this.colorList[colorIndex] })
return {
name,
alias