Showing
1 changed file
with
78 additions
and
25 deletions
| 1 | -import { alarmLevel, statusType } from '/@/views/device/list/config/detail.config'; | 1 | +import { alarmLevel } from '/@/views/device/list/config/detail.config'; |
| 2 | import { FormSchema } from '/@/components/Form'; | 2 | import { FormSchema } from '/@/components/Form'; |
| 3 | import { BasicColumn } from '/@/components/Table'; | 3 | import { BasicColumn } from '/@/components/Table'; |
| 4 | import moment from 'moment'; | 4 | import moment from 'moment'; |
| 5 | import { findDictItemByCode } from '/@/api/system/dict'; | 5 | import { findDictItemByCode } from '/@/api/system/dict'; |
| 6 | -import { AlarmStatus, AlarmStatusMean } from '/@/enums/alarmEnum'; | 6 | +import { AlarmStatus } from '/@/enums/alarmEnum'; |
| 7 | +import { Tag } from 'ant-design-vue'; | ||
| 8 | +import { h } from 'vue'; | ||
| 7 | 9 | ||
| 8 | export const alarmSearchSchemas: FormSchema[] = [ | 10 | export const alarmSearchSchemas: FormSchema[] = [ |
| 9 | { | 11 | { |
| 10 | field: 'status', | 12 | field: 'status', |
| 11 | label: '告警状态', | 13 | label: '告警状态', |
| 12 | - component: 'Select', | 14 | + component: 'Cascader', |
| 13 | colProps: { span: 6 }, | 15 | colProps: { span: 6 }, |
| 14 | componentProps: { | 16 | componentProps: { |
| 15 | options: [ | 17 | options: [ |
| 16 | { | 18 | { |
| 17 | - label: AlarmStatusMean[AlarmStatus.CLEARED_UN_ACK], | ||
| 18 | - value: AlarmStatus.CLEARED_UN_ACK, | 19 | + value: '0', |
| 20 | + label: '清除', | ||
| 21 | + children: [ | ||
| 22 | + { | ||
| 23 | + value: AlarmStatus.CLEARED_UN_ACK, | ||
| 24 | + label: '清除未确认', | ||
| 25 | + }, | ||
| 26 | + { | ||
| 27 | + value: AlarmStatus.CLEARED_ACK, | ||
| 28 | + label: '清除已确认', | ||
| 29 | + }, | ||
| 30 | + ], | ||
| 19 | }, | 31 | }, |
| 20 | { | 32 | { |
| 21 | - label: AlarmStatusMean[AlarmStatus.ACTIVE_UN_ACK], | ||
| 22 | - value: AlarmStatus.ACTIVE_UN_ACK, | ||
| 23 | - }, | ||
| 24 | - { | ||
| 25 | - label: AlarmStatusMean[AlarmStatus.CLEARED_ACK], | ||
| 26 | - value: AlarmStatus.CLEARED_ACK, | ||
| 27 | - }, | ||
| 28 | - { | ||
| 29 | - label: AlarmStatusMean[AlarmStatus.ACTIVE_ACK], | ||
| 30 | - value: AlarmStatus.ACTIVE_ACK, | 33 | + value: '1', |
| 34 | + label: '激活', | ||
| 35 | + children: [ | ||
| 36 | + { | ||
| 37 | + value: AlarmStatus.ACTIVE_UN_ACK, | ||
| 38 | + label: '激活未确认', | ||
| 39 | + }, | ||
| 40 | + { | ||
| 41 | + value: AlarmStatus.ACTIVE_ACK, | ||
| 42 | + label: '激活已确认', | ||
| 43 | + }, | ||
| 44 | + ], | ||
| 31 | }, | 45 | }, |
| 32 | ], | 46 | ], |
| 47 | + // options: [ | ||
| 48 | + // { | ||
| 49 | + // label: AlarmStatusMean[AlarmStatus.CLEARED_UN_ACK], | ||
| 50 | + // value: AlarmStatus.CLEARED_UN_ACK, | ||
| 51 | + // }, | ||
| 52 | + // { | ||
| 53 | + // label: AlarmStatusMean[AlarmStatus.ACTIVE_UN_ACK], | ||
| 54 | + // value: AlarmStatus.ACTIVE_UN_ACK, | ||
| 55 | + // }, | ||
| 56 | + // { | ||
| 57 | + // label: AlarmStatusMean[AlarmStatus.CLEARED_ACK], | ||
| 58 | + // value: AlarmStatus.CLEARED_ACK, | ||
| 59 | + // }, | ||
| 60 | + // { | ||
| 61 | + // label: AlarmStatusMean[AlarmStatus.ACTIVE_ACK], | ||
| 62 | + // value: AlarmStatus.ACTIVE_ACK, | ||
| 63 | + // }, | ||
| 64 | + // ], | ||
| 33 | }, | 65 | }, |
| 34 | }, | 66 | }, |
| 35 | { | 67 | { |
| @@ -103,16 +135,29 @@ export const alarmSearchSchemas: FormSchema[] = [ | @@ -103,16 +135,29 @@ export const alarmSearchSchemas: FormSchema[] = [ | ||
| 103 | colProps: { span: 6 }, | 135 | colProps: { span: 6 }, |
| 104 | }, | 136 | }, |
| 105 | ]; | 137 | ]; |
| 138 | + | ||
| 139 | +const handleAlarmStatus = (status: string) => { | ||
| 140 | + return status.split('_').includes('ACTIVE'); | ||
| 141 | +}; | ||
| 142 | + | ||
| 143 | +const handleAlarmAckStatus = (status: string) => { | ||
| 144 | + return status.split('_').includes('ACK'); | ||
| 145 | +}; | ||
| 146 | + | ||
| 106 | export const alarmColumns: BasicColumn[] = [ | 147 | export const alarmColumns: BasicColumn[] = [ |
| 107 | { | 148 | { |
| 108 | - title: '告警时间', | ||
| 109 | - dataIndex: 'createdTime', | ||
| 110 | - width: 120, | 149 | + title: '告警状态', |
| 150 | + dataIndex: 'status', | ||
| 151 | + customRender({ record }: { record }) { | ||
| 152 | + const flag = handleAlarmStatus(record.status); | ||
| 153 | + return h(Tag, { color: flag ? 'green' : 'red' }, () => (flag ? '激活' : '清除')); | ||
| 154 | + }, | ||
| 155 | + width: 90, | ||
| 111 | }, | 156 | }, |
| 112 | { | 157 | { |
| 113 | title: '告警设备', | 158 | title: '告警设备', |
| 114 | dataIndex: 'deviceName', | 159 | dataIndex: 'deviceName', |
| 115 | - width: 100, | 160 | + width: 180, |
| 116 | customRender: ({ record }) => { | 161 | customRender: ({ record }) => { |
| 117 | const { deviceAlias, deviceName } = record || {}; | 162 | const { deviceAlias, deviceName } = record || {}; |
| 118 | return deviceAlias || deviceName; | 163 | return deviceAlias || deviceName; |
| @@ -121,12 +166,12 @@ export const alarmColumns: BasicColumn[] = [ | @@ -121,12 +166,12 @@ export const alarmColumns: BasicColumn[] = [ | ||
| 121 | { | 166 | { |
| 122 | title: '告警场景', | 167 | title: '告警场景', |
| 123 | dataIndex: 'type', | 168 | dataIndex: 'type', |
| 124 | - width: 160, | 169 | + width: 180, |
| 125 | }, | 170 | }, |
| 126 | { | 171 | { |
| 127 | title: '告警级别', | 172 | title: '告警级别', |
| 128 | dataIndex: 'severity', | 173 | dataIndex: 'severity', |
| 129 | - width: 160, | 174 | + width: 90, |
| 130 | format: (text) => alarmLevel(text), | 175 | format: (text) => alarmLevel(text), |
| 131 | }, | 176 | }, |
| 132 | { | 177 | { |
| @@ -136,10 +181,18 @@ export const alarmColumns: BasicColumn[] = [ | @@ -136,10 +181,18 @@ export const alarmColumns: BasicColumn[] = [ | ||
| 136 | width: 160, | 181 | width: 160, |
| 137 | }, | 182 | }, |
| 138 | { | 183 | { |
| 139 | - title: '状态', | ||
| 140 | - dataIndex: 'status', | ||
| 141 | - format: (text) => statusType(text), | ||
| 142 | - width: 160, | 184 | + title: '确认状态', |
| 185 | + dataIndex: 'ackStatus', | ||
| 186 | + customRender({ record }: { record }) { | ||
| 187 | + const flag = handleAlarmAckStatus(record.status); | ||
| 188 | + return h(Tag, { color: flag ? 'green' : 'red' }, () => (flag ? '已确认' : '未确认')); | ||
| 189 | + }, | ||
| 190 | + width: 110, | ||
| 191 | + }, | ||
| 192 | + { | ||
| 193 | + title: '告警时间', | ||
| 194 | + dataIndex: 'createdTime', | ||
| 195 | + width: 130, | ||
| 143 | }, | 196 | }, |
| 144 | ]; | 197 | ]; |
| 145 | 198 |