config.ts
2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import { findDictItemByCode } from '/@/api/system/dict';
import { BasicColumn, FormSchema } from '/@/components/Table';
import { AlarmStatus } from '/@/enums/alarmEnum';
import { alarmLevel } from '/@/views/device/list/config/detail.config';
import { Tag } from 'ant-design-vue';
import { h } from 'vue';
// 表格配置
export const columns: BasicColumn[] = [
{
title: '告警状态',
dataIndex: 'status',
customRender({ record }: { record }) {
const flag = !!record.cleared;
return h(Tag, { color: flag ? 'green' : 'red' }, () => (flag ? '清除' : '激活'));
},
width: 90,
},
{
title: '告警设备',
dataIndex: 'deviceName',
customRender: ({ record }) => {
const { deviceAlias, deviceName } = record || {};
return deviceAlias || deviceName;
},
},
{
title: '告警场景',
dataIndex: 'type',
},
{
title: '告警级别',
dataIndex: 'severity',
format: (text) => alarmLevel(text),
},
{
title: '告警时间',
dataIndex: 'createdTime',
},
{
title: '告警详情',
dataIndex: 'details',
slots: { customRender: 'details' },
},
];
// 表格查询表单
export const searchFormSchema: FormSchema[] = [
{
field: 'status',
label: '告警/确认状态',
component: 'Cascader',
helpMessage: [
'激活未确认: 可以处理,清除',
'激活已确认: 只可清除,已经处理',
'清除未确认: 只可处理,已经清除',
'清除已确认: 不需要做处理和清除',
],
colProps: { span: 6 },
componentProps: {
popupClassName: 'alarm-stauts-cascader',
options: [
{
value: '0',
label: '清除',
children: [
{
value: AlarmStatus.CLEARED_UN_ACK,
label: '清除未确认',
},
{
value: AlarmStatus.CLEARED_ACK,
label: '清除已确认',
},
],
},
{
value: '1',
label: '激活',
children: [
{
value: AlarmStatus.ACTIVE_UN_ACK,
label: '激活未确认',
},
{
value: AlarmStatus.ACTIVE_ACK,
label: '激活已确认',
},
],
},
],
placeholder: '请选择告警/确认状态',
},
},
{
field: 'severity',
label: '告警级别',
component: 'ApiSelect',
colProps: { span: 6 },
componentProps: {
placeholder: '请选择告警级别',
api: findDictItemByCode,
params: {
dictCode: 'severity_type',
},
labelField: 'itemText',
valueField: 'itemValue',
},
},
];