import { Component, OnInit, ViewContainerRef } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { HttpClient } from '@angular/common/http'; import { NzModalService } from 'ng-zorro-antd/modal'; import { GetOutOfLineDetailsComponent } from './get-out-of-line-details/get-out-of-line-details.component'; import { TreeService } from 'src/app/service/tree.service'; import { NavChangeService } from 'src/app/service/navChange.service'; import * as moment from 'moment'; @Component({ selector: 'app-today-warning', templateUrl: './today-warning.component.html', styleUrls: ['./today-warning.component.scss'] }) export class TodayWarningComponent implements OnInit { validateForm!: FormGroup; constructor(private http: HttpClient, private fb: FormBuilder, private toTree: TreeService, private modal: NzModalService, private viewContainerRef: ViewContainerRef, private navChangeService: NavChangeService) { } ngOnInit(): void { this.validateForm = this.fb.group({ level: [null], type: [null], area: [null], datePickerStart: [new Date(`${moment(new Date()).format('YYYY-MM-DD')} 00:00`)], datePickerEnd: [new Date(`${moment(new Date()).format('YYYY-MM-DD')} 23:59`)] }); this.warningType() this.getEarlyWarningList() } //预警类型接口 warningTypes: any //预警接口数据 warningTypesDetails: any warningType() { this.http.get('/api/services/app/Violation/GetAllList').subscribe((data: any) => { this.warningTypesDetails = data.result this.warningTypes = (data.result as any).groupBy((t) => { return t.violationType }); }) } typeChange(e) { this.warningTypes.forEach(element => { if (element.key == e) { this.warningTypesDetails = element } }); } //获得预警列表 list: any = [ ] totalCount: string //预警总数 getEarlyWarningList() { let ViolationIds = [] if (this.validateForm.value.type) { this.warningTypesDetails.forEach(item => { item.id ? ViolationIds.push(item.id) : null }); } let params = { Level: this.validateForm.value.level, ViolationIds: ViolationIds, ViolateArea: this.validateForm.value.area, organizationUnitId: JSON.parse(sessionStorage.getItem('userdataOfgasstation')).organization.id, ViolateTime: (this.validateForm.value.datePickerEnd && this.validateForm.value.datePickerStart) ? [moment(this.validateForm.value.datePickerStart).format('yyyy-MM-DD HH:mm:ss'), moment(this.validateForm.value.datePickerEnd).format('yyyy-MM-DD HH:mm:ss')] : null, SkipCount: '0', MaxResultCount: '9999' } this.http.get('/api/services/app/ViolateRecord/GetAll', { params: params }).subscribe((data: any) => { this.list = data.result.items this.totalCount = data.result.totalCount console.log('预警列表', this.list) let obj = { name: '改变数量', num: this.totalCount } setTimeout(() => { this.navChangeService.sendMessage(obj);//发布一条消息 }, 0); }) } submitForm(): void { for (const i in this.validateForm.controls) { this.validateForm.controls[i].markAsDirty(); this.validateForm.controls[i].updateValueAndValidity(); } this.getEarlyWarningList() } 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({ datePickerStart: new Date(`${moment(new Date()).format('YYYY-MM-DD')} 00:00`), datePickerEnd: new Date(`${moment(new Date()).format('YYYY-MM-DD')} 23:59`) }); this.getEarlyWarningList() } look(item) { const modal = this.modal.create({ nzContent: GetOutOfLineDetailsComponent, nzViewContainerRef: this.viewContainerRef, nzWidth: 1200, nzBodyStyle: { 'border': '1px solid #6d9cc7', 'border-radius': '0px', 'padding': '0px', 'box-shadow': '0 0 8px 0 #fff', 'background': '#000D21', }, nzComponentParams: { data: item }, nzFooter: null, nzOnOk: async () => { } }); const instance = modal.getContentComponent(); } }