From 6b52404d472496a551e358c252191a6c8ec2e6f0 Mon Sep 17 00:00:00 2001 From: zhangyu Date: Fri, 1 Apr 2022 16:21:47 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=94=B9=20=E5=91=8A?= =?UTF-8?q?=E8=AD=A6=E7=B1=BB=E5=9E=8B=E4=B8=BA=E6=97=A5=E5=BF=97=E7=9A=84?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E4=B8=8D=E4=BA=86=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/common/bottomBox/tabs/alertMessageTabNew.vue | 2 +- nezha-fronted/src/components/page/alert/alertMessage.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nezha-fronted/src/components/common/bottomBox/tabs/alertMessageTabNew.vue b/nezha-fronted/src/components/common/bottomBox/tabs/alertMessageTabNew.vue index 9fe29d125..c955a23f1 100644 --- a/nezha-fronted/src/components/common/bottomBox/tabs/alertMessageTabNew.vue +++ b/nezha-fronted/src/components/common/bottomBox/tabs/alertMessageTabNew.vue @@ -633,7 +633,7 @@ export default { color: '#d64f40' }] } - chartInfo.elements[0].expression = encodeURIComponent(this.currentMsg.alertRule.expr.replace(/\"/g, '\'').replace(/\r|\n+/g, '')) + chartInfo.elements[0].expression = this.currentMsg.alertRule.expr.replace(/\r|\n+/g, '') chartInfo.elements[0].filter = encodeURIComponent(decodeURIComponent(this.promQueryParamLabels(this.currentMsg.labels))) chartInfo.unit = this.currentMsg.alertRule.unit this.showFullscreen(true, chartInfo) diff --git a/nezha-fronted/src/components/page/alert/alertMessage.vue b/nezha-fronted/src/components/page/alert/alertMessage.vue index eb2d7bdd9..531d52966 100644 --- a/nezha-fronted/src/components/page/alert/alertMessage.vue +++ b/nezha-fronted/src/components/page/alert/alertMessage.vue @@ -630,7 +630,7 @@ export default { color: '#d64f40' }] } - chartInfo.elements[0].expression = encodeURIComponent(this.currentMsg.alertRule.expr.replace(/\"/g, '\'').replace(/\r|\n+/g, '')) + chartInfo.elements[0].expression = this.currentMsg.alertRule.expr.replace(/\r|\n+/g, '') chartInfo.elements[0].filter = encodeURIComponent(decodeURIComponent(this.promQueryParamLabels(this.currentMsg.labels))) chartInfo.unit = this.currentMsg.alertRule.unit this.showFullscreen(true, chartInfo) From d3715114fb83e93a3e11fac2aab4e1c8018f7b5c Mon Sep 17 00:00:00 2001 From: zhangyu Date: Fri, 1 Apr 2022 16:40:26 +0800 Subject: [PATCH 2/3] =?UTF-8?q?NEZ-1769=20fix=EF=BC=9Achart=20=E5=8F=96?= =?UTF-8?q?=E6=9C=80=E5=A4=A7=E5=80=BC=E9=94=99=E8=AF=AF=20=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=20Y=E8=BD=B4=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/chart/chart/chartTimeSeries.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/nezha-fronted/src/components/chart/chart/chartTimeSeries.vue b/nezha-fronted/src/components/chart/chart/chartTimeSeries.vue index 75bb0c083..176f71254 100644 --- a/nezha-fronted/src/components/chart/chart/chartTimeSeries.vue +++ b/nezha-fronted/src/components/chart/chart/chartTimeSeries.vue @@ -129,10 +129,12 @@ export default { }) }) const timeSorted = datas.sort((a, b) => { - return a[0] - b[0] + return Number(a[0]) - Number(b[0]) }) const valueSorted = datas.sort((a, b) => { - return a[1] - b[1] + const a1 = isNaN(a[1]) ? 0 : Number(a[1]) + const b1 = isNaN(b[1]) ? 0 : Number(b[1]) + return a1 - b1 }) minTime = timeSorted.length ? timeSorted[0][0] : '' maxTime = timeSorted.length ? timeSorted[timeSorted.length - 1][0] : '' From cf98a31414710065dad9985f43e5d7263afce515 Mon Sep 17 00:00:00 2001 From: zhangyu Date: Fri, 1 Apr 2022 17:44:02 +0800 Subject: [PATCH 3/3] =?UTF-8?q?NEZ-1768=20fix=EF=BC=9A=E5=BD=93=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=BF=94=E5=9B=9Enan=E7=9A=84=E6=97=B6=E5=80=99=20?= =?UTF-8?q?=E5=8F=96=E6=9C=80=E5=A4=A7=E5=80=BC=20=E6=9C=80=E5=B0=8F?= =?UTF-8?q?=E5=80=BC=20=E5=B9=B3=E5=9D=87=E5=80=BC=E4=B8=8D=E5=AF=B9?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/common/js/tools.js | 46 ++++++++++++++++--- 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/nezha-fronted/src/components/common/js/tools.js b/nezha-fronted/src/components/common/js/tools.js index 8c923cae4..452e0ee94 100644 --- a/nezha-fronted/src/components/common/js/tools.js +++ b/nezha-fronted/src/components/common/js/tools.js @@ -866,15 +866,32 @@ export function getMetricTypeValue (queryItem, type) { let copy = JSON.parse(JSON.stringify(queryItem)) switch (type) { case 'min': { - const min = copy.sort((x, y) => { return parseFloat(x[1]) - parseFloat(y[1]) })[0][1] + let min = copy.sort((x, y) => { + const x1 = isNaN(x[1]) ? 0 : x[1] + const y1 = isNaN(x[1]) ? 0 : y[1] + return x1 - y1 + })[0][1] + if (isNaN(min)) { + min = 0 + } return min } case 'max': { - const max = copy.sort((x, y) => { return parseFloat(y[1]) - parseFloat(x[1]) })[0][1] + let max = copy.sort((x, y) => { + const x1 = isNaN(x[1]) ? 0 : x[1] + const y1 = isNaN(x[1]) ? 0 : y[1] + return y1 - x1 + })[0][1] + if (isNaN(max)) { + max = 0 + } return max } case 'avg': { - copy = copy.map(t => parseFloat(t[1])) + copy = copy.map(t => { + const t1 = isNaN(t[1]) ? 0 : t[1] + return parseFloat(t1) + }) const sum = eval(copy.join('+')) const avg = sum / copy.length return avg @@ -888,13 +905,30 @@ export function getMetricTypeValue (queryItem, type) { return first } case 'total': { - copy = copy.map(t => parseFloat(t[1])) + copy = copy.map(t => { + const t1 = isNaN(t[1]) ? 0 : t[1] + return parseFloat(t1) + }) const total = eval(copy.join('+')) return total } case 'range': { - const min = copy.sort((x, y) => { return parseFloat(x[1]) - parseFloat(y[1]) })[0][1] - const max = copy.sort((x, y) => { return parseFloat(y[1]) - parseFloat(x[1]) })[0][1] + let min = copy.sort((x, y) => { + const x1 = isNaN(x[1]) ? 0 : x[1] + const y1 = isNaN(x[1]) ? 0 : y[1] + return x1 - y1 + })[0][1] + if (isNaN(min)) { + min = 0 + } + let max = copy.sort((x, y) => { + const x1 = isNaN(x[1]) ? 0 : x[1] + const y1 = isNaN(x[1]) ? 0 : y[1] + return y1 - x1 + })[0][1] + if (isNaN(max)) { + max = 0 + } return max - min } case 'different': {