[monitor] 告警中心-告警删除

This commit is contained in:
tomsun28
2021-12-14 08:45:08 +08:00
parent caf3e9fef9
commit ebb257bbb6
4 changed files with 60 additions and 16 deletions

View File

@@ -3,11 +3,13 @@ package com.usthe.alert.service.impl;
import com.usthe.alert.dao.AlertDao;
import com.usthe.alert.pojo.entity.Alert;
import com.usthe.alert.service.AlertService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashSet;
@@ -17,6 +19,8 @@ import java.util.HashSet;
* @date 2021/12/10 15:39
*/
@Service
@Transactional(rollbackFor = Exception.class)
@Slf4j
public class AlertServiceImpl implements AlertService {
@Autowired

View File

@@ -13,10 +13,6 @@
</nz-breadcrumb>
<nz-divider></nz-divider>
<button nz-button nzType="primary" (click)="onRestoreAlerts()" >
<i nz-icon nzType="up-circle" nzTheme="outline"></i>
恢复告警
</button>
<button nz-button nzType="primary" (click)="onDeleteAlerts()">
<i nz-icon nzType="delete" nzTheme="outline"></i>
删除告警
@@ -68,9 +64,6 @@
<td nzAlign="center">{{ data.content }}</td>
<td nzAlign="center">{{ data.gmtCreate }}</td>
<td nzAlign="center" nzRight>
<button nz-button nzType="primary" (click)="onRestoreOneAlert(data.id)">
<i nz-icon nzType="up-circle" nzTheme="outline"></i>
</button>
<button nz-button nzType="primary" (click)="onDeleteOneAlert(data.id)">
<i nz-icon nzType="delete" nzTheme="outline"></i>
</button>

View File

@@ -2,8 +2,8 @@ import { Component, OnInit } from '@angular/core';
import {NzTableQueryParams} from "ng-zorro-antd/table";
import {Alert} from "../../../pojo/Alert";
import {NzNotificationService} from "ng-zorro-antd/notification";
import {NzMessageService} from "ng-zorro-antd/message";
import {AlertService} from "../../../service/alert.service";
import {NzModalService} from "ng-zorro-antd/modal";
@Component({
selector: 'app-alert-center',
@@ -14,7 +14,7 @@ import {AlertService} from "../../../service/alert.service";
export class AlertCenterComponent implements OnInit {
constructor(private notifySvc: NzNotificationService,
private msg: NzMessageService,
private modal: NzModalService,
private alertSvc: AlertService) { }
pageIndex: number = 1;
@@ -50,18 +50,53 @@ export class AlertCenterComponent implements OnInit {
});
}
onRestoreAlerts() {
}
onRestoreOneAlert(alertId: number) {
}
onDeleteAlerts() {
if (this.checkedAlertIds == null || this.checkedAlertIds.size === 0) {
this.notifySvc.warning("未选中任何待删除项!","");
return;
}
this.modal.confirm({
nzTitle: '请确认是否批量删除!',
nzOkText: '确定',
nzCancelText: '取消',
nzOkDanger: true,
nzOkType: "primary",
nzOnOk: () => this.deleteAlerts(this.checkedAlertIds)
});
}
onDeleteOneAlert(alertId: number) {
let alerts = new Set<number>();
alerts.add(alertId);
this.modal.confirm({
nzTitle: '请确认是否删除!',
nzOkText: '确定',
nzCancelText: '取消',
nzOkDanger: true,
nzOkType: "primary",
nzOnOk: () => this.deleteAlerts(alerts)
});
}
deleteAlerts(alertIds: Set<number>) {
this.tableLoading = true;
const deleteAlerts$ = this.alertSvc.deleteAlerts(alertIds)
.subscribe(message => {
deleteAlerts$.unsubscribe();
if (message.code === 0) {
this.notifySvc.success("删除成功!", "");
this.loadAlertsTable();
} else {
this.tableLoading = false;
this.notifySvc.error("删除失败!", message.msg);
}
},
error => {
this.tableLoading = false;
deleteAlerts$.unsubscribe();
this.notifySvc.error("删除失败!", error.msg)
}
);
}
// begin: 列表多选分页逻辑

View File

@@ -28,4 +28,16 @@ export class AlertService {
const options = { params: httpParams };
return this.http.get<Message<Page<Alert>>>(alerts_uri, options);
}
public deleteAlerts(alertIds: Set<number>) : Observable<Message<any>> {
let httpParams = new HttpParams();
alertIds.forEach(alertId => {
// 注意HttpParams是不可变对象 需要保存append后返回的对象为最新对象
// append方法可以叠加同一key, set方法会把key之前的值覆盖只留一个key-value
httpParams = httpParams.append('ids', alertId);
})
const options = { params: httpParams };
return this.http.delete<Message<any>>(alerts_uri, options);
}
}