删除告警功能

This commit is contained in:
龚皓 2024-11-26 16:23:18 +08:00
parent 220bf593aa
commit 9081420148
1 changed files with 50 additions and 6 deletions

View File

@ -48,17 +48,18 @@
<el-date-picker v-model="filterParams.timeBefore" type="datetime" placeholder="请选择结束时间"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4" class="filter-buttons" :offset="15">
<el-col :span="8" class="filter-buttons" :offset="0">
<el-button type="primary" @click="handleFilter">查询</el-button>
<el-button @click="handleReset">重置</el-button>
<el-button :disabled="isExporting" @click="exportData">
{{ isExporting ? '正在导出,请勿重复点击' : '导出' }}
</el-button>
</el-col>
<el-col :span="1" :offset="0">
<el-button type="primary" :disabled="!selectedAlerts.length" @click="batchMarkAsProcessed">
批量标记为已处理
</el-button>
<!-- <el-button type="danger" :disabled="!selectedAlerts.length" @click="handleDelete">删除选中</el-button> -->
</el-col>
<el-col :span="15" :offset="0">
</el-col>
</el-row>
@ -149,7 +150,7 @@
</div>
</div> -->
<!-- <div class="event-media" :class="{ 'center-media': mediums.length === 1 }"> -->
<div class="event-media" >
<div class="event-media">
<!-- 告警关联视频 -->
<!-- <div v-if="hasVideo" class="media-container video-item">
<p>告警关联视频</p>
@ -200,9 +201,9 @@ import { ref, reactive, onMounted, computed } from 'vue';
// import Statistics from '@/components/Statistics.vue';
// import AlertChart from '@/components/AlertChart.vue';
import { BoxApi } from '@/utils/boxApi.ts'; // BoxApi
import { saveAs } from 'file-saver';
import Papa from 'papaparse';
import { ElMessageBox, ElMessage } from 'element-plus';
// BoxApi
const boxApi = new BoxApi();
@ -244,12 +245,55 @@ const batchMarkAsProcessed = async () => {
await boxApi.setEventStatus(eventId, 'closed', null, token.value);
}
await fetchEvents();
selectedAlerts.value = [];
selectedAlerts.value = [];
} catch (error) {
console.error("Error in batch processing:", error);
}
};
const handleDelete = () => {
//
ElMessageBox.confirm(
`确认删除选中的 ${selectedAlerts.value.length} 条告警吗?`,
'删除确认',
{
confirmButtonText: '删除',
cancelButtonText: '取消',
type: 'warning'
}
)
.then(async () => {
try {
// API
const results = await boxApi.delEvents(token.value, selectedAlerts.value);
//
const failedDeletions = results.filter(item => !item.success);
if (failedDeletions.length === 0) {
ElMessage.success('删除成功');
} else {
ElMessage.error(
`部分删除失败:${failedDeletions
.map(item => `ID: ${item.id}`)
.join(', ')}`
);
}
//
await fetchEvents();
selectedAlerts.value = []; //
} catch (error) {
console.error('删除操作失败:', error);
ElMessage.error('删除失败,请稍后再试');
}
})
.catch(() => {
//
ElMessage.info('删除已取消');
});
};
const formatDateTimeToISO = (datetime) => {
return new Date(datetime).toISOString().replace('.000', '');