import { Component, OnInit, ViewContainerRef } from '@angular/core'; import { NzMessageService } from 'ng-zorro-antd/message'; import { NzModalService } from 'ng-zorro-antd/modal'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { PlanAdjustmentComponent } from './plan-adjustment/plan-adjustment.component' import { HttpClient } from '@angular/common/http'; @Component({ selector: 'app-da-oneself-plan', templateUrl: './da-oneself-plan.component.html', styleUrls: ['./da-oneself-plan.component.scss'] }) export class DaOneselfPlanComponent implements OnInit { constructor(private http: HttpClient, private modal: NzModalService, private message: NzMessageService, private viewContainerRef: ViewContainerRef) { } validateForm!: FormGroup; OrganizationId ngOnInit(): void { this.OrganizationId = JSON.parse(sessionStorage.getItem('userData')).organizationId this.selectedMonth = new Date().getMonth() + 1 this.getAllStation() } selectedMonth selectedYear = 2022 selectedTime selectMonth(item) { this.selectedMonth = item.id // this.getTaskList() } selectYear(e) { this.selectedYear = e console.log('年', e) // this.getTaskList() } months = [ { id: 1, name: '1月', isable: true }, { id: 2, name: '2月', isable: true }, { id: 3, name: '3月', isable: true }, { id: 4, name: '4月', isable: true }, { id: 5, name: '5月', isable: true }, { id: 6, name: '6月', isable: true }, { id: 7, name: '7月', isable: true }, { id: 8, name: '8月', isable: true }, { id: 9, name: '9月', isable: true }, { id: 10, name: '10月', isable: true }, { id: 11, name: '11月', isable: true }, { id: 12, name: '12月', isable: true } ] isExpand = false expand() { this.isExpand = !this.isExpand } formatOne = (percent: number): string => `${percent}%\n完成率`; cardData = [ { name: '双随机', isDetails: false, background: '#1D9DFF', icon: 'suiji.png' }, { name: '行政许可', isDetails: false, background: '#42B983', icon: 'xuke.png' }, { name: '熟悉演练', isDetails: false, background: '#9D80FF', icon: 'yanlian.png' }, { name: '联络指导', isDetails: false, background: '#5483EA', icon: 'zhidao.png' }, { name: '消防宣传', isDetails: false, background: '#FF5D2A', icon: 'xuanchuan.png' }, { name: '投诉举报', isDetails: false, background: '#5087FF', icon: 'tousu.png' }, { name: '火灾调查', isDetails: false, background: '#FF404D', icon: 'huozai.png' } ] openDetails(data, type) { data.isDetails = type } xxx = false radioChange(e) { setTimeout(() => { this.xxx = !this.xxx }, 0); } nodes: any = [] BuildingTypes adjustment() { const modal = this.modal.create({ nzTitle: "任务调整", nzContent: PlanAdjustmentComponent, nzViewContainerRef: this.viewContainerRef, nzWidth: 900, nzComponentParams: { }, nzOnOk: async () => { console.log(123); } }); const instance = modal.getContentComponent(); } //获得辖区下所有救援站 stationData = [] getAllStation() { let params = { ContainsChildren: true, pageSize: 9999 } this.http.get('/api/Organizations', { params: params }).subscribe((data: any) => { data.items = data.items.filter(element => { return element.level == 'squadron' }); data.items.forEach(element => { element.isExpand = false element.isLoading = false }); this.stationData = data.items }) } expandcarditem(item) { item.isExpand = !item.isExpand console.log(item) if (item.isExpand) { this.getTaskListOfStation(item) } } //获得消防站下的所有任务 PageNumber = 1 PageSize = 9999 getTaskListOfStation(item) { let selectedTime = this.selectedYear + '-' + this.selectedMonth + '-' + '01' let params = { Month: selectedTime, CompanyOrganizationId: item.id, PageNumber: this.PageNumber, approvalStatuses: '通过', PageSize: this.PageSize } item.isLoading = true this.http.get('/api/PlanTasks', { params: params }).subscribe({ next: (data: any) => { item.isLoading = false let listData = [ { name: '双随机', background: '#1D9DFF', icon: 'suiji.png', scale: '0/0', data: [] }, { name: '行政许可', background: '#42B983', icon: 'xuke.png', scale: '0/0', data: [] }, { name: '熟悉演练', background: '#9D80FF', icon: 'yanlian.png', scale: '0/0', data: [] }, { name: '联络指导', background: '#5483EA', icon: 'zhidao.png', scale: '0/0', data: [] }, { name: '消防宣传', background: '#FF5D2A', icon: 'xuanchuan.png', scale: '0/0', data: [] }, { name: '投诉举报', background: '#5087FF', icon: 'tousu.png', scale: '0/0', data: [] }, { name: '火灾调查', background: '#FF404D', icon: 'huozai.png', scale: '0/0', data: [] } ] data.items.forEach(element => { listData.forEach((item, key) => { element.taskType == item.name ? listData[key].data.push(element) : null }); }); for (let index = 0; index < listData.length; index++) { const element = listData[index]; if (element.data.length == 0) { listData.splice(index, 1) index-- } } item.data = listData // console.log('点击的救援站通过数据', item) }, error: (err) => { this.message.create('warning', '获取数据失败'); item.isLoading = false } }) } }