import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { NzModalService } from '../../../ng-zorro/ng-zorro-antd.module'; import { DataAnalysisFormComponent } from '../data-analysis-form/data-analysis-form.component'; import { DataAnalysisService } from '../data-analysis.service'; @Component({ selector: 'data-analysis-list', templateUrl: './data-analysis-list.component.html', styleUrls: ['./data-analysis-list.component.less'], }) export class DataAnalysisListComponent implements OnInit { _allChecked = false; _disabledButton = true; _checkedNumber = 0; _displayData: string[]= []; _dataSet = []; _indeterminate = false; constructor(private router: Router, private dataAnalysisServ: DataAnalysisService, private modalServ: NzModalService) { } showAnalysisForm(): void { const subscription = this.modalServ.open({ title: '新建分析', content: DataAnalysisFormComponent, footer: false, }); subscription.subscribe(result => { if (result === 'success') { subscription.destroy(); this.getAnalysisList(); } }); } getAnalysisList(pageNum?: number, pageSize?: number): void { this.dataAnalysisServ.getAnalysisList(pageNum, pageSize).then(data => { this._dataSet = data.results; this._displayData = this._dataSet; }); } toDetail(analysisId: number): void { console.log(analysisId); this.router.navigate([`${analysisId}`]); } deleteAnalysis(id?: number): void { const that = this; const ids = id ? [id] : []; this._displayData.forEach((data, index) => { if (data.checked) { ids.push(data.id); } }); if (ids.length === 0) { const modal = this.modalServ.warning({ title: '请选择条目' }); setTimeout(() => modal.destroy(), 1000); return; } this.modalServ.confirm({ title: '确认要删除?', content: '删除后将无法恢复', showConfirmLoading: true, onOk() { that.dataAnalysisServ.deleteAnalysis(ids.join(',')).then(data => { if (data.code === 200) that.getAnalysisList(); }); } }); } _displayDataChange($event: object[]) { this._displayData = $event; } _checkAll(value) { if (value) { this._displayData.forEach(data => data.checked = true); } else { this._displayData.forEach(data => data.checked = false); } this._refreshStatus(); }; _refreshStatus() { const allChecked = this._displayData.every(value => value.checked === true); const allUnChecked = this._displayData.every(value => !value.checked); this._allChecked = allChecked; // 部分选中 this._indeterminate = (!allChecked) && (!allUnChecked); this._disabledButton = !this._dataSet.some(value => value.checked); this._checkedNumber = this._dataSet.filter(value => value.checked).length; }; ngOnInit() { this.getAnalysisList(); } }