Commit 1d86de52b00f2259bcd9a6862fff86ab5ee5903b

Authored by fengtao
1 parent d992d42a

perf: 告警列表没有显示告警级别

... ... @@ -40,5 +40,7 @@ export interface AlarmListItemType {
40 40 organizationId: string
41 41 organizationName: string
42 42 deviceAlias: string
  43 + acknowledged: boolean
  44 + cleared: boolean
43 45 }
44 46
... ...
... ... @@ -44,13 +44,13 @@ const initFetchAlarmList = async () => {
44 44 const { startTime, endTime, deviceId, interval, autoPlay, polling }
45 45 = alarmListOption
46 46
47   - const resp = (await fetchAlarmList({
  47 + const resp = await fetchAlarmList({
48 48 startTime,
49 49 endTime,
50 50 deviceIds: deviceId,
51 51 page: 1,
52 52 pageSize: 30,
53   - }))
  53 + })
54 54
55 55 initOptions.alarmList = resp.items || []
56 56 initOptions.interval = interval * 1000 || 0
... ... @@ -81,16 +81,55 @@ onMounted(async () => {
81 81 })
82 82 }
83 83 })
  84 +
  85 +/**
  86 + * 之前返回的有status,是通过status判断告警级别的
  87 + * 现在没有返回此字段,是通过acknowledged和cleared来判断告警级别
  88 + */
  89 +const formatAlarmStatusName = (acknowledged: boolean, cleared: boolean) => {
  90 + const value = {
  91 + text: '',
  92 + color: '',
  93 + }
  94 + if (!acknowledged && !cleared) {
  95 + value.text = AlarmStatusNameEnum.ACTIVE_UNACK
  96 + value.color = AlarmStatusColorEnum.ACTIVE_UNACK
  97 + }
  98 + else if (!acknowledged && cleared) {
  99 + value.text = AlarmStatusNameEnum.CLEARED_UNACK
  100 + value.color = AlarmStatusColorEnum.CLEARED_UNACK
  101 + }
  102 + else if (acknowledged && cleared) {
  103 + value.text = AlarmStatusNameEnum.CLEARED_ACK
  104 + value.color = AlarmStatusColorEnum.CLEARED_ACK
  105 + }
  106 + else {
  107 + value.text = AlarmStatusNameEnum.ACTIVE_ACK
  108 + value.color = AlarmStatusColorEnum.ACTIVE_ACK
  109 + }
  110 + return value
  111 +}
  112 +//
84 113 </script>
85 114
86 115 <template>
87   - <div class="seamless-scroll w-full h-full flex justify-center items-center overflow-y-scroll">
  116 + <div
  117 + class="seamless-scroll w-full h-full flex justify-center items-center overflow-y-scroll"
  118 + >
88 119 <ScrollList
89 120 v-if="initOptions.alarmList.length"
90   - v-model="initOptions.scroll" :single-wait-time="initOptions.interval" :single-height="58" :list="initOptions.alarmList"
91   - :delay="10" hover
  121 + v-model="initOptions.scroll"
  122 + :single-wait-time="initOptions.interval"
  123 + :single-height="58"
  124 + :list="initOptions.alarmList"
  125 + :delay="10"
  126 + hover
92 127 >
93   - <div v-for="(item, index) in initOptions.alarmList" :key="index" class="flex flex-col items-start p-2 border-gray-600 border-t border-solid border-b-transparent border-l-transparent border-r-transparent">
  128 + <div
  129 + v-for="(item, index) in initOptions.alarmList"
  130 + :key="index"
  131 + class="flex flex-col items-start p-2 border-gray-600 border-t border-solid border-b-transparent border-l-transparent border-r-transparent"
  132 + >
94 133 <div class="text-xs mb-2">
95 134 <span>设备:</span>
96 135 <span class="ml-1">{{ item.deviceAlias || item.deviceName }}</span>
... ... @@ -98,8 +137,13 @@ onMounted(async () => {
98 137 <div class="flex items-center justify-between -mt-2 text-xs">
99 138 <span>时间:</span>
100 139 <span class="ml-1">{{ item.startTs }}</span>
101   - <Tag class="ml-2" :color="AlarmStatusColorEnum[item.status]">
102   - {{ AlarmStatusNameEnum[item.status] }}
  140 + <Tag
  141 + class="ml-2"
  142 + :color="
  143 + formatAlarmStatusName(item.acknowledged, item.cleared)?.color
  144 + "
  145 + >
  146 + {{ formatAlarmStatusName(item.acknowledged, item.cleared)?.text }}
103 147 </Tag>
104 148 </div>
105 149 </div>
... ... @@ -110,10 +154,8 @@ onMounted(async () => {
110 154
111 155 <style scoped lang="less">
112 156 .seamless-scroll {
113   -
114 157 ::-webkit-scrollbar {
115 158 display: none;
116   -
117 159 }
118 160 }
119 161 </style>
... ...