Commit 2c2ef55a2929c43c769a0b32bb7cee5cb948efef

Authored by 温伟
Committed by xp.Huang
1 parent e6d19444

fix: 修复告警日志清除与处理逻辑

@@ -89,6 +89,8 @@ export interface AlarmLogItem { @@ -89,6 +89,8 @@ export interface AlarmLogItem {
89 propagateRelationTypes?: any; 89 propagateRelationTypes?: any;
90 organizationId: string; 90 organizationId: string;
91 organizationName: string; 91 organizationName: string;
  92 + cleared?: boolean;
  93 + acknowledged?: boolean;
92 } 94 }
93 95
94 export interface Configuration { 96 export interface Configuration {
@@ -133,7 +133,7 @@ export const alarmColumns: BasicColumn[] = [ @@ -133,7 +133,7 @@ export const alarmColumns: BasicColumn[] = [
133 dataIndex: 'status', 133 dataIndex: 'status',
134 customRender({ record }: { record }) { 134 customRender({ record }: { record }) {
135 const flag = !!record.cleared; 135 const flag = !!record.cleared;
136 - return h(Tag, { color: flag ? 'red' : 'green' }, () => (flag ? '激活' : '清除')); 136 + return h(Tag, { color: flag ? 'green' : 'red' }, () => (flag ? '清除' : '激活'));
137 }, 137 },
138 width: 90, 138 width: 90,
139 }, 139 },
@@ -253,3 +253,14 @@ export const alarmSchemasForm: FormSchema[] = [ @@ -253,3 +253,14 @@ export const alarmSchemasForm: FormSchema[] = [
253 component: 'InputTextArea', 253 component: 'InputTextArea',
254 }, 254 },
255 ]; 255 ];
  256 +
  257 +export function getAlarmStatus({
  258 + cleared,
  259 + acknowledged,
  260 +}: Record<'cleared' | 'acknowledged', boolean>) {
  261 + const status = cleared ? '清除' : '激活';
  262 +
  263 + const ackStatus = acknowledged ? '已确认' : '未确认';
  264 +
  265 + return `${status}${ackStatus}`;
  266 +}
@@ -9,24 +9,12 @@ @@ -9,24 +9,12 @@
9 '清除已确认: 不需要做处理和清除', 9 '清除已确认: 不需要做处理和清除',
10 ] --> 10 ] -->
11 <Authority value="api:yt:alarm:single:handle"> 11 <Authority value="api:yt:alarm:single:handle">
12 - <a-button  
13 - type="primary"  
14 - class="mr-4"  
15 - @click="handleAlarm"  
16 - v-if="alarmStatus !== AlarmStatus.ACTIVE_ACK && alarmStatus !== AlarmStatus.CLEARED_ACK"  
17 - > 12 + <a-button type="primary" class="mr-4" @click="handleAlarm" v-if="!status.acknowledged">
18 处理 13 处理
19 </a-button> 14 </a-button>
20 </Authority> 15 </Authority>
21 <Authority value="api:yt:alarm:single:clear"> 16 <Authority value="api:yt:alarm:single:clear">
22 - <a-button  
23 - danger  
24 - type="primary"  
25 - @click="clearAlarm"  
26 - v-if="alarmStatus === AlarmStatus.ACTIVE_ACK"  
27 - >  
28 - 清除  
29 - </a-button> 17 + <a-button danger type="primary" @click="clearAlarm" v-if="!status.cleared"> 清除 </a-button>
30 </Authority> 18 </Authority>
31 </div> 19 </div>
32 </BasicDrawer> 20 </BasicDrawer>
@@ -35,12 +23,12 @@ @@ -35,12 +23,12 @@
35 <script lang="ts"> 23 <script lang="ts">
36 import { defineComponent, ref, unref } from 'vue'; 24 import { defineComponent, ref, unref } from 'vue';
37 import { BasicForm, useForm } from '/@/components/Form'; 25 import { BasicForm, useForm } from '/@/components/Form';
38 - import { alarmSchemasForm } from '../config/detail.config'; 26 + import { alarmSchemasForm, getAlarmStatus } from '../config/detail.config';
39 import { clearOrAckAlarm } from '/@/api/device/deviceManager'; 27 import { clearOrAckAlarm } from '/@/api/device/deviceManager';
40 - import { alarmLevel, statusType } from '/@/views/device/list/config/detail.config'; 28 + import { alarmLevel } from '/@/views/device/list/config/detail.config';
41 import { BasicDrawer, useDrawerInner } from '/@/components/Drawer'; 29 import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
42 - import { AlarmStatus } from '/@/enums/alarmEnum';  
43 import { Authority } from '/@/components/Authority'; 30 import { Authority } from '/@/components/Authority';
  31 + import { reactive } from 'vue';
44 export default defineComponent({ 32 export default defineComponent({
45 name: 'AlarmDetailDrawer', 33 name: 'AlarmDetailDrawer',
46 components: { 34 components: {
@@ -58,18 +46,25 @@ @@ -58,18 +46,25 @@
58 }, 46 },
59 }); 47 });
60 const alarmId = ref(''); 48 const alarmId = ref('');
61 - const alarmStatus = ref(''); 49 +
  50 + const status = reactive({
  51 + cleared: false,
  52 + acknowledged: false,
  53 + });
  54 +
62 const [registerDrawer, { closeDrawer }] = useDrawerInner(async (data) => { 55 const [registerDrawer, { closeDrawer }] = useDrawerInner(async (data) => {
63 await resetFields(); 56 await resetFields();
64 - const { deviceAlias, deviceName, severity, status, details, id } = data || {}; 57 + const { deviceAlias, deviceName, severity, details, id, cleared, acknowledged } =
  58 + data || {};
  59 + Object.assign(status, { cleared, acknowledged });
65 await setFieldsValue({ 60 await setFieldsValue({
66 ...data, 61 ...data,
67 deviceName: deviceAlias || deviceName, 62 deviceName: deviceAlias || deviceName,
68 severity: alarmLevel(severity), 63 severity: alarmLevel(severity),
69 - status: statusType(status), 64 + status: getAlarmStatus({ cleared, acknowledged }),
70 details: JSON.stringify(details), 65 details: JSON.stringify(details),
71 }); 66 });
72 - alarmStatus.value = status; 67 +
73 alarmId.value = id; 68 alarmId.value = id;
74 }); 69 });
75 // 处理报警 70 // 处理报警
@@ -85,12 +80,11 @@ @@ -85,12 +80,11 @@
85 closeDrawer(); 80 closeDrawer();
86 }; 81 };
87 return { 82 return {
  83 + status,
88 registerDrawer, 84 registerDrawer,
89 registerForm, 85 registerForm,
90 clearAlarm, 86 clearAlarm,
91 handleAlarm, 87 handleAlarm,
92 - alarmStatus,  
93 - AlarmStatus,  
94 }; 88 };
95 }, 89 },
96 }); 90 });
@@ -109,6 +109,7 @@ @@ -109,6 +109,7 @@
109 openDrawer(true, record); 109 openDrawer(true, record);
110 }; 110 };
111 const handleSuccess = () => { 111 const handleSuccess = () => {
  112 + clearSelectedRowKeys();
112 reload(); 113 reload();
113 }; 114 };
114 115
@@ -213,23 +214,14 @@ @@ -213,23 +214,14 @@
213 const rowSelection = getRowSelection(); 214 const rowSelection = getRowSelection();
214 const getRows: AlarmLogItem[] = getSelectRows(); 215 const getRows: AlarmLogItem[] = getSelectRows();
215 216
216 - return (  
217 - !rowSelection.selectedRowKeys?.length ||  
218 - !getRows.every((item) => item.status === AlarmStatus.ACTIVE_ACK)  
219 - ); 217 + return !rowSelection.selectedRowKeys?.length || !getRows.every((item) => !item.cleared);
220 }); 218 });
221 219
222 const getCanBatchAck = computed(() => { 220 const getCanBatchAck = computed(() => {
223 const rowSelection = getRowSelection(); 221 const rowSelection = getRowSelection();
224 const getRows: AlarmLogItem[] = getSelectRows(); 222 const getRows: AlarmLogItem[] = getSelectRows();
225 223
226 - return (  
227 - !rowSelection.selectedRowKeys?.length ||  
228 - !getRows.every(  
229 - (item) =>  
230 - item.status === AlarmStatus.ACTIVE_UN_ACK || item.status === AlarmStatus.CLEARED_UN_ACK  
231 - )  
232 - ); 224 + return !rowSelection.selectedRowKeys?.length || !getRows.every((item) => !item.acknowledged);
233 }); 225 });
234 226
235 const { createMessage } = useMessage(); 227 const { createMessage } = useMessage();
@@ -235,7 +235,7 @@ export const alarmColumns: BasicColumn[] = [ @@ -235,7 +235,7 @@ export const alarmColumns: BasicColumn[] = [
235 { 235 {
236 title: '状态', 236 title: '状态',
237 dataIndex: 'status', 237 dataIndex: 'status',
238 - format: (text) => statusType(text), 238 + // format: (text) => statusType(text),
239 width: 100, 239 width: 100,
240 }, 240 },
241 ]; 241 ];
@@ -383,17 +383,6 @@ export const alarmLevel = (type: string): string => { @@ -383,17 +383,6 @@ export const alarmLevel = (type: string): string => {
383 return '不确定'; 383 return '不确定';
384 } 384 }
385 }; 385 };
386 -export const statusType = (type: string): string => {  
387 - if (type === 'CLEARED_UNACK') {  
388 - return '清除未确认';  
389 - } else if (type === 'CLEARED_ACK') {  
390 - return '清除已确认';  
391 - } else if (type === 'ACTIVE_ACK') {  
392 - return '激活已确认';  
393 - } else {  
394 - return '激活未确认';  
395 - }  
396 -};  
397 386
398 export const customerForm: FormSchema[] = [ 387 export const customerForm: FormSchema[] = [
399 { 388 {