From 5da8971a7e38bf475d66f26df5dd3ed91ee883f5 Mon Sep 17 00:00:00 2001
From: SHAOJIAHAO <55341701@qq.com>
Date: Wed, 1 Jun 2022 14:24:05 +0800
Subject: [PATCH] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=E5=A2=9E=E5=8A=A0=E6=8C=89?=
=?UTF-8?q?=E9=92=AE=E5=92=8C=E9=A1=B5=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../condition-monitoring.component.html | 4 +
.../condition-monitoring.component.ts | 60 +++++-
.../file/file.component.html | 28 +++
.../file/file.component.scss | 0
.../file/file.component.ts | 26 +++
.../host-config/host-config.component.ts | 2 +-
.../kafka/kafka.component.html | 1 +
.../kafka/kafka.component.scss | 0
.../kafka/kafka.component.ts | 15 ++
.../navigation/navigation.component.html | 15 +-
.../status-monitoring.component.html | 92 ++++++++++
.../status-monitoring.component.scss | 17 ++
.../status-monitoring.component.ts | 171 ++++++++++++++++++
.../system-management-routing.module.ts | 4 +
.../system-management.module.ts | 7 +-
15 files changed, 430 insertions(+), 12 deletions(-)
create mode 100644 src/app/system-management/condition-monitoring/file/file.component.html
create mode 100644 src/app/system-management/condition-monitoring/file/file.component.scss
create mode 100644 src/app/system-management/condition-monitoring/file/file.component.ts
create mode 100644 src/app/system-management/kafka/kafka.component.html
create mode 100644 src/app/system-management/kafka/kafka.component.scss
create mode 100644 src/app/system-management/kafka/kafka.component.ts
create mode 100644 src/app/system-management/status-monitoring/status-monitoring.component.html
create mode 100644 src/app/system-management/status-monitoring/status-monitoring.component.scss
create mode 100644 src/app/system-management/status-monitoring/status-monitoring.component.ts
diff --git a/src/app/system-management/condition-monitoring/condition-monitoring.component.html b/src/app/system-management/condition-monitoring/condition-monitoring.component.html
index 5b1845d..adcfddb 100644
--- a/src/app/system-management/condition-monitoring/condition-monitoring.component.html
+++ b/src/app/system-management/condition-monitoring/condition-monitoring.component.html
@@ -62,6 +62,10 @@
[nzLoading]="loading == 'primary'" (click)="sendRequest('UpdateMonitors')">
更新监控程序
+
diff --git a/src/app/system-management/condition-monitoring/condition-monitoring.component.ts b/src/app/system-management/condition-monitoring/condition-monitoring.component.ts
index 3c7d9fb..8578673 100644
--- a/src/app/system-management/condition-monitoring/condition-monitoring.component.ts
+++ b/src/app/system-management/condition-monitoring/condition-monitoring.component.ts
@@ -4,6 +4,7 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalService } from 'ng-zorro-antd/modal';
import { TreeService } from 'src/app/service/tree.service';
+import { FileComponent } from './file/file.component';
import { ModelComponent } from './model/model.component';
@Component({
selector: 'app-condition-monitoring',
@@ -78,7 +79,7 @@ export class ConditionMonitoringComponent implements OnInit {
OrganizationId: this.defaultOrId,
PageNumber: this.PageNumber,
PageSize: 10,
- HubConnectionState:this.validateForm.value.state
+ HubConnectionState: this.validateForm.value.state
}
this.isLoading = true
this.http.get('/api/EdgeDevices/Statuses', { params: params }).subscribe(
@@ -167,10 +168,8 @@ export class ConditionMonitoringComponent implements OnInit {
}
})
} else {
-
-
const modal = this.modal.create({
- nzTitle: '选择更细模型类型',
+ nzTitle: '选择更新模型类型',
nzContent: ModelComponent,
nzViewContainerRef: this.viewContainerRef,
nzWidth: 288,
@@ -212,8 +211,59 @@ export class ConditionMonitoringComponent implements OnInit {
}
});
const instance = modal.getContentComponent();
-
}
}
+
+ file() {
+ const requestData = this.listOfData.filter(data => this.setOfCheckedId.has(data.id));
+ let strArr = []
+ requestData.forEach(element => {
+ strArr.push(element.id)
+ });
+ const modal = this.modal.create({
+ nzTitle: '配置文件',
+ nzContent: FileComponent,
+ nzViewContainerRef: this.viewContainerRef,
+ nzWidth: 388,
+ nzComponentParams: {},
+ nzOnOk: async () => {
+ if (instance.validateForm.valid) {
+ let body = {
+ edgeDeviceIds: strArr,
+ scheme: instance.validateForm.value.scheme,
+ host: instance.validateForm.value.host,
+ port: instance.validateForm.value.port
+ }
+ await new Promise(resolve => {
+ this.loading = 'file'
+ this.http.patch('/api/EdgeDevices/Commands/PushMonitorSettingsJson', body).subscribe({
+ next: (data: any) => {
+ this.message.create('success', '通知边缘盒子成功,请过一段时间手动刷新尝试!');
+ // console.log(data)
+ if (data.failedItems.length != 0) {
+ data.failedItems.forEach(element => {
+ this.message.create('info', element.detail);
+ });
+ }
+ this.setOfCheckedId.clear();
+ this.refreshCheckedStatus();
+
+ this.getConditionMonitoring()
+ this.loading = null;
+ },
+ error: (err) => {
+ this.loading = null;
+ }
+ })
+ })
+ } else {
+ this.message.create('warning', '请填写完整!');
+ return false
+ }
+ }
+ });
+ const instance = modal.getContentComponent();
+
+ }
}
diff --git a/src/app/system-management/condition-monitoring/file/file.component.html b/src/app/system-management/condition-monitoring/file/file.component.html
new file mode 100644
index 0000000..0418d1c
--- /dev/null
+++ b/src/app/system-management/condition-monitoring/file/file.component.html
@@ -0,0 +1,28 @@
+
+
+
\ No newline at end of file
diff --git a/src/app/system-management/condition-monitoring/file/file.component.scss b/src/app/system-management/condition-monitoring/file/file.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/system-management/condition-monitoring/file/file.component.ts b/src/app/system-management/condition-monitoring/file/file.component.ts
new file mode 100644
index 0000000..b9786cb
--- /dev/null
+++ b/src/app/system-management/condition-monitoring/file/file.component.ts
@@ -0,0 +1,26 @@
+import { Component, OnInit } from '@angular/core';
+import { NzModalRef } from 'ng-zorro-antd/modal';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { HttpClient } from '@angular/common/http';
+
+@Component({
+ selector: 'app-file',
+ templateUrl: './file.component.html',
+ styleUrls: ['./file.component.scss']
+})
+export class FileComponent implements OnInit {
+
+ validateForm!: FormGroup;
+ constructor(private modal: NzModalRef, private fb: FormBuilder, private http: HttpClient) { }
+
+ ngOnInit(): void {
+ this.validateForm = this.fb.group({
+ scheme: [null, [Validators.required]],
+ host: [null, [Validators.required]],
+ port: [null, [Validators.required]]
+ });
+ }
+ destroyModal(): void {
+ this.modal.destroy({ data: 'this the result data' });
+ }
+}
diff --git a/src/app/system-management/host-config/host-config.component.ts b/src/app/system-management/host-config/host-config.component.ts
index f1f84a0..794d967 100644
--- a/src/app/system-management/host-config/host-config.component.ts
+++ b/src/app/system-management/host-config/host-config.component.ts
@@ -441,7 +441,7 @@ tracker:
analytics:
config: 'config/config_nvdsanalytics.txt'
-
+
peoplenet:
enable: true
apply_on: -1
diff --git a/src/app/system-management/kafka/kafka.component.html b/src/app/system-management/kafka/kafka.component.html
new file mode 100644
index 0000000..5bfa2d8
--- /dev/null
+++ b/src/app/system-management/kafka/kafka.component.html
@@ -0,0 +1 @@
+kafka works!
diff --git a/src/app/system-management/kafka/kafka.component.scss b/src/app/system-management/kafka/kafka.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/system-management/kafka/kafka.component.ts b/src/app/system-management/kafka/kafka.component.ts
new file mode 100644
index 0000000..394c064
--- /dev/null
+++ b/src/app/system-management/kafka/kafka.component.ts
@@ -0,0 +1,15 @@
+import { Component, OnInit } from '@angular/core';
+
+@Component({
+ selector: 'app-kafka',
+ templateUrl: './kafka.component.html',
+ styleUrls: ['./kafka.component.scss']
+})
+export class KafkaComponent implements OnInit {
+
+ constructor() { }
+
+ ngOnInit(): void {
+ }
+
+}
diff --git a/src/app/system-management/navigation/navigation.component.html b/src/app/system-management/navigation/navigation.component.html
index e736fa5..6534a33 100644
--- a/src/app/system-management/navigation/navigation.component.html
+++ b/src/app/system-management/navigation/navigation.component.html
@@ -13,9 +13,16 @@
-
组织机构管理
-
边缘盒子管理
-
边缘盒子监控
+
组织机构管理
+
边缘盒子管理
+
边缘盒子更新
+
边缘盒子监控
+
kafka检查
@@ -35,4 +42,4 @@
-
+
\ No newline at end of file
diff --git a/src/app/system-management/status-monitoring/status-monitoring.component.html b/src/app/system-management/status-monitoring/status-monitoring.component.html
new file mode 100644
index 0000000..974b104
--- /dev/null
+++ b/src/app/system-management/status-monitoring/status-monitoring.component.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+ |
+ ip地址 |
+ 所属油站 |
+ 设备状态 |
+
+
+
+
+ |
+ {{ data.hostIPAddress }} |
+ {{ data.gasStationName }} |
+
+
+ 离线
+
+
+ 在线
+
+ |
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/system-management/status-monitoring/status-monitoring.component.scss b/src/app/system-management/status-monitoring/status-monitoring.component.scss
new file mode 100644
index 0000000..727b74a
--- /dev/null
+++ b/src/app/system-management/status-monitoring/status-monitoring.component.scss
@@ -0,0 +1,17 @@
+.topbox {
+ form {
+ display: flex;
+
+ nz-form-item {
+ margin-right: 6px;
+ }
+
+ button {
+ margin-right: 6px;
+ }
+ }
+
+ .searchParams {
+ width: 250px;
+ }
+}
diff --git a/src/app/system-management/status-monitoring/status-monitoring.component.ts b/src/app/system-management/status-monitoring/status-monitoring.component.ts
new file mode 100644
index 0000000..5afd2a9
--- /dev/null
+++ b/src/app/system-management/status-monitoring/status-monitoring.component.ts
@@ -0,0 +1,171 @@
+import { HttpClient } from '@angular/common/http';
+import { Component, OnInit, ViewContainerRef } from '@angular/core';
+import { FormBuilder, FormGroup, Validators } from '@angular/forms';
+import { NzMessageService } from 'ng-zorro-antd/message';
+import { NzModalService } from 'ng-zorro-antd/modal';
+import { TreeService } from 'src/app/service/tree.service';
+
+@Component({
+ selector: 'app-status-monitoring',
+ templateUrl: './status-monitoring.component.html',
+ styleUrls: ['./status-monitoring.component.scss']
+})
+export class StatusMonitoringComponent implements OnInit {
+
+ constructor(private http: HttpClient, private fb: FormBuilder, private toTree: TreeService, private message: NzMessageService, private modal: NzModalService, private viewContainerRef: ViewContainerRef) { }
+ validateForm!: FormGroup;
+ ngOnInit(): void {
+ this.validateForm = this.fb.group({
+ organization: [null],
+ state: [null]
+ });
+ this.getAllOrganization()
+
+ }
+ //获取所有组织机构
+ nodes: any = []
+ defaultOrId: string
+ defaultExpandedKeys = [];
+ getAllOrganization() {
+ let params = {
+ ContainsChildren: true,
+ pageSize: 9999
+ }
+ this.http.get('/api/Organizations', {
+ params: params
+ }).subscribe((data: any) => {
+ console.log('组织机构列表', data)
+ data.items.forEach(element => {
+ element.key = element.id
+ element.title = element.name
+ // element.selectable = false
+ });
+ this.nodes = [...this.toTree.toTree(data.items)]
+ this.defaultOrId = this.nodes[0].id
+ this.validateForm.value.organization = this.defaultOrId
+ this.getConditionMonitoring()
+ })
+ }
+
+ submitForm(): void {
+ for (const i in this.validateForm.controls) {
+ this.validateForm.controls[i].markAsDirty();
+ this.validateForm.controls[i].updateValueAndValidity();
+ }
+ this.getConditionMonitoring()
+ }
+ resetForm(e: MouseEvent): void {
+ e.preventDefault();
+ this.validateForm.reset();
+ for (const key in this.validateForm.controls) {
+ this.validateForm.controls[key].markAsPristine();
+ this.validateForm.controls[key].updateValueAndValidity();
+ }
+ this.validateForm.patchValue({
+ organization: this.nodes[0].id,
+ });
+ this.PageNumber = 1
+ this.getConditionMonitoring()
+ }
+ listOfData: any
+ num: string
+ PageNumber: number = 1
+ isLoading = false
+ //获取盒子状态
+ getConditionMonitoring() {
+ let params = {
+ ContainsChildren: true,
+ OrganizationId: this.defaultOrId,
+ PageNumber: this.PageNumber,
+ PageSize: 10,
+ HubConnectionState: this.validateForm.value.state
+ }
+ this.isLoading = true
+ this.http.get('/api/EdgeDevices/Statuses', { params: params }).subscribe(
+ (data: any) => {
+ console.log(data)
+ this.isLoading = false
+ this.listOfData = data.items
+ this.num = data.totalCount
+ }, err => {
+
+ }
+ )
+ }
+ pageChange($event) {
+ this.PageNumber = $event
+ this.getConditionMonitoring()
+ }
+
+
+ checked = false;
+ loading
+ indeterminate = false;
+ listOfCurrentPageData: readonly any[] = [];
+ setOfCheckedId = new Set();
+ updateCheckedSet(id: number, checked: boolean): void {
+ if (checked) {
+ this.setOfCheckedId.add(id);
+ } else {
+ this.setOfCheckedId.delete(id);
+ }
+ }
+
+ onCurrentPageDataChange(listOfCurrentPageData: readonly any[]): void {
+ this.listOfCurrentPageData = listOfCurrentPageData;
+ this.refreshCheckedStatus();
+ }
+
+ refreshCheckedStatus(): void {
+ const listOfEnabledData = this.listOfCurrentPageData.filter(({ disabled }) => !disabled);
+ this.checked = listOfEnabledData.every(({ id }) => this.setOfCheckedId.has(id));
+ this.indeterminate = listOfEnabledData.some(({ id }) => this.setOfCheckedId.has(id)) && !this.checked;
+ }
+
+ onItemChecked(id: number, checked: boolean): void {
+ this.updateCheckedSet(id, checked);
+ this.refreshCheckedStatus();
+ }
+
+ onAllChecked(checked: boolean): void {
+ this.listOfCurrentPageData
+ .filter(({ disabled }) => !disabled)
+ .forEach(({ id }) => this.updateCheckedSet(id, checked));
+ this.refreshCheckedStatus();
+ }
+
+ sendRequest(type): void {
+
+ const requestData = this.listOfData.filter(data => this.setOfCheckedId.has(data.id));
+
+ let strArr = []
+ requestData.forEach(element => {
+ strArr.push(element.id)
+ });
+ let body
+ this.loading = type;
+ body = {
+ edgeDeviceIds: strArr
+ }
+ this.http.patch('/api/EdgeDevices/Commands', body, { params: { command: type } }).subscribe({
+ next: (data: any) => {
+ this.message.create('success', '通知边缘盒子成功,请过一段时间手动刷新尝试!');
+ console.log(data)
+ if (data.failedItems.length != 0) {
+ data.failedItems.forEach(element => {
+ this.message.create('info', element.detail);
+ });
+ }
+ this.setOfCheckedId.clear();
+ this.refreshCheckedStatus();
+ this.loading = null;
+ this.getConditionMonitoring()
+ },
+ error: (err) => {
+ this.loading = null;
+ }
+ })
+
+
+ }
+}
diff --git a/src/app/system-management/system-management-routing.module.ts b/src/app/system-management/system-management-routing.module.ts
index 93b6a4d..5aaf31a 100644
--- a/src/app/system-management/system-management-routing.module.ts
+++ b/src/app/system-management/system-management-routing.module.ts
@@ -8,6 +8,8 @@ import { PlottingImageComponent } from './plotting-image/plotting-image.componen
import { ImageLabel2Component } from './image-label2/image-label2.component';
import { ConfigFormComponent } from './config-form/config-form.component';
import { ConditionMonitoringComponent } from './condition-monitoring/condition-monitoring.component';
+import { KafkaComponent } from './kafka/kafka.component';
+import { StatusMonitoringComponent } from './status-monitoring/status-monitoring.component';
const routes: Routes = [
@@ -19,6 +21,8 @@ const routes: Routes = [
{ path: 'host/camera/configForm', component: ConfigFormComponent },
{ path: 'plottingImage', component: PlottingImageComponent },
{ path: 'conditionMonitoring', component: ConditionMonitoringComponent },
+ { path: 'statusMonitoring', component: StatusMonitoringComponent },
+ { path: 'kafka', component: KafkaComponent }
];
@NgModule({
diff --git a/src/app/system-management/system-management.module.ts b/src/app/system-management/system-management.module.ts
index 0cb057b..aea5713 100644
--- a/src/app/system-management/system-management.module.ts
+++ b/src/app/system-management/system-management.module.ts
@@ -39,8 +39,11 @@ import { NzTabsModule } from 'ng-zorro-antd/tabs';
import { ConditionMonitoringComponent } from './condition-monitoring/condition-monitoring.component';
import { SendFileComponent } from './host-config/send-file/send-file.component';
import { ModelComponent } from './condition-monitoring/model/model.component';
+import { KafkaComponent } from './kafka/kafka.component';
+import { StatusMonitoringComponent } from './status-monitoring/status-monitoring.component';
+import { FileComponent } from './condition-monitoring/file/file.component';
@NgModule({
- declarations: [OrganizationComponent, NavigationComponent, AddorComponent, EditorComponent, AnalysisOfTheHostComponent, AddhostComponent, EdithostComponent, AddcameraComponent, EditcameraComponent, HostConfigComponent, ImageListComponent, ImageLabelComponent, PlottingImageComponent, cameraType, ImageLabel2Component, ConfigFormComponent, ConditionMonitoringComponent, SendFileComponent, ModelComponent],
+ declarations: [OrganizationComponent, NavigationComponent, AddorComponent, EditorComponent, AnalysisOfTheHostComponent, AddhostComponent, EdithostComponent, AddcameraComponent, EditcameraComponent, HostConfigComponent, ImageListComponent, ImageLabelComponent, PlottingImageComponent, cameraType, ImageLabel2Component, ConfigFormComponent, ConditionMonitoringComponent, SendFileComponent, ModelComponent, KafkaComponent, StatusMonitoringComponent, FileComponent],
imports: [
CommonModule,
SystemRoutingModule,
@@ -65,7 +68,7 @@ import { ModelComponent } from './condition-monitoring/model/model.component';
NzTabsModule,
NzPopconfirmModule
],
- entryComponents: [AddorComponent, EditorComponent, AddhostComponent, EdithostComponent, AddcameraComponent, EditcameraComponent, SendFileComponent, ModelComponent]
+ entryComponents: [AddorComponent, EditorComponent, AddhostComponent, EdithostComponent, AddcameraComponent, EditcameraComponent, SendFileComponent, ModelComponent, FileComponent]
})
export class SystemManagementModule { }