Browse Source

[完善]完善安信配置文件

非煤矿业企业安全风险监测预警系统
邵佳豪 2 years ago
parent
commit
908b765ab5
  1. 5
      src/app/system-management/host-config/anxin-config/anxin-config.component.html
  2. 21
      src/app/system-management/host-config/anxin-config/anxin-config.component.scss
  3. 25
      src/app/system-management/host-config/anxin-config/anxin-config.component.spec.ts
  4. 19
      src/app/system-management/host-config/anxin-config/anxin-config.component.ts
  5. 2
      src/app/system-management/host-config/host-config.component.html
  6. 96
      src/app/system-management/host-config/host-config.component.ts
  7. 36
      src/app/system-management/image-label-anxin/image-label-anxin.component.ts
  8. 2
      src/app/system-management/system-management.module.ts

5
src/app/system-management/host-config/anxin-config/anxin-config.component.html

@ -0,0 +1,5 @@
<div class="box">
<div class="content">
<textarea name="config" id="config" [(ngModel)]="datacopy"></textarea>
</div>
</div>

21
src/app/system-management/host-config/anxin-config/anxin-config.component.scss

@ -0,0 +1,21 @@
.box {
width: 100%;
height: 100%;
background: #fff;
font-size: 15px;
color: black;
box-sizing: border-box;
display: flex;
flex-direction: column;
overflow-y: auto;
}
.content {
flex: 1;
box-sizing: border-box;
textarea {
width: 100%;
height: 400px;
}
}

25
src/app/system-management/host-config/anxin-config/anxin-config.component.spec.ts

@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AnxinConfigComponent } from './anxin-config.component';
describe('AnxinConfigComponent', () => {
let component: AnxinConfigComponent;
let fixture: ComponentFixture<AnxinConfigComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ AnxinConfigComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(AnxinConfigComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

19
src/app/system-management/host-config/anxin-config/anxin-config.component.ts

@ -0,0 +1,19 @@
import { Component, OnInit, Input } from '@angular/core';
import { FormGroup } from '@angular/forms';
import yaml from 'js-yaml';
@Component({
selector: 'app-anxin-config',
templateUrl: './anxin-config.component.html',
styleUrls: ['./anxin-config.component.scss'],
})
export class AnxinConfigComponent implements OnInit {
@Input() data: any;
validateForm!: FormGroup;
constructor() {}
datacopy;
ngOnInit(): void {
this.datacopy = yaml.dump(JSON.parse(JSON.stringify(this.data)), {
lineWidth: -1,
});
}
}

2
src/app/system-management/host-config/host-config.component.html

@ -63,7 +63,7 @@
<button nz-button nzType="primary" (click)="config()">下发黄海config.json配置</button>
</div>
<div class="footer" *ngIf="hostType === '安信'">
<button nz-button nzType="primary" (click)="configToAx()">下发安信config.json配置</button>
<button nz-button nzType="primary" (click)="configToAx()">下发安信data.yaml配置</button>
</div>
</div>
</div>

96
src/app/system-management/host-config/host-config.component.ts

@ -36,8 +36,8 @@ interface Camera {
}
import yaml from 'js-yaml';
import * as YAML from 'yaml';
import { ImageLabelAnxinComponent } from '../image-label-anxin/image-label-anxin.component';
import { AnxinConfigComponent } from './anxin-config/anxin-config.component';
@Component({
selector: 'app-host-config',
@ -1502,5 +1502,97 @@ ${newstr}class-id=0
}
//安信配置文件
configToAx() {}
configToAx() {
let data = this.configJsonToAx();
console.log(data)
// return;
const modal = this.modal.create({
nzTitle: '下发安信config.json配置',
nzContent: AnxinConfigComponent,
nzViewContainerRef: this.viewContainerRef,
nzWidth: 1000,
nzBodyStyle: {
'border-radius': '0px',
padding: '7px',
},
nzComponentParams: {
data: data,
},
nzOnOk: () => {
new Promise((resolve, reject) => {
console.log('表单信息', instance.validateForm);
let body = {
configFiles: [{ name: 'data.yaml', content: instance.datacopy }],
};
this.http.put(`/api/EdgeDevices/${this.hostId}`, body).subscribe({
next: (data) => {
resolve(data);
this.message.success('文件保存成功');
let params = {
edgeDeviceId: this.hostId,
fileName: 'data.yaml',
};
this.http
.put('/api/EdgeDevices/Commands/PushFile', '', {
params: params,
})
.subscribe({
next: (data) => {
this.message.create('success', `发送文件名成功`);
},
});
},
error: (err) => {
this.message.error('文件保存失败');
reject(err);
},
});
});
},
});
const instance = modal.getContentComponent();
}
configJsonToAx() {
let data = {
userInfo: {
user: '',
password: '',
},
caps:[],
};
console.log(this.listOfData);
this.listOfData.forEach((item: any) => {
let type = null;
item.type === 0
? (type = 2)
: item.type === 1
? (type = 1)
: item.type === 2
? (type = 0)
: item.type === 3
? (type = 4)
: null;
let areas = [];
if (item.dimensionedPointsAnxinObj) {
if (item.dimensionedPointsAnxinObj.yamlData.length !== 0) {
areas = item.dimensionedPointsAnxinObj.yamlData;
}
}
let obj:any = {
id: item.id,
type: type,
url: item.uri,
name: item.name,
};
if(areas.length !== 0){
obj.areas = areas
}
data.caps.push(obj);
});
return data
}
}

36
src/app/system-management/image-label-anxin/image-label-anxin.component.ts

@ -35,6 +35,7 @@ export class ImageLabelAnxinComponent implements OnInit {
return new Promise((resolve, reject) => {
this.http.get(`/api/Cameras/${this.cameraId}`).subscribe((data: any) => {
this.camerasData = data;
// this.camerasData.dimensionedPointsAnxin = null
this.markType = data.type;
const httpOptions = {
responseType: 'blob' as 'json',
@ -128,6 +129,7 @@ export class ImageLabelAnxinComponent implements OnInit {
DrawPolygoning = '';
initMark(canvas, context) {
// return
if (!this.camerasData.dimensionedPointsAnxin) {
return;
} else {
@ -136,8 +138,9 @@ export class ImageLabelAnxinComponent implements OnInit {
);
}
console.log('原始标点数据', this.camerasData.dimensionedPointsAnxin);
for (const key in this.camerasData.dimensionedPointsAnxin) {
const element = this.camerasData.dimensionedPointsAnxin[key];
for (const key in this.camerasData.dimensionedPointsAnxin.rawData) {
const element = this.camerasData.dimensionedPointsAnxin.rawData[key];
console.log(key, element);
if (element.length !== 0) {
for (let index = 0; index < element.length; index++) {
@ -453,18 +456,36 @@ export class ImageLabelAnxinComponent implements OnInit {
save() {
console.log(this.camerasData.dimensionedPointsAnxin);
if (!this.camerasData.dimensionedPointsAnxin) {
this.camerasData.dimensionedPointsAnxin = {
this.camerasData.dimensionedPointsAnxin = {};
this.camerasData.dimensionedPointsAnxin.rawData = {
: [],
: [],
: [],
: [],
};
this.camerasData.dimensionedPointsAnxin.yamlData = [];
}
console.log('标点数据', this.PolygonData);
let yamlData = [];
for (const key in this.PolygonData) {
const item = this.PolygonData[key];
this.camerasData.dimensionedPointsAnxin[key] = item.Points;
this.camerasData.dimensionedPointsAnxin.rawData[key] = item.Points;
if (item.Points.length !== 0) {
let points = [];
for (const key in item.Points) {
const v = item.Points[key];
points.push(Number((v.x / this.canvasWidth).toFixed(4)));
points.push(Number((v.y / this.canvasHeight).toFixed(4)));
}
let obj = {
type: enum_area[key],
points: points,
};
yamlData.push(obj);
}
}
this.camerasData.dimensionedPointsAnxin.yamlData = yamlData;
let body = {
dimensionedPointsAnxin: JSON.stringify(
this.camerasData.dimensionedPointsAnxin
@ -485,3 +506,10 @@ export class ImageLabelAnxinComponent implements OnInit {
});
}
}
enum enum_area {
'加油区' = 2,
'卸油区' = 3,
'收银区' = 1,
'进出口' = 0,
}

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

@ -48,6 +48,7 @@ import { DetailsComponent } from './video-streaming/details/details.component';
import { NzRadioModule } from 'ng-zorro-antd/radio';
import { HuangHaiConfigComponent } from './host-config/huang-hai-config/huang-hai-config.component';
import { ImageLabelAnxinComponent } from './image-label-anxin/image-label-anxin.component';
import { AnxinConfigComponent } from './host-config/anxin-config/anxin-config.component';
@NgModule({
declarations: [
OrganizationComponent,
@ -77,6 +78,7 @@ import { ImageLabelAnxinComponent } from './image-label-anxin/image-label-anxin.
DetailsComponent,
HuangHaiConfigComponent,
ImageLabelAnxinComponent,
AnxinConfigComponent,
],
imports: [
CommonModule,

Loading…
Cancel
Save