diff --git a/web-app/src/app/pojo/Alert.ts b/web-app/src/app/pojo/Alert.ts
new file mode 100644
index 0000000..2ea34ca
--- /dev/null
+++ b/web-app/src/app/pojo/Alert.ts
@@ -0,0 +1,11 @@
+export class Alert {
+ id!: number;
+ target!: string;
+ monitorId!: number;
+ monitorName!: string;
+ priority: number = 2;
+ status!: number;
+ content!: string;
+ duration!: number;
+ gmtCreate!: number;
+}
diff --git a/web-app/src/app/routes/alert/alert-center/alert-center.component.html b/web-app/src/app/routes/alert/alert-center/alert-center.component.html
index b7352da..153fc8b 100644
--- a/web-app/src/app/routes/alert/alert-center/alert-center.component.html
+++ b/web-app/src/app/routes/alert/alert-center/alert-center.component.html
@@ -1 +1,86 @@
-
alert-center works!
+
+
+
+
+
+ 仪表盘
+
+
+
+
+ 告警中心
+
+
+
+
+
+
+
+
+
+
+ |
+ 告警对象 |
+ 所属监控 |
+ 级别 |
+ 告警内容 |
+ 触发时间 |
+ 持续时间 |
+ 操作 |
+
+
+
+
+ |
+ {{ data.target }} |
+
+
+ {{ data.monitorName }}
+
+ |
+
+
+
+ 紧急告警
+
+
+
+ 严重告警
+
+
+
+ 警告告警
+
+ |
+ {{ data.content }} |
+ {{ data.gmtCreate }} |
+ {{ data.duration }} |
+
+
+
+ |
+
+
+
+
+
+ 总量 {{ total }}
+
diff --git a/web-app/src/app/routes/alert/alert-center/alert-center.component.ts b/web-app/src/app/routes/alert/alert-center/alert-center.component.ts
index f38af04..3adb5e3 100644
--- a/web-app/src/app/routes/alert/alert-center/alert-center.component.ts
+++ b/web-app/src/app/routes/alert/alert-center/alert-center.component.ts
@@ -1,4 +1,9 @@
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";
@Component({
selector: 'app-alert-center',
@@ -8,9 +13,80 @@ import { Component, OnInit } from '@angular/core';
})
export class AlertCenterComponent implements OnInit {
- constructor() { }
+ constructor(private notifySvc: NzNotificationService,
+ private msg: NzMessageService,
+ private alertSvc: AlertService) { }
+
+ pageIndex: number = 1;
+ pageSize: number = 8;
+ total: number = 0;
+ alerts!: Alert[];
+ tableLoading: boolean = false;
+ checkedAlertIds = new Set();
ngOnInit(): void {
+ this.loadAlertsTable();
}
+ loadAlertsTable() {
+ this.tableLoading = true;
+ let alertsInit$ = this.alertSvc.getAlerts(this.pageIndex - 1, this.pageSize)
+ .subscribe(message => {
+ this.tableLoading = false;
+ this.checkedAll = false;
+ this.checkedAlertIds.clear();
+ if (message.code === 0) {
+ let page = message.data;
+ this.alerts = page.content;
+ this.pageIndex = page.number + 1;
+ this.total = page.totalElements;
+ } else {
+ console.warn(message.msg);
+ }
+ alertsInit$.unsubscribe();
+ }, error => {
+ this.tableLoading = false;
+ alertsInit$.unsubscribe();
+ });
+ }
+
+ onRestoreAlerts() {
+
+ }
+ onRestoreOneAlert(alertId: number) {
+
+ }
+ onDeleteAlerts() {
+
+ }
+
+ onDeleteOneAlert(alertId: number) {
+
+ }
+
+ // begin: 列表多选分页逻辑
+ checkedAll: boolean = false;
+ onAllChecked(checked: boolean) {
+ if (checked) {
+ this.alerts.forEach(monitor => this.checkedAlertIds.add(monitor.id));
+ } else {
+ this.checkedAlertIds.clear();
+ }
+ }
+ onItemChecked(monitorId: number, checked: boolean) {
+ if (checked) {
+ this.checkedAlertIds.add(monitorId);
+ } else {
+ this.checkedAlertIds.delete(monitorId);
+ }
+ }
+ onTablePageChange(params: NzTableQueryParams) {
+ const { pageSize, pageIndex, sort, filter } = params;
+ this.pageIndex = pageIndex;
+ this.pageSize = pageSize;
+ this.loadAlertsTable();
+ }
+ // end: 列表多选分页逻辑
+
+
}
diff --git a/web-app/src/app/routes/alert/alert-setting/alert-setting.component.html b/web-app/src/app/routes/alert/alert-setting/alert-setting.component.html
index d4c2c81..89427eb 100644
--- a/web-app/src/app/routes/alert/alert-setting/alert-setting.component.html
+++ b/web-app/src/app/routes/alert/alert-setting/alert-setting.component.html
@@ -3,6 +3,7 @@
+ 仪表盘
@@ -58,15 +59,15 @@
-
+
紧急告警
-
+
严重告警
-
+
警告告警
|
diff --git a/web-app/src/app/routes/monitor/monitor-detail/monitor-detail.component.html b/web-app/src/app/routes/monitor/monitor-detail/monitor-detail.component.html
index 77bb458..4224f82 100644
--- a/web-app/src/app/routes/monitor/monitor-detail/monitor-detail.component.html
+++ b/web-app/src/app/routes/monitor/monitor-detail/monitor-detail.component.html
@@ -3,6 +3,7 @@
+ 仪表盘
diff --git a/web-app/src/app/routes/monitor/monitor-edit/monitor-edit.component.html b/web-app/src/app/routes/monitor/monitor-edit/monitor-edit.component.html
index 9cbf363..000ca87 100644
--- a/web-app/src/app/routes/monitor/monitor-edit/monitor-edit.component.html
+++ b/web-app/src/app/routes/monitor/monitor-edit/monitor-edit.component.html
@@ -3,6 +3,7 @@
+ 仪表盘
diff --git a/web-app/src/app/routes/monitor/monitor-list/monitor-list.component.html b/web-app/src/app/routes/monitor/monitor-list/monitor-list.component.html
index 0b63061..8782807 100644
--- a/web-app/src/app/routes/monitor/monitor-list/monitor-list.component.html
+++ b/web-app/src/app/routes/monitor/monitor-list/monitor-list.component.html
@@ -3,6 +3,7 @@
+ 仪表盘
diff --git a/web-app/src/app/routes/monitor/monitor-new/monitor-new.component.html b/web-app/src/app/routes/monitor/monitor-new/monitor-new.component.html
index d53ce83..20edc80 100644
--- a/web-app/src/app/routes/monitor/monitor-new/monitor-new.component.html
+++ b/web-app/src/app/routes/monitor/monitor-new/monitor-new.component.html
@@ -3,6 +3,7 @@
+ 仪表盘
diff --git a/web-app/src/app/service/alert.service.spec.ts b/web-app/src/app/service/alert.service.spec.ts
new file mode 100644
index 0000000..b20ed8c
--- /dev/null
+++ b/web-app/src/app/service/alert.service.spec.ts
@@ -0,0 +1,16 @@
+import { TestBed } from '@angular/core/testing';
+
+import { AlertService } from './alert.service';
+
+describe('AlertService', () => {
+ let service: AlertService;
+
+ beforeEach(() => {
+ TestBed.configureTestingModule({});
+ service = TestBed.inject(AlertService);
+ });
+
+ it('should be created', () => {
+ expect(service).toBeTruthy();
+ });
+});
diff --git a/web-app/src/app/service/alert.service.ts b/web-app/src/app/service/alert.service.ts
new file mode 100644
index 0000000..3411513
--- /dev/null
+++ b/web-app/src/app/service/alert.service.ts
@@ -0,0 +1,31 @@
+import { Injectable } from '@angular/core';
+import {HttpClient, HttpParams} from "@angular/common/http";
+import {Observable} from "rxjs";
+import {Message} from "../pojo/Message";
+import {Page} from "../pojo/Page";
+import {Alert} from "../pojo/Alert";
+
+const alerts_uri = '/alerts';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class AlertService {
+
+ constructor(private http : HttpClient) { }
+
+ public getAlerts(pageIndex: number, pageSize: number) : Observable>> {
+ pageIndex = pageIndex ? pageIndex : 0;
+ pageSize = pageSize ? pageSize : 8;
+ // 注意HttpParams是不可变对象 需要保存set后返回的对象为最新对象
+ let httpParams = new HttpParams();
+ httpParams = httpParams.appendAll({
+ 'sort': 'id',
+ 'order': 'desc',
+ 'pageIndex': pageIndex,
+ 'pageSize': pageSize
+ });
+ const options = { params: httpParams };
+ return this.http.get>>(alerts_uri, options);
+ }
+}