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