| import { Component, OnInit } from '@angular/core'; | 
| import { NzMessageService } from 'ng-zorro-antd'; | 
| import { getInstaller, deleteInstaller } from '../../../../../_mock/installer.service'; | 
|   | 
| @Component({ | 
|   selector: 'app-installer', | 
|   templateUrl: './installer.component.html', | 
|   styles: [] | 
| }) | 
| export class InstallerComponent implements OnInit { | 
|   | 
|   q: any = { | 
|     pi: 1, | 
|     ps: 10, | 
|     sorter: '', | 
|     u_name: '', | 
|     u_mobile: '' | 
|   }; | 
|   data: any[] = []; | 
|   loading = false; | 
|   selectedRows: any[] = []; | 
|   curRows: any[] = []; | 
|   allChecked = false; | 
|   indeterminate = false; | 
|   | 
|   sortMap: any = {}; | 
|   modalVisible = false; | 
|   | 
|   constructor(public msg: NzMessageService) {} | 
|   | 
|   ngOnInit() { | 
|     this.getData(); | 
|   } | 
|   | 
|   getData() { | 
|     this.pageChange(1).then(() => { | 
|       this.data = getInstaller(this.q); | 
|     }); | 
|   } | 
|   | 
|   add() { | 
|     this.modalVisible = true; | 
|   } | 
|   | 
|   save() { | 
|   | 
|   } | 
|   | 
|   remove() { | 
|     this.selectedRows.forEach(i => deleteInstaller(i.name)); | 
|     this.getData(); | 
|   } | 
|   | 
|   approval() { | 
|     this.msg.success(`审批了 ${this.selectedRows.length} 笔`); | 
|   } | 
|   | 
|   checkAll(value: boolean) { | 
|     this.curRows.forEach(i => { | 
|       if (!i.disabled) i.checked = value; | 
|     }); | 
|     this.refreshStatus(); | 
|   } | 
|   | 
|   refreshStatus() { | 
|     const allChecked = this.curRows.every(value => value.disabled || value.checked); | 
|     const allUnChecked = this.curRows.every(value => value.disabled || !value.checked); | 
|     this.allChecked = allChecked; | 
|     this.indeterminate = (!allChecked) && (!allUnChecked); | 
|     this.selectedRows = this.data.filter(value => value.checked); | 
|   } | 
|   | 
|   sort(field: string, value: any) { | 
|     this.sortMap = {}; | 
|     this.sortMap[field] = value; | 
|     this.q.sorter = value ? `${field}_${value}` : ''; | 
|     this.getData(); | 
|   } | 
|   | 
|   dataChange(res: any) { | 
|     this.curRows = res; | 
|     this.refreshStatus(); | 
|   } | 
|   | 
|   pageChange(pi: number): Promise<any> { | 
|     this.q.pi = pi; | 
|     this.loading = true; | 
|     return new Promise((resolve) => { | 
|       setTimeout(() => { | 
|         this.loading = false; | 
|         resolve(); | 
|       }, 500); | 
|     }); | 
|   } | 
|   | 
|   reset(ls: any[]) { | 
|     for (const item of ls) item.value = false; | 
|     this.getData(); | 
|   } | 
| } |