Commit 2c2ef55a2929c43c769a0b32bb7cee5cb948efef
Committed by
xp.Huang
1 parent
e6d19444
fix: 修复告警日志清除与处理逻辑
Showing
5 changed files
with
35 additions
and
47 deletions
... | ... | @@ -133,7 +133,7 @@ export const alarmColumns: BasicColumn[] = [ |
133 | 133 | dataIndex: 'status', |
134 | 134 | customRender({ record }: { record }) { |
135 | 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 | 138 | width: 90, |
139 | 139 | }, |
... | ... | @@ -253,3 +253,14 @@ export const alarmSchemasForm: FormSchema[] = [ |
253 | 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 | 9 | '清除已确认: 不需要做处理和清除', |
10 | 10 | ] --> |
11 | 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 | 14 | </a-button> |
20 | 15 | </Authority> |
21 | 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 | 18 | </Authority> |
31 | 19 | </div> |
32 | 20 | </BasicDrawer> |
... | ... | @@ -35,12 +23,12 @@ |
35 | 23 | <script lang="ts"> |
36 | 24 | import { defineComponent, ref, unref } from 'vue'; |
37 | 25 | import { BasicForm, useForm } from '/@/components/Form'; |
38 | - import { alarmSchemasForm } from '../config/detail.config'; | |
26 | + import { alarmSchemasForm, getAlarmStatus } from '../config/detail.config'; | |
39 | 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 | 29 | import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; |
42 | - import { AlarmStatus } from '/@/enums/alarmEnum'; | |
43 | 30 | import { Authority } from '/@/components/Authority'; |
31 | + import { reactive } from 'vue'; | |
44 | 32 | export default defineComponent({ |
45 | 33 | name: 'AlarmDetailDrawer', |
46 | 34 | components: { |
... | ... | @@ -58,18 +46,25 @@ |
58 | 46 | }, |
59 | 47 | }); |
60 | 48 | const alarmId = ref(''); |
61 | - const alarmStatus = ref(''); | |
49 | + | |
50 | + const status = reactive({ | |
51 | + cleared: false, | |
52 | + acknowledged: false, | |
53 | + }); | |
54 | + | |
62 | 55 | const [registerDrawer, { closeDrawer }] = useDrawerInner(async (data) => { |
63 | 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 | 60 | await setFieldsValue({ |
66 | 61 | ...data, |
67 | 62 | deviceName: deviceAlias || deviceName, |
68 | 63 | severity: alarmLevel(severity), |
69 | - status: statusType(status), | |
64 | + status: getAlarmStatus({ cleared, acknowledged }), | |
70 | 65 | details: JSON.stringify(details), |
71 | 66 | }); |
72 | - alarmStatus.value = status; | |
67 | + | |
73 | 68 | alarmId.value = id; |
74 | 69 | }); |
75 | 70 | // 处理报警 |
... | ... | @@ -85,12 +80,11 @@ |
85 | 80 | closeDrawer(); |
86 | 81 | }; |
87 | 82 | return { |
83 | + status, | |
88 | 84 | registerDrawer, |
89 | 85 | registerForm, |
90 | 86 | clearAlarm, |
91 | 87 | handleAlarm, |
92 | - alarmStatus, | |
93 | - AlarmStatus, | |
94 | 88 | }; |
95 | 89 | }, |
96 | 90 | }); | ... | ... |
... | ... | @@ -109,6 +109,7 @@ |
109 | 109 | openDrawer(true, record); |
110 | 110 | }; |
111 | 111 | const handleSuccess = () => { |
112 | + clearSelectedRowKeys(); | |
112 | 113 | reload(); |
113 | 114 | }; |
114 | 115 | |
... | ... | @@ -213,23 +214,14 @@ |
213 | 214 | const rowSelection = getRowSelection(); |
214 | 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 | 220 | const getCanBatchAck = computed(() => { |
223 | 221 | const rowSelection = getRowSelection(); |
224 | 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 | 227 | const { createMessage } = useMessage(); | ... | ... |
... | ... | @@ -235,7 +235,7 @@ export const alarmColumns: BasicColumn[] = [ |
235 | 235 | { |
236 | 236 | title: '状态', |
237 | 237 | dataIndex: 'status', |
238 | - format: (text) => statusType(text), | |
238 | + // format: (text) => statusType(text), | |
239 | 239 | width: 100, |
240 | 240 | }, |
241 | 241 | ]; |
... | ... | @@ -383,17 +383,6 @@ export const alarmLevel = (type: string): string => { |
383 | 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 | 387 | export const customerForm: FormSchema[] = [ |
399 | 388 | { | ... | ... |