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 | 2 | import { FormSchema } from '/@/components/Form'; |
3 | 3 | import { BasicColumn } from '/@/components/Table'; |
4 | 4 | import moment from 'moment'; |
5 | 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 | 10 | export const alarmSearchSchemas: FormSchema[] = [ |
9 | 11 | { |
10 | 12 | field: 'status', |
11 | 13 | label: '告警状态', |
12 | - component: 'Select', | |
14 | + component: 'Cascader', | |
13 | 15 | colProps: { span: 6 }, |
14 | 16 | componentProps: { |
15 | 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 | 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 | 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 | 158 | title: '告警设备', |
114 | 159 | dataIndex: 'deviceName', |
115 | - width: 100, | |
160 | + width: 180, | |
116 | 161 | customRender: ({ record }) => { |
117 | 162 | const { deviceAlias, deviceName } = record || {}; |
118 | 163 | return deviceAlias || deviceName; |
... | ... | @@ -121,12 +166,12 @@ export const alarmColumns: BasicColumn[] = [ |
121 | 166 | { |
122 | 167 | title: '告警场景', |
123 | 168 | dataIndex: 'type', |
124 | - width: 160, | |
169 | + width: 180, | |
125 | 170 | }, |
126 | 171 | { |
127 | 172 | title: '告警级别', |
128 | 173 | dataIndex: 'severity', |
129 | - width: 160, | |
174 | + width: 90, | |
130 | 175 | format: (text) => alarmLevel(text), |
131 | 176 | }, |
132 | 177 | { |
... | ... | @@ -136,10 +181,18 @@ export const alarmColumns: BasicColumn[] = [ |
136 | 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 | ... | ... |