fix: 首页接口对接

develop
时启龙 2024-08-27 18:38:18 +08:00
parent 82fbd9bda3
commit ef261a32d1
2 changed files with 42 additions and 23 deletions

View File

@ -20,7 +20,7 @@
import { ref } from 'vue' import { ref } from 'vue'
import LineCharts from './echarts/LineCharts.vue' import LineCharts from './echarts/LineCharts.vue'
import ItemCard from './ItemCard.vue' import ItemCard from './ItemCard.vue'
import { getOneDayWarnCount, getSevenDayWarnTrend } from 'services/system/dashboard' import { getSevenDayWarnTrend } from 'services/system/dashboard'
import echarts from '@cmp/cmp-echarts/hooks/echarts' import echarts from '@cmp/cmp-echarts/hooks/echarts'
export const colorMap = ['rgba(255, 0, 0, 1)', 'rgba(245, 167, 45, 1)', 'rgba(18, 185, 242, 1)', 'rgba(24, 144, 255, 1)'] export const colorMap = ['rgba(255, 0, 0, 1)', 'rgba(245, 167, 45, 1)', 'rgba(18, 185, 242, 1)', 'rgba(24, 144, 255, 1)']
const chartSetting = { const chartSetting = {
@ -53,20 +53,11 @@ export default {
value: 0 value: 0
} }
]) ])
;(async function () {
const res = await getOneDayWarnCount()
if (!res.success) return
countData.value[0].value = res.data.critical
countData.value[1].value = res.data.major
countData.value[2].value = res.data.minor
countData.value[3].value = res.data.warning
})()
const lineData = ref({ const lineData = ref({
keys: [], keys: [],
values: [] values: []
}) })
;(async function () { ;(async function () {
// 86400
const res = await getSevenDayWarnTrend() const res = await getSevenDayWarnTrend()
if (!res.success) return if (!res.success) return
const names = Object.keys(res.data) const names = Object.keys(res.data)
@ -77,7 +68,12 @@ export default {
4: '提示告警' 4: '提示告警'
} }
if (!names.length) return if (!names.length) return
//
countData.value[0].value = res.data[1].reduce((total, { count }) => count + total, 0)
countData.value[1].value = res.data[2].reduce((total, { count }) => count + total, 0)
countData.value[2].value = res.data[3].reduce((total, { count }) => count + total, 0)
countData.value[3].value = res.data[4].reduce((total, { count }) => count + total, 0)
//
const result = { const result = {
keys: res.data[names[0]].map(({ date }) => date), keys: res.data[names[0]].map(({ date }) => date),
values: names.map(name => { values: names.map(name => {

View File

@ -1,14 +1,14 @@
<template> <template>
<ItemCard title="单日告警统计" v-bind="$attrs"> <ItemCard title="单日告警统计" v-bind="$attrs">
<LoopCharts class="full-height" id="alarm1" v-if="todayAlarmData" :data="todayAlarmData" width="100%" type="half" :setting="chartSetting"></LoopCharts> <LoopCharts class="full-height" id="alarm1" v-if="loaded" :data="todayAlarmData" width="100%" type="half" :setting="chartSetting"></LoopCharts>
</ItemCard> </ItemCard>
</template> </template>
<script> <script>
import ItemCard from './ItemCard.vue' import ItemCard from './ItemCard.vue'
import { getAlarmChart } from 'services/monitor/index.js'
import LoopCharts from './echarts/LoopCharts.vue' import LoopCharts from './echarts/LoopCharts.vue'
import { colorMap } from './AlarmHandling.vue' import { colorMap } from './AlarmHandling.vue'
import { getOneDayWarnCount } from 'services/system/dashboard'
const chartSetting = { const chartSetting = {
color: colorMap color: colorMap
} }
@ -16,23 +16,46 @@ export default {
components: { ItemCard, LoopCharts }, components: { ItemCard, LoopCharts },
data() { data() {
return { return {
todayAlarmData: null, loaded: false,
todayAlarmData: [
{
name: '紧急告警',
value: 0
},
{
name: '重要告警',
value: 0
},
{
name: '次要告警',
value: 0
},
{
name: '提示告警',
value: 0
}
],
chartSetting chartSetting
} }
}, },
created() { created() {
this, this.getTodayAlarm() this.getTodayAlarm()
}, },
methods: { methods: {
getTodayAlarm() { getTodayAlarm() {
getAlarmChart({ this.loaded = false
action: 'pieChart', getOneDayWarnCount()
time: 'TODAY' .then(res => {
}).then(data => { if (res.success) {
if (data.success) { this.todayAlarmData[0].value = res.data.critical
this.todayAlarmData = data.data this.todayAlarmData[1].value = res.data.major
} this.todayAlarmData[2].value = res.data.minor
}) this.todayAlarmData[3].value = res.data.warning
}
})
.finally(() => {
this.loaded = true
})
} }
} }
} }