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 | { | ... | ... |