Commit 368a971fc2b2532e5477dd8b01e014998eedfd93

Authored by fengwotao
1 parent bbd84d5c

perf: 优化告警记录表格列表顺序展示和表格查询

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