diff --git a/src/utils/tools.js b/src/utils/tools.js
index 94f01787..36b225de 100644
--- a/src/utils/tools.js
+++ b/src/utils/tools.js
@@ -1080,9 +1080,16 @@ export function colorGradientCalculation (startColor, endColor, values) {
const gDiff = endRgbArr[1] - startRgbArr[1]
const bDiff = endRgbArr[2] - startRgbArr[2]
const valueDiff = values[0] - values[values.length - 1]
- values.forEach((v, i) => {
- colors.push(`rgb(${startRgbArr[0] + Math.floor(rDiff * (valueDiff - diff(v)) / valueDiff)},${startRgbArr[1] + Math.floor(gDiff * (valueDiff - diff(v)) / valueDiff)},${startRgbArr[2] + Math.floor(bDiff * (valueDiff - diff(v)) / valueDiff)})`)
- })
+ if (valueDiff > 0) {
+ values.forEach((v, i) => {
+ colors.push(`rgb(${startRgbArr[0] + Math.floor(rDiff * (valueDiff - diff(v)) / valueDiff)},${startRgbArr[1] + Math.floor(gDiff * (valueDiff - diff(v)) / valueDiff)},${startRgbArr[2] + Math.floor(bDiff * (valueDiff - diff(v)) / valueDiff)})`)
+ })
+ } else {
+ values.forEach((v, i) => {
+ colors.push('rgb(64,83,126)')
+ })
+ }
+
function diff (v) {
return v - values[values.length - 1]
}
diff --git a/src/views/charts2/charts/linkMonitor/LinkBlock.vue b/src/views/charts2/charts/linkMonitor/LinkBlock.vue
index c5508e65..ed0b5372 100644
--- a/src/views/charts2/charts/linkMonitor/LinkBlock.vue
+++ b/src/views/charts2/charts/linkMonitor/LinkBlock.vue
@@ -19,7 +19,7 @@
-
+
@@ -72,7 +72,7 @@
-
+
diff --git a/test/views/charts2/charts/linkMonitor/LinkBlock.test.js b/test/views/charts2/charts/linkMonitor/LinkBlock.test.js
index 1d577216..71de72a4 100644
--- a/test/views/charts2/charts/linkMonitor/LinkBlock.test.js
+++ b/test/views/charts2/charts/linkMonitor/LinkBlock.test.js
@@ -4,6 +4,7 @@ import axios from 'axios'
import chartMixin from '@/views/charts2/chart-mixin'
import { mockData, linkInfoData } from './MockData/LinkBlock'
import common from '@/mixins/common'
+import ElementPlus from 'element-plus'
const mockGet1 = mockData.common.data1
const mockGet2 = mockData.common.data2
@@ -21,7 +22,7 @@ var wrapper = null
* 进行axios请求,并挂载vue实例
*
*/
-function axiosPostAndMounted (list1, list2) {
+function axiosPostAndMounted (list1, list2, loadEle) {
require('vue-router').useRoute.mockReturnValue({ query: {} })
const data1 = list1 || mockGet1
@@ -45,6 +46,9 @@ function axiosPostAndMounted (list1, list2) {
propsData: {
timeFilter
},
+ global: {
+ plugins: loadEle ? [ElementPlus] : []
+ },
mixins: [common, chartMixin]
})
}
@@ -163,4 +167,21 @@ describe('views/charts2/charts/linkMonitor/LinkBlock.vue测试', () => {
resolve()
}, 200))
})
+ test('链路几个数据的值相等,下一跳只有一个数据时,色块颜色是否是蓝色rgb(64,83,126)', async () => {
+ const list1 = mockData.equalValue.data1
+ const list2 = mockData.equalValue.data2
+
+ axiosPostAndMounted(list1, list2, true)
+
+ await new Promise(resolve => setTimeout(() => {
+ const linkBlock0 = wrapper.get('[test-id="linkBlock0"]')
+ const linkBlock1 = wrapper.get('[test-id="linkBlock1"]')
+ const nextHopBlock0 = wrapper.get('[test-id="nextHopBlock0"]')
+
+ expect(linkBlock0.attributes('style')).toBe('background-color: rgb(64, 83, 126);')
+ expect(linkBlock1.attributes('style')).toBe('background-color: rgb(64, 83, 126);')
+ expect(nextHopBlock0.attributes('style')).toBe('background-color: rgb(64, 83, 126);')
+ resolve()
+ }, 200))
+ })
})
diff --git a/test/views/charts2/charts/linkMonitor/MockData/LinkBlock.js b/test/views/charts2/charts/linkMonitor/MockData/LinkBlock.js
index cf0aeada..41fed3fc 100644
--- a/test/views/charts2/charts/linkMonitor/MockData/LinkBlock.js
+++ b/test/views/charts2/charts/linkMonitor/MockData/LinkBlock.js
@@ -238,6 +238,50 @@ export const mockData = {
msg: 'OK'
}
}
+ },
+ equalValue: {
+ data1: {
+ "status": 200,
+ data: {
+ "data": {
+ "resultType": "table",
+ "result": [
+ {
+ "linkId": "1025",
+ "outBytes": "0",
+ "outBitsRate": 0.0,
+ "inBytes": "104870932",
+ "inBitsRate": 38841.12
+ },
+ {
+ "linkId": "512",
+ "outBytes": "104870932",
+ "outBitsRate": 38841.12,
+ "inBytes": "0",
+ "inBitsRate": 0.0
+ }
+ ]
+ }
+ }
+ },
+ data2: {
+ "status": 200,
+ "data": {
+ "data": {
+ "resultType": "table",
+ "result": [
+ {
+ "outLinkDirection": "太原",
+ "inLinkDirection": "西宁",
+ "outBytes": "104870932",
+ "outBitsRate": 38841.12,
+ "inBytes": "104870932",
+ "inBitsRate": 38841.12
+ }
+ ]
+ }
+ }
+ }
}
}