Commit 2c2ef55a2929c43c769a0b32bb7cee5cb948efef
Committed by
xp.Huang
1 parent
e6d19444
fix: 修复告警日志清除与处理逻辑
Showing
5 changed files
with
35 additions
and
47 deletions
@@ -89,6 +89,8 @@ export interface AlarmLogItem { | @@ -89,6 +89,8 @@ export interface AlarmLogItem { | ||
89 | propagateRelationTypes?: any; | 89 | propagateRelationTypes?: any; |
90 | organizationId: string; | 90 | organizationId: string; |
91 | organizationName: string; | 91 | organizationName: string; |
92 | + cleared?: boolean; | ||
93 | + acknowledged?: boolean; | ||
92 | } | 94 | } |
93 | 95 | ||
94 | export interface Configuration { | 96 | export interface Configuration { |
@@ -133,7 +133,7 @@ export const alarmColumns: BasicColumn[] = [ | @@ -133,7 +133,7 @@ export const alarmColumns: BasicColumn[] = [ | ||
133 | dataIndex: 'status', | 133 | dataIndex: 'status', |
134 | customRender({ record }: { record }) { | 134 | customRender({ record }: { record }) { |
135 | const flag = !!record.cleared; | 135 | const flag = !!record.cleared; |
136 | - return h(Tag, { color: flag ? 'red' : 'green' }, () => (flag ? '激活' : '清除')); | 136 | + return h(Tag, { color: flag ? 'green' : 'red' }, () => (flag ? '清除' : '激活')); |
137 | }, | 137 | }, |
138 | width: 90, | 138 | width: 90, |
139 | }, | 139 | }, |
@@ -253,3 +253,14 @@ export const alarmSchemasForm: FormSchema[] = [ | @@ -253,3 +253,14 @@ export const alarmSchemasForm: FormSchema[] = [ | ||
253 | component: 'InputTextArea', | 253 | component: 'InputTextArea', |
254 | }, | 254 | }, |
255 | ]; | 255 | ]; |
256 | + | ||
257 | +export function getAlarmStatus({ | ||
258 | + cleared, | ||
259 | + acknowledged, | ||
260 | +}: Record<'cleared' | 'acknowledged', boolean>) { | ||
261 | + const status = cleared ? '清除' : '激活'; | ||
262 | + | ||
263 | + const ackStatus = acknowledged ? '已确认' : '未确认'; | ||
264 | + | ||
265 | + return `${status}${ackStatus}`; | ||
266 | +} |
@@ -9,24 +9,12 @@ | @@ -9,24 +9,12 @@ | ||
9 | '清除已确认: 不需要做处理和清除', | 9 | '清除已确认: 不需要做处理和清除', |
10 | ] --> | 10 | ] --> |
11 | <Authority value="api:yt:alarm:single:handle"> | 11 | <Authority value="api:yt:alarm:single:handle"> |
12 | - <a-button | ||
13 | - type="primary" | ||
14 | - class="mr-4" | ||
15 | - @click="handleAlarm" | ||
16 | - v-if="alarmStatus !== AlarmStatus.ACTIVE_ACK && alarmStatus !== AlarmStatus.CLEARED_ACK" | ||
17 | - > | 12 | + <a-button type="primary" class="mr-4" @click="handleAlarm" v-if="!status.acknowledged"> |
18 | 处理 | 13 | 处理 |
19 | </a-button> | 14 | </a-button> |
20 | </Authority> | 15 | </Authority> |
21 | <Authority value="api:yt:alarm:single:clear"> | 16 | <Authority value="api:yt:alarm:single:clear"> |
22 | - <a-button | ||
23 | - danger | ||
24 | - type="primary" | ||
25 | - @click="clearAlarm" | ||
26 | - v-if="alarmStatus === AlarmStatus.ACTIVE_ACK" | ||
27 | - > | ||
28 | - 清除 | ||
29 | - </a-button> | 17 | + <a-button danger type="primary" @click="clearAlarm" v-if="!status.cleared"> 清除 </a-button> |
30 | </Authority> | 18 | </Authority> |
31 | </div> | 19 | </div> |
32 | </BasicDrawer> | 20 | </BasicDrawer> |
@@ -35,12 +23,12 @@ | @@ -35,12 +23,12 @@ | ||
35 | <script lang="ts"> | 23 | <script lang="ts"> |
36 | import { defineComponent, ref, unref } from 'vue'; | 24 | import { defineComponent, ref, unref } from 'vue'; |
37 | import { BasicForm, useForm } from '/@/components/Form'; | 25 | import { BasicForm, useForm } from '/@/components/Form'; |
38 | - import { alarmSchemasForm } from '../config/detail.config'; | 26 | + import { alarmSchemasForm, getAlarmStatus } from '../config/detail.config'; |
39 | import { clearOrAckAlarm } from '/@/api/device/deviceManager'; | 27 | import { clearOrAckAlarm } from '/@/api/device/deviceManager'; |
40 | - import { alarmLevel, statusType } from '/@/views/device/list/config/detail.config'; | 28 | + import { alarmLevel } from '/@/views/device/list/config/detail.config'; |
41 | import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; | 29 | import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; |
42 | - import { AlarmStatus } from '/@/enums/alarmEnum'; | ||
43 | import { Authority } from '/@/components/Authority'; | 30 | import { Authority } from '/@/components/Authority'; |
31 | + import { reactive } from 'vue'; | ||
44 | export default defineComponent({ | 32 | export default defineComponent({ |
45 | name: 'AlarmDetailDrawer', | 33 | name: 'AlarmDetailDrawer', |
46 | components: { | 34 | components: { |
@@ -58,18 +46,25 @@ | @@ -58,18 +46,25 @@ | ||
58 | }, | 46 | }, |
59 | }); | 47 | }); |
60 | const alarmId = ref(''); | 48 | const alarmId = ref(''); |
61 | - const alarmStatus = ref(''); | 49 | + |
50 | + const status = reactive({ | ||
51 | + cleared: false, | ||
52 | + acknowledged: false, | ||
53 | + }); | ||
54 | + | ||
62 | const [registerDrawer, { closeDrawer }] = useDrawerInner(async (data) => { | 55 | const [registerDrawer, { closeDrawer }] = useDrawerInner(async (data) => { |
63 | await resetFields(); | 56 | await resetFields(); |
64 | - const { deviceAlias, deviceName, severity, status, details, id } = data || {}; | 57 | + const { deviceAlias, deviceName, severity, details, id, cleared, acknowledged } = |
58 | + data || {}; | ||
59 | + Object.assign(status, { cleared, acknowledged }); | ||
65 | await setFieldsValue({ | 60 | await setFieldsValue({ |
66 | ...data, | 61 | ...data, |
67 | deviceName: deviceAlias || deviceName, | 62 | deviceName: deviceAlias || deviceName, |
68 | severity: alarmLevel(severity), | 63 | severity: alarmLevel(severity), |
69 | - status: statusType(status), | 64 | + status: getAlarmStatus({ cleared, acknowledged }), |
70 | details: JSON.stringify(details), | 65 | details: JSON.stringify(details), |
71 | }); | 66 | }); |
72 | - alarmStatus.value = status; | 67 | + |
73 | alarmId.value = id; | 68 | alarmId.value = id; |
74 | }); | 69 | }); |
75 | // 处理报警 | 70 | // 处理报警 |
@@ -85,12 +80,11 @@ | @@ -85,12 +80,11 @@ | ||
85 | closeDrawer(); | 80 | closeDrawer(); |
86 | }; | 81 | }; |
87 | return { | 82 | return { |
83 | + status, | ||
88 | registerDrawer, | 84 | registerDrawer, |
89 | registerForm, | 85 | registerForm, |
90 | clearAlarm, | 86 | clearAlarm, |
91 | handleAlarm, | 87 | handleAlarm, |
92 | - alarmStatus, | ||
93 | - AlarmStatus, | ||
94 | }; | 88 | }; |
95 | }, | 89 | }, |
96 | }); | 90 | }); |
@@ -109,6 +109,7 @@ | @@ -109,6 +109,7 @@ | ||
109 | openDrawer(true, record); | 109 | openDrawer(true, record); |
110 | }; | 110 | }; |
111 | const handleSuccess = () => { | 111 | const handleSuccess = () => { |
112 | + clearSelectedRowKeys(); | ||
112 | reload(); | 113 | reload(); |
113 | }; | 114 | }; |
114 | 115 | ||
@@ -213,23 +214,14 @@ | @@ -213,23 +214,14 @@ | ||
213 | const rowSelection = getRowSelection(); | 214 | const rowSelection = getRowSelection(); |
214 | const getRows: AlarmLogItem[] = getSelectRows(); | 215 | const getRows: AlarmLogItem[] = getSelectRows(); |
215 | 216 | ||
216 | - return ( | ||
217 | - !rowSelection.selectedRowKeys?.length || | ||
218 | - !getRows.every((item) => item.status === AlarmStatus.ACTIVE_ACK) | ||
219 | - ); | 217 | + return !rowSelection.selectedRowKeys?.length || !getRows.every((item) => !item.cleared); |
220 | }); | 218 | }); |
221 | 219 | ||
222 | const getCanBatchAck = computed(() => { | 220 | const getCanBatchAck = computed(() => { |
223 | const rowSelection = getRowSelection(); | 221 | const rowSelection = getRowSelection(); |
224 | const getRows: AlarmLogItem[] = getSelectRows(); | 222 | const getRows: AlarmLogItem[] = getSelectRows(); |
225 | 223 | ||
226 | - return ( | ||
227 | - !rowSelection.selectedRowKeys?.length || | ||
228 | - !getRows.every( | ||
229 | - (item) => | ||
230 | - item.status === AlarmStatus.ACTIVE_UN_ACK || item.status === AlarmStatus.CLEARED_UN_ACK | ||
231 | - ) | ||
232 | - ); | 224 | + return !rowSelection.selectedRowKeys?.length || !getRows.every((item) => !item.acknowledged); |
233 | }); | 225 | }); |
234 | 226 | ||
235 | const { createMessage } = useMessage(); | 227 | const { createMessage } = useMessage(); |
@@ -235,7 +235,7 @@ export const alarmColumns: BasicColumn[] = [ | @@ -235,7 +235,7 @@ export const alarmColumns: BasicColumn[] = [ | ||
235 | { | 235 | { |
236 | title: '状态', | 236 | title: '状态', |
237 | dataIndex: 'status', | 237 | dataIndex: 'status', |
238 | - format: (text) => statusType(text), | 238 | + // format: (text) => statusType(text), |
239 | width: 100, | 239 | width: 100, |
240 | }, | 240 | }, |
241 | ]; | 241 | ]; |
@@ -383,17 +383,6 @@ export const alarmLevel = (type: string): string => { | @@ -383,17 +383,6 @@ export const alarmLevel = (type: string): string => { | ||
383 | return '不确定'; | 383 | return '不确定'; |
384 | } | 384 | } |
385 | }; | 385 | }; |
386 | -export const statusType = (type: string): string => { | ||
387 | - if (type === 'CLEARED_UNACK') { | ||
388 | - return '清除未确认'; | ||
389 | - } else if (type === 'CLEARED_ACK') { | ||
390 | - return '清除已确认'; | ||
391 | - } else if (type === 'ACTIVE_ACK') { | ||
392 | - return '激活已确认'; | ||
393 | - } else { | ||
394 | - return '激活未确认'; | ||
395 | - } | ||
396 | -}; | ||
397 | 386 | ||
398 | export const customerForm: FormSchema[] = [ | 387 | export const customerForm: FormSchema[] = [ |
399 | { | 388 | { |