You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
4.8 KiB
153 lines
4.8 KiB
import { Component, OnInit, ViewContainerRef } from '@angular/core'; |
|
import { ActivatedRoute, Route, Router } from '@angular/router'; |
|
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'; |
|
import { NzFormTooltipIcon } from 'ng-zorro-antd/form'; |
|
import { NzModalService } from 'ng-zorro-antd/modal'; |
|
import { AddcameraComponent } from './addcamera/addcamera.component'; |
|
import { NzMessageService } from 'ng-zorro-antd/message'; |
|
import { HttpClient, HttpErrorResponse, HttpResponse } from '@angular/common/http'; |
|
import { EditcameraComponent } from './editcamera/editcamera.component'; |
|
import { catchError, tap } from 'rxjs/operators'; |
|
interface Camera { |
|
name: string; |
|
user: string; |
|
password: string; |
|
uri: string; |
|
type: number |
|
} |
|
|
|
@Component({ |
|
selector: 'app-host-config', |
|
templateUrl: './host-config.component.html', |
|
styleUrls: ['./host-config.component.scss'] |
|
}) |
|
|
|
export class HostConfigComponent implements OnInit { |
|
|
|
|
|
constructor(private router: Router, private route: ActivatedRoute, private fb: FormBuilder, private modal: NzModalService, private message: NzMessageService, private viewContainerRef: ViewContainerRef, private http: HttpClient) { } |
|
|
|
hostId//主机id |
|
orId//加油站id |
|
ngOnInit(): void { |
|
this.hostId = this.route.snapshot.queryParams.hostId |
|
this.orId = this.route.snapshot.queryParams.orId |
|
this.getCamera() |
|
} |
|
listOfData: Camera[] = []; |
|
goback() { |
|
history.go(-1) |
|
} |
|
//摄像头 |
|
getCamera() { |
|
this.http.get('/api/Cameras').subscribe((data: any) => { |
|
this.listOfData = data.items |
|
console.log('摄像头列表', data.items) |
|
}) |
|
} |
|
addCamera() { |
|
const modal = this.modal.create({ |
|
nzTitle: '新增加油站摄像头', |
|
nzContent: AddcameraComponent, |
|
nzViewContainerRef: this.viewContainerRef, |
|
nzWidth: 388, |
|
nzComponentParams: {}, |
|
nzOnOk: async () => { |
|
if (instance.validateForm.valid) { |
|
await new Promise(resolve => { |
|
console.log('表单信息', instance.validateForm) |
|
let body = { |
|
name: instance.validateForm.value.name, |
|
user: instance.validateForm.value.user, |
|
password: instance.validateForm.value.password, |
|
uri: instance.validateForm.value.uri, |
|
type: instance.validateForm.value.type, |
|
organizationId: this.orId |
|
} |
|
this.http.post('/api/Cameras', body).subscribe(data => { |
|
resolve(data) |
|
this.message.create('success', '创建成功!'); |
|
this.getCamera() |
|
return true |
|
}) |
|
}) |
|
} else { |
|
this.message.create('warning', '请填写完整!'); |
|
return false |
|
} |
|
} |
|
}); |
|
const instance = modal.getContentComponent(); |
|
} |
|
editCamera(data) { |
|
console.log(data) |
|
const modal = this.modal.create({ |
|
nzTitle: '编辑加油站摄像头', |
|
nzContent: EditcameraComponent, |
|
nzViewContainerRef: this.viewContainerRef, |
|
nzWidth: 388, |
|
nzComponentParams: { |
|
data: data |
|
}, |
|
nzOnOk: async () => { |
|
if (instance.validateForm.valid) { |
|
await new Promise(resolve => { |
|
console.log('表单信息', instance.validateForm) |
|
let body = { |
|
name: instance.validateForm.value.name, |
|
user: instance.validateForm.value.user, |
|
password: instance.validateForm.value.password, |
|
uri: instance.validateForm.value.uri, |
|
type: instance.validateForm.value.type, |
|
organizationId: this.orId |
|
} |
|
this.http.put(`/api/Cameras/${data.id}`, body).subscribe(data => { |
|
resolve(data) |
|
this.message.create('success', '创建成功!'); |
|
this.getCamera() |
|
return true |
|
}) |
|
}) |
|
} else { |
|
this.message.create('warning', '请填写完整!'); |
|
return false |
|
} |
|
} |
|
}); |
|
const instance = modal.getContentComponent(); |
|
} |
|
deleteCamera(item) { |
|
console.log(item) |
|
this.modal.confirm({ |
|
nzTitle: `确定要删除${item.name}这个摄像头吗?`, |
|
nzOkText: '确定', |
|
nzOkType: 'default', |
|
nzOnOk: () => { |
|
this.http.delete(`/api/Cameras/${item.id}`).subscribe(data => { |
|
this.message.create('success', '删除成功!'); |
|
this.getCamera() |
|
}) |
|
}, |
|
nzCancelText: '取消' |
|
}); |
|
} |
|
|
|
connect() { |
|
let ids = [] |
|
this.listOfData.forEach((item: any) => { |
|
ids.push(item.id) |
|
}) |
|
this.http.get('/api/Cameras/Statuses', { |
|
params: { ids: ids } |
|
}).subscribe({ |
|
next: (data) => { |
|
console.log('连接状态', data) |
|
}, |
|
error: (err) => { |
|
console.log('连接失败', err) |
|
}, |
|
// complete: () => console.log('complete!'), // not called |
|
}) |
|
|
|
} |
|
}
|
|
|