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 + } + ] + } + } + } } }