CN-1356 fix: 恢复link蜂窝图接口返回的数个数值均相等时无法正确显示的问题

This commit is contained in:
chenjinsong
2023-09-26 21:02:55 +08:00
parent ceb9a10293
commit 2894eaf7e4
4 changed files with 78 additions and 6 deletions

View File

@@ -1080,9 +1080,16 @@ export function colorGradientCalculation (startColor, endColor, values) {
const gDiff = endRgbArr[1] - startRgbArr[1] const gDiff = endRgbArr[1] - startRgbArr[1]
const bDiff = endRgbArr[2] - startRgbArr[2] const bDiff = endRgbArr[2] - startRgbArr[2]
const valueDiff = values[0] - values[values.length - 1] const valueDiff = values[0] - values[values.length - 1]
values.forEach((v, i) => { if (valueDiff > 0) {
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)})`) 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) { function diff (v) {
return v - values[values.length - 1] return v - values[values.length - 1]
} }

View File

@@ -19,7 +19,7 @@
<template #reference> <template #reference>
<div class="block-list__block" :key="index" @click="drillLinkId(item)"> <div class="block-list__block" :key="index" @click="drillLinkId(item)">
<span class="block-hex"> <span class="block-hex">
<span class="block-hex-in" :style="`background-color: ${item.color}`"></span> <span class="block-hex-in" :test-id="`linkBlock${index}`" :style="`background-color: ${item.color}`"></span>
</span> </span>
</div> </div>
</template> </template>
@@ -72,7 +72,7 @@
<template #reference> <template #reference>
<div class="block-list__block" :key="index" @click="drillNextHop(item)"> <div class="block-list__block" :key="index" @click="drillNextHop(item)">
<span class="block-hex"> <span class="block-hex">
<span class="block-hex-in" :style="`background-color: ${item.color}`"></span> <span class="block-hex-in" :test-id="`nextHopBlock${index}`" :style="`background-color: ${item.color}`"></span>
</span> </span>
</div> </div>
</template> </template>

View File

@@ -4,6 +4,7 @@ import axios from 'axios'
import chartMixin from '@/views/charts2/chart-mixin' import chartMixin from '@/views/charts2/chart-mixin'
import { mockData, linkInfoData } from './MockData/LinkBlock' import { mockData, linkInfoData } from './MockData/LinkBlock'
import common from '@/mixins/common' import common from '@/mixins/common'
import ElementPlus from 'element-plus'
const mockGet1 = mockData.common.data1 const mockGet1 = mockData.common.data1
const mockGet2 = mockData.common.data2 const mockGet2 = mockData.common.data2
@@ -21,7 +22,7 @@ var wrapper = null
* 进行axios请求并挂载vue实例 * 进行axios请求并挂载vue实例
* *
*/ */
function axiosPostAndMounted (list1, list2) { function axiosPostAndMounted (list1, list2, loadEle) {
require('vue-router').useRoute.mockReturnValue({ query: {} }) require('vue-router').useRoute.mockReturnValue({ query: {} })
const data1 = list1 || mockGet1 const data1 = list1 || mockGet1
@@ -45,6 +46,9 @@ function axiosPostAndMounted (list1, list2) {
propsData: { propsData: {
timeFilter timeFilter
}, },
global: {
plugins: loadEle ? [ElementPlus] : []
},
mixins: [common, chartMixin] mixins: [common, chartMixin]
}) })
} }
@@ -163,4 +167,21 @@ describe('views/charts2/charts/linkMonitor/LinkBlock.vue测试', () => {
resolve() resolve()
}, 200)) }, 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))
})
}) })

View File

@@ -238,6 +238,50 @@ export const mockData = {
msg: 'OK' 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
}
]
}
}
}
} }
} }