`
@@ -1084,10 +1082,7 @@ export default {
[tData.getHours(), tData.getMinutes(), tData.getSeconds()].join(':')
str += '
'
}
- let val = parseFloat(Number(item.data[1]).toFixed(2))
- if (val === 0) {
- val = Number(item.data[1]).toExponential(2)
- }
+ const val = formatScientificNotation(item.data[1], 2)
sum += self.numberWithEConvent(val)
str += '
'
str += `
${tip ? (tip.alias ? tip.alias : tip.name) : item.seriesName}
`
diff --git a/nezha-fronted/src/components/charts/line-chart-block.vue b/nezha-fronted/src/components/charts/line-chart-block.vue
index c65df0484..74ac8e03b 100644
--- a/nezha-fronted/src/components/charts/line-chart-block.vue
+++ b/nezha-fronted/src/components/charts/line-chart-block.vue
@@ -203,7 +203,7 @@ import chartDataFormat from './chartDataFormat'
import { randomcolor } from '../common/js/radomcolor/randomcolor.js'
import chartConfig from '../page/dashboard/overview/chartConfig'
import { getChart, setChart, lineChartMove, getMousePoint } from '../common/js/common'
-import { getMetricTypeValue, chartResizeTool } from '../common/js/tools'
+import { getMetricTypeValue, chartResizeTool, formatScientificNotation } from '../common/js/tools'
import moment from 'moment-timezone'
export default {
@@ -778,10 +778,7 @@ export default {
} else if (paramsDot > 6) {
paramsDot = 6
}
- let val = item.data[1] ? parseFloat(Number(item.data[1]).toFixed(paramsDot)) : ''
- if (val === 0) {
- val = Number(item.data[1]).toExponential(paramsDot)
- }
+ const val = formatScientificNotation(item.data[1], paramsDot)
sum += self.numberWithEConvent(val)
str += '
'
str += `
${tip ? (tip.alias ? tip.alias : tip.name) : item.seriesName}
`
@@ -789,10 +786,7 @@ export default {
str += chartDataFormat.getUnit(chartInfo.unit ? chartInfo.unit : 2).compute(val, null, -1, paramsDot)
if (previousItem) {
str += '
'
- let previousval = parseFloat(Number(previousItem.data[1]).toFixed(paramsDot))
- if (previousval === 0) {
- previousval = Number(item.data[1]).toExponential(paramsDot)
- }
+ const previousval = formatScientificNotation(item.data[1], paramsDot)
let minusVal = 0
if (previousval <= val) {
minusVal = val - previousval
@@ -922,13 +916,7 @@ export default {
show: true,
fontSize: 10,
formatter: function (val, index) {
- let value = val
- if (val !== 0) {
- value = parseFloat(Number(val).toFixed(2))
- if (value === 0) {
- value = Number(val).toExponential(2)
- }
- }
+ const value = formatScientificNotation(val, 2)
let chartUnit = chartInfo.unit
chartUnit = chartUnit || 2
const unit = chartDataFormat.getUnit(chartUnit)
@@ -1081,10 +1069,7 @@ export default {
str += bus.timeFormate(tData)
str += ''
}
- let val = parseFloat(Number(item.data[1]).toFixed(2))
- if (val === 0) {
- val = Number(item.data[1]).toExponential(2)
- }
+ const val = formatScientificNotation(item.data[1], 2)
sum += self.numberWithEConvent(val)
str += '
'
str += `
${tip ? (tip.alias ? tip.alias : tip.name) : item.seriesName}
`
@@ -1261,10 +1246,7 @@ export default {
minusFlag = false
}
const previousItem = params.find((series) => ('Previous ' + item.seriesName) === series.seriesName)
- let val = parseFloat(Number(item.data[1]).toFixed(2))
- if (val === 0) {
- val = Number(item.data[1]).toExponential(2)
- }
+ const val = formatScientificNotation(item.data[1], 2)
sum += self.numberWithEConvent(val)
str += '
'
str += `
${tip ? (tip.alias ? tip.alias : tip.name) : item.seriesName}
`
@@ -1272,10 +1254,7 @@ export default {
str += chartDataFormat.getUnit(chartInfo.unit ? chartInfo.unit : 2).compute(val, null, self.chartDot)
if (previousItem) {
str += '
'
- let previousval = parseFloat(Number(previousItem.data[1]).toFixed(2))
- if (previousval === 0) {
- previousval = Number(item.data[1]).toExponential(2)
- }
+ const previousval = formatScientificNotation(previousItem.data[1], 2)
let minusVal = 0
if (previousval <= val) {
minusVal = val - previousval
@@ -1294,10 +1273,7 @@ export default {
str += ''
if (previousItem) {
str += '
'
- let previousval = parseFloat(Number(previousItem.data[1]).toFixed(2))
- if (previousval === 0) {
- previousval = Number(item.data[1]).toExponential(2)
- }
+ const previousval = formatScientificNotation(previousItem.data[1], 2)
let minusVal = 0
if (previousval <= val) {
minusVal = val - previousval
diff --git a/nezha-fronted/src/components/common/js/tools.js b/nezha-fronted/src/components/common/js/tools.js
index 0282325da..baaa10b7d 100644
--- a/nezha-fronted/src/components/common/js/tools.js
+++ b/nezha-fronted/src/components/common/js/tools.js
@@ -817,6 +817,14 @@ export function hideTableTooltip () {
dom.innerHTML = ''
}
+/* 数字转换保留小数,数字很小时转为科学计数法, dot为保留几位小数 */
+export function formatScientificNotation (value, dot = 2) {
+ let val = value ? parseFloat(Number(value).toFixed(dot)) : 0
+ if (val === 0) {
+ val = Number(value).toPrecision(dot + 1)
+ }
+ return val
+}
/* function getTdDom(dom) {
let tagName = dom.tagName;
if (tagName.toLowerCase() === 'td') {
diff --git a/nezha-fronted/src/components/page/dashboard/overview/chart.vue b/nezha-fronted/src/components/page/dashboard/overview/chart.vue
index 065ec86b4..120b798b2 100644
--- a/nezha-fronted/src/components/page/dashboard/overview/chart.vue
+++ b/nezha-fronted/src/components/page/dashboard/overview/chart.vue
@@ -24,6 +24,7 @@ import chartConfig from './chartConfig'
import bus from '../../../../libs/bus'
import EleResize from '../../../common/js/divResize'
import { randomcolor } from '../../../common/js/radomcolor/randomcolor'
+import { formatScientificNotation } from '@/components/common/js/tools'
// import * as mapGeoJson from "../../../common/js/world";
export default {
@@ -449,10 +450,7 @@ export default {
const previousItem = params.find((series) => ('Previous ' + item.seriesName) === series.seriesName)
if (previousItem) {
str += ''
- let previousval = parseFloat(Number(previousItem.data[1]).toFixed(dot))
- if (previousval === 0) {
- previousval = Number(item.data[1]).toExponential(2)
- }
+ const previousval = formatScientificNotation(previousItem.data[1], dot)
let minusVal = 0
if (previousval <= val) {
minusVal = val - previousval