Browse Source

[完善]执行脚本功能

develop
邵佳豪 3 years ago
parent
commit
91ba9cc9fe
  1. 5
      src/app/system-management/condition-monitoring/condition-monitoring.component.ts
  2. 16
      src/app/system-management/condition-monitoring/file/file.component.html
  3. 3
      src/app/system-management/condition-monitoring/file/file.component.ts
  4. 12
      src/app/system-management/status-monitoring/script/script.component.html
  5. 0
      src/app/system-management/status-monitoring/script/script.component.scss
  6. 25
      src/app/system-management/status-monitoring/script/script.component.ts
  7. 4
      src/app/system-management/status-monitoring/status-monitoring.component.html
  8. 50
      src/app/system-management/status-monitoring/status-monitoring.component.ts
  9. 5
      src/app/system-management/system-management.module.ts

5
src/app/system-management/condition-monitoring/condition-monitoring.component.ts

@ -225,7 +225,7 @@ export class ConditionMonitoringComponent implements OnInit {
nzTitle: '配置文件',
nzContent: FileComponent,
nzViewContainerRef: this.viewContainerRef,
nzWidth: 388,
nzWidth: 500,
nzComponentParams: {},
nzOnOk: async () => {
if (instance.validateForm.valid) {
@ -233,7 +233,8 @@ export class ConditionMonitoringComponent implements OnInit {
edgeDeviceIds: strArr,
scheme: instance.validateForm.value.scheme,
host: instance.validateForm.value.host,
port: instance.validateForm.value.port
port: instance.validateForm.value.port,
maxRetries: instance.validateForm.value.maxRetries
}
await new Promise(resolve => {
this.loading = 'file'

16
src/app/system-management/condition-monitoring/file/file.component.html

@ -1,10 +1,10 @@
<div class="box">
<form nz-form [formGroup]="validateForm">
<form nz-form [formGroup]="validateForm" class="formbox">
<nz-form-item>
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="scheme">协议</nz-form-label>
<nz-form-control>
<nz-input-group>
<input nz-input type="text" formControlName="scheme" placeholder="请输入协议" />
<input nz-input type="text" formControlName="scheme" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
@ -12,7 +12,7 @@
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="host">主机/ip</nz-form-label>
<nz-form-control>
<nz-input-group>
<input nz-input type="text" formControlName="host" placeholder="请输入主机/ip" />
<input nz-input type="text" formControlName="host" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
@ -20,7 +20,15 @@
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="port">端口</nz-form-label>
<nz-form-control>
<nz-input-group>
<input type="number" nz-input formControlName="port" placeholder="请输入端口" />
<input type="number" nz-input formControlName="port" />
</nz-input-group>
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="maxRetries">最大重试次数</nz-form-label>
<nz-form-control>
<nz-input-group>
<input type="number" nz-input formControlName="maxRetries" />
</nz-input-group>
</nz-form-control>
</nz-form-item>

3
src/app/system-management/condition-monitoring/file/file.component.ts

@ -17,7 +17,8 @@ export class FileComponent implements OnInit {
this.validateForm = this.fb.group({
scheme: [null, [Validators.required]],
host: [null, [Validators.required]],
port: [null, [Validators.required]]
port: [null, [Validators.required]],
maxRetries: [null, [Validators.required]]
});
}
destroyModal(): void {

12
src/app/system-management/status-monitoring/script/script.component.html

@ -0,0 +1,12 @@
<div class="box">
<form nz-form [formGroup]="validateForm">
<nz-form-item>
<nz-form-control>
<nz-select nzMode="multiple" formControlName="script" nzPlaceHolder="请选择脚本">
<nz-option [nzValue]="'restartContainer'" nzLabel="restartContainer"></nz-option>
<nz-option [nzValue]="'restartMonitor'" nzLabel="restartMonitor"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
</form>
</div>

0
src/app/system-management/status-monitoring/script/script.component.scss

25
src/app/system-management/status-monitoring/script/script.component.ts

@ -0,0 +1,25 @@
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-script',
templateUrl: './script.component.html',
styleUrls: ['./script.component.scss']
})
export class ScriptComponent implements OnInit {
validateForm!: FormGroup;
constructor(private modal: NzModalRef, private fb: FormBuilder, private http: HttpClient) { }
ngOnInit(): void {
this.validateForm = this.fb.group({
script: [null, [Validators.required]],
});
}
destroyModal(): void {
this.modal.destroy({ data: 'this the result data' });
}
}

4
src/app/system-management/status-monitoring/status-monitoring.component.html

@ -52,6 +52,10 @@
[nzLoading]="loading == 'RestartMonitors'" (click)="sendRequest('RestartMonitors')">
重启监控程序
</button>
<button nz-button nzType="primary" type="button" [disabled]="setOfCheckedId.size === 0"
[nzLoading]="loading == 'RestartMonitors'" (click)="executeTheScript()">
执行脚本
</button>
</form>
</div>

50
src/app/system-management/status-monitoring/status-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 { ScriptComponent } from './script/script.component';
@Component({
selector: 'app-status-monitoring',
@ -168,4 +169,53 @@ export class StatusMonitoringComponent implements OnInit {
}
executeTheScript() {
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: ScriptComponent,
nzViewContainerRef: this.viewContainerRef,
nzWidth: 288,
nzComponentParams: {},
nzOnOk: async () => {
if (instance.validateForm.valid) {
let body = {
edgeDeviceIds: strArr
}
await new Promise(resolve => {
this.http.patch('/api/EdgeDevices/Commands/ExecuteScript', body, { params: { name: instance.validateForm.value.script } }).subscribe({
next: (data: any) => {
resolve(data)
this.message.create('success', '通知边缘盒子成功,请过一段时间手动刷新尝试!');
// if (data.failedItems && data.failedItems.length != 0) {
// data.failedItems.forEach(element => {
// this.message.create('info', element.detail);
// });
// }
this.setOfCheckedId.clear();
this.refreshCheckedStatus();
this.loading = null;
this.getConditionMonitoring()
return true
},
error: (err) => {
resolve(err)
this.loading = null;
return false
}
})
})
} else {
this.message.create('warning', '请填写完整!');
return false
}
}
});
const instance = modal.getContentComponent();
}
}

5
src/app/system-management/system-management.module.ts

@ -42,8 +42,9 @@ 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';
import { ScriptComponent } from './status-monitoring/script/script.component';
@NgModule({
declarations: [OrganizationComponent, NavigationComponent, AddorComponent, EditorComponent, AnalysisOfTheHostComponent, AddhostComponent, EdithostComponent, AddcameraComponent, EditcameraComponent, HostConfigComponent, ImageListComponent, ImageLabelComponent, PlottingImageComponent, cameraType, ImageLabel2Component, ConfigFormComponent, ConditionMonitoringComponent, SendFileComponent, ModelComponent, KafkaComponent, StatusMonitoringComponent, FileComponent],
declarations: [OrganizationComponent, NavigationComponent, AddorComponent, EditorComponent, AnalysisOfTheHostComponent, AddhostComponent, EdithostComponent, AddcameraComponent, EditcameraComponent, HostConfigComponent, ImageListComponent, ImageLabelComponent, PlottingImageComponent, cameraType, ImageLabel2Component, ConfigFormComponent, ConditionMonitoringComponent, SendFileComponent, ModelComponent, KafkaComponent, StatusMonitoringComponent, FileComponent, ScriptComponent],
imports: [
CommonModule,
SystemRoutingModule,
@ -68,7 +69,7 @@ import { FileComponent } from './condition-monitoring/file/file.component';
NzTabsModule,
NzPopconfirmModule
],
entryComponents: [AddorComponent, EditorComponent, AddhostComponent, EdithostComponent, AddcameraComponent, EditcameraComponent, SendFileComponent, ModelComponent, FileComponent]
entryComponents: [AddorComponent, EditorComponent, AddhostComponent, EdithostComponent, AddcameraComponent, EditcameraComponent, SendFileComponent, ModelComponent, FileComponent,ScriptComponent]
})
export class SystemManagementModule { }

Loading…
Cancel
Save