| import {Component, OnInit} from '@angular/core'; | 
| import {NzMessageService, NzModalService} from 'ng-zorro-antd'; | 
| import {ModalHelper} from '@delon/theme'; | 
| import {HttpClient} from '@angular/common/http'; | 
| import {environment} from '../../../../environments/environment'; | 
| import {DateService} from '@business/services/util/date.service'; | 
| import {AlarmUserEditComponent} from './alarm-user-edit/alarm-user-edit.component'; | 
|   | 
| @Component({ | 
|   selector: 'app-alarm-user', | 
|   templateUrl: './alarm-user.component.html', | 
|   styles: [] | 
| }) | 
| export class AlarmUserComponent implements OnInit { | 
|   | 
|   isDeleteOptions = [ | 
|     {value: '1', label: '是'}, | 
|     {value: '0', label: '否'} | 
|   ]; | 
|   | 
|   query: any = { | 
|     pageIndex: 1, | 
|     pageSize: 10, | 
|     isDelete: this.isDeleteOptions[1].value | 
|   }; | 
|   data: any[] = []; | 
|   total: 0; | 
|   | 
|   selectedRows: any[] = []; | 
|   allChecked = false; | 
|   indeterminate = false; | 
|   sortMap: string[] = []; | 
|   loading = true; | 
|   | 
|   constructor( | 
|     public http: HttpClient, | 
|     private confirmServ: NzModalService, | 
|     public dateSrv: DateService, | 
|     public msgSrv: NzMessageService, | 
|     private modalHelper: ModalHelper | 
|   ) { | 
|   | 
|   } | 
|   | 
|   load(reload: boolean = false) { | 
|     if (reload) { | 
|       this.query.pageIndex = 1; | 
|     } | 
|     this.http.get(environment.SERVER_BASH_URL + '/alarmUser/list', {params: this.query}).subscribe((res: any) => { | 
|       this.data = res.data.data; | 
|       this.total = res.data.total; | 
|   | 
|       this.refreshStatus(); | 
|       this.loading = false; | 
|     }); | 
|   } | 
|   | 
|   ngOnInit() { | 
|     this.load(); | 
|   } | 
|   | 
|   edit(alarmUser?: any) { | 
|     if (!alarmUser) { | 
|       alarmUser = {}; | 
|     } | 
|     this.modalHelper.static(AlarmUserEditComponent, {alarmUser}).subscribe((res: any) => { | 
|       if (res.code === 0) { | 
|         this.msgSrv.error(res.message); | 
|       } else { | 
|         this.msgSrv.success('账户保存成功!'); | 
|         this.load(true); | 
|       } | 
|     }); | 
|   } | 
|   | 
|   remove() { | 
|     const ids: number[] = []; | 
|     this.confirmServ.confirm({ | 
|       title: '批量删除', | 
|       content: '确定要删除该数据吗?', | 
|       okText: '确定', | 
|       cancelText: '取消' | 
|     }).on('onOk', () => { | 
|       this.selectedRows.forEach(i => { | 
|         ids.push(i.id); | 
|       }); | 
|       this.delete(...ids); | 
|     }); | 
|   } | 
|   | 
|   delete(...ids: number[]) { | 
|     this.http.post(environment.SERVER_BASH_URL + '/alarmUser/ids', ids).subscribe((res: any) => { | 
|       if (res.data > 0) { | 
|         this.msgSrv.success('账户删除成功!'); | 
|         this.load(true); | 
|       } else { | 
|         this.msgSrv.error(res.message); | 
|       } | 
|     }); | 
|   } | 
|   | 
|   checkAll(value: boolean) { | 
|     this.data.forEach(i => { | 
|       if (i.isDelete === '1') { | 
|         i.checked = false; | 
|       } else { | 
|         i.checked = value; | 
|       } | 
|     }); | 
|     this.refreshStatus(); | 
|   } | 
|   | 
|   refreshStatus() { | 
|     const allChecked = this.data.every(value => value.checked); | 
|     const allUnChecked = this.data.every(value => !value.checked); | 
|     this.allChecked = allChecked; | 
|     this.indeterminate = (!allChecked) && (!allUnChecked); | 
|     this.selectedRows = this.data.filter(value => value.checked); | 
|   } | 
|   | 
|   sort(field: string, value: any) { | 
|     const temp = this.sortMap; | 
|     this.sortMap = []; | 
|     temp.forEach(i => { | 
|       if (!i.startsWith(field)) { | 
|         this.sortMap.push(i); | 
|       } | 
|     }); | 
|     if (value) { | 
|       this.sortMap.push(`${field} ${value}`); | 
|     } | 
|     this.query.sorter = this.sortMap.length > 0 ? this.sortMap.join(',') : ''; | 
|     this.load(true); | 
|   } | 
|   | 
|   format_date(date) { | 
|     if (date) { | 
|       return this.dateSrv.date_format(date, 'YYYY-MM-DD'); | 
|     } | 
|   } | 
| } |