fix:服务器monitor页面tooltip增加单位

This commit is contained in:
orgin 2024-01-03 20:15:15 +08:00
parent f819b4fa0c
commit b17d6ffac8
2 changed files with 99 additions and 9 deletions

View File

@ -10,10 +10,11 @@
</template> </template>
<script> <script>
import moment from 'moment'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import BoxTitle from '../../components/boxTitle.vue' import BoxTitle from '../../components/boxTitle.vue'
export default { export default {
props: ['title', 'layout', 'dataSource', 'xData'], props: ['title', 'layout', 'dataSource', 'xData', 'units', 'newUnits'],
components: { components: {
BoxTitle, BoxTitle,
}, },
@ -48,10 +49,25 @@ export default {
data: item.data, data: item.data,
} }
}) })
let that = this
this.option = { this.option = {
color: ['#00ff5a', '#0096ff', '#ffc600'], color: ['#00ff5a', '#0096ff', '#ffc600'],
tooltip: { tooltip: {
trigger: 'axis', trigger: 'axis',
formatter: function(params) {
let tooltip = params[0].name + '<br>'; // tooltip
params.forEach(function(item) {
let value = item.value;
let unit = undefined !== that.units ? that.units : ''
unit = undefined !== that.newUnits ? that.newUnits : unit
//
value += ' ' + unit;
tooltip += item.marker + item.seriesName + ': ' + value + '<br>'; //
});
return tooltip;
}
}, },
grid: { grid: {
left: 0, left: 0,

View File

@ -57,6 +57,8 @@
:layout="'line' + index" :layout="'line' + index"
:xData="item.xData" :xData="item.xData"
:dataSource="item.data" :dataSource="item.data"
:newUnits="item.newUnits"
:units="item.units"
@zoom="handelZoom" @zoom="handelZoom"
> >
</LineChart> </LineChart>
@ -92,6 +94,43 @@ export default {
LineChart, LineChart,
CreateRules, CreateRules,
}, },
computed:{
unitConversion(){
return function(number,units){
if( units === 'Kb') {
number = number *1024
}
if (number < 1024 ) return "B"
number = number / 1024
if (number < 1024) return "KB"
number = number / 1024
if (number < 1024) return "MB"
number = number / 1024
console.log('TB',number)
if (number < 1024) return 'GB'
number = number / 1024
if (number < 1024) return 'TB'
number = number / 1024
if (number < 1024) return 'PB'
number = number / 1024
if (number < 1024) return 'EB'
}
},
dataConversion(){
return function(number,units){
const obj = {
KB: 1024,
MB: Math.pow(1024,2),
GB: Math.pow(1024,3),
TB: Math.pow(1024,4),
PB: Math.pow(1024,5),
EB: Math.pow(1024,6),
}
// console.log(obj[units],number / obj[units])
return (number / obj[units]).toFixed(2)
}
}
},
data() { data() {
return { return {
currId: '', currId: '',
@ -134,17 +173,25 @@ export default {
// itemId // itemId
getMonitorItemId() { getMonitorItemId() {
let params = { let params = {
sourceType: 'Server',
sourceId: this.currId, sourceId: this.currId,
} }
getAction('/alarmItem/alarmItems', params).then((res) => { getAction('/alarmRule/getItems', params).then((res) => {
if (res.success) { if (res.success) {
this.MonitorItem = res.result this.MonitorItem = res.result
this.chartDatas = Object.entries(this.MonitorItem).map(([k, v]) => ({ this.chartDatas = this.MonitorItem.map(f=>({
title: k, title: f.name,
value: v, value: f.itemId,
type: f.valueType,
xData: [], xData: [],
data: [], data: [],
})) }))
// this.chartDatas = Object.entries(this.MonitorItem).map(([k, v]) => ({
// title: k,
// value: v,
// xData: [],
// data: [],
// }))
this.getMonitorData() this.getMonitorData()
} }
}) })
@ -154,12 +201,13 @@ export default {
this.chartDatas.forEach(async (item) => { this.chartDatas.forEach(async (item) => {
const params = { const params = {
itemId: item.value, itemId: item.value,
itemType: item.valueType, itemType: item.type,
start: this.queryParams.startDate, start: this.queryParams.startDate,
end: this.queryParams.endDate, end: this.queryParams.endDate,
} }
try { try {
const res = await this.getMonitorItemData(params) const res = await this.getMonitorItemData(params)
console.log("getMonitorItemData>",res);
item.xData = res.xData item.xData = res.xData
item.data = [ item.data = [
{ {
@ -167,6 +215,8 @@ export default {
data: res.data, data: res.data,
}, },
] ]
item.units = res.units
item.newUnits = res.newUnits
} catch (error) { } catch (error) {
console.error(error) console.error(error)
} }
@ -174,19 +224,43 @@ export default {
}, },
async getMonitorItemData(params) { async getMonitorItemData(params) {
const res = await getAction('/systemMonitor/queryItemHistory', params) const res = await getAction('/systemMonitor/queryItemHistory', params)
let data = []
// return res // return res
if (res.success) { if (res.success) {
let name = res.result.name let name = res.result.name
let units = res.result.units
let newUnits = res.result.newUnits
let xData = res.result.list.map((item) => { let xData = res.result.list.map((item) => {
return dateFormat(new Date(item.date * 1000), 'hh:mm') return dateFormat(new Date(item.date * 1000), 'hh:mm')
}) })
let data = res.result.list.map((item_1) => {
return Number(item_1.value.toFixed(2)) let item = res.result;
}) if(item.units === 'B' || item.units === 'Kb'){
item.newUnits = this.unitConversion(item.min,item.units)
newUnits = item.newUnits
item.list.map(val =>{
let number = val.value
if(item.units ==="Kb"){
number = val.value *1024
}
val.value = Number(this.dataConversion(number,item.newUnits))
data.push({
value: Number(val.value),
Date: moment(val.date * 1000).format('hh:mm')
})
})
console.log(item)
} else {
data = res.result.list.map((item_1) => {
return Number(item_1.value.toFixed(2))
})
}
return { return {
name, name,
xData, xData,
data, data,
units,
newUnits
} }
} }
}, },