|  |  |  | 
|---|
|  |  |  | import { Component, OnInit } from '@angular/core'; | 
|---|
|  |  |  | import { NzMessageService } from 'ng-zorro-antd'; | 
|---|
|  |  |  | import { ModalHelper } from '@delon/theme'; | 
|---|
|  |  |  | import { _HttpClient } from '@delon/theme'; | 
|---|
|  |  |  | import { getInstaller, deleteInstaller } from '../../../../../_mock/installer.service'; | 
|---|
|  |  |  | import * as moment from 'moment'; | 
|---|
|  |  |  | import { UserInstallerEditComponent } from './edit/edit.component'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Component({ | 
|---|
|  |  |  | selector: 'app-installer', | 
|---|
|  |  |  | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | export class InstallerComponent implements OnInit { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | constructor() { } | 
|---|
|  |  |  | q: any = { | 
|---|
|  |  |  | pi: 1, | 
|---|
|  |  |  | ps: 10, | 
|---|
|  |  |  | sorter: '', | 
|---|
|  |  |  | u_name: '', | 
|---|
|  |  |  | u_mobile: '' | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | data: any[] = []; | 
|---|
|  |  |  | total: 0; | 
|---|
|  |  |  | selectedRows: any[] = []; | 
|---|
|  |  |  | curRows: any[] = []; | 
|---|
|  |  |  | allChecked = false; | 
|---|
|  |  |  | indeterminate = false; | 
|---|
|  |  |  | sortMap: any = {}; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | constructor( | 
|---|
|  |  |  | public http: _HttpClient, | 
|---|
|  |  |  | public msgSrv: NzMessageService, | 
|---|
|  |  |  | private modalHelper: ModalHelper) {} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ngOnInit() { | 
|---|
|  |  |  | this.load(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | load(reload: boolean = false) { | 
|---|
|  |  |  | if (reload) { | 
|---|
|  |  |  | this.q.pi = 1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.http.get('./assets/users-installer-data.json', this.q).subscribe((res: any) => { | 
|---|
|  |  |  | let data = res.data; | 
|---|
|  |  |  | const total = res.total; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (this.q.sorter !== '') { | 
|---|
|  |  |  | const s = this.q.sorter.split('_'); | 
|---|
|  |  |  | data.sort((prev, next) => { | 
|---|
|  |  |  | if (s[1] === 'descend') { | 
|---|
|  |  |  | return moment(next[s[0]]).unix() - moment(prev[s[0]]).unix(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return moment(prev[s[0]]).unix() - moment(next[s[0]]).unix(); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (this.q.u_name) { | 
|---|
|  |  |  | data = data.filter(d => d.name.indexOf(this.q.u_name) > -1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.q.u_mobile) { | 
|---|
|  |  |  | data = data.filter(d => d.mobile.toString().indexOf(this.q.u_mobile) > -1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const start = (this.q.pi - 1) * this.q.ps; | 
|---|
|  |  |  | this.data = data.slice(start, start + this.q.ps); | 
|---|
|  |  |  | this.total = total; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | edit(user) { | 
|---|
|  |  |  | this.modalHelper.static(UserInstallerEditComponent, { user }).subscribe(() => { | 
|---|
|  |  |  | this.load(true); | 
|---|
|  |  |  | this.msgSrv.info('回调,重新发起列表刷新'); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | add() { | 
|---|
|  |  |  | const user = {}; | 
|---|
|  |  |  | this.modalHelper.static(UserInstallerEditComponent, { user }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | save() { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | remove() { | 
|---|
|  |  |  | this.selectedRows.forEach(i => deleteInstaller(i.name)); | 
|---|
|  |  |  | this.load(true); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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.load(true); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | reset(ls: any[]) { | 
|---|
|  |  |  | for (const item of ls) item.value = false; | 
|---|
|  |  |  | this.load(true); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // Popconfirm | 
|---|
|  |  |  | popConfirm(i) { | 
|---|
|  |  |  | this.msgSrv.success('Next step.'); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | popCancel() { | 
|---|
|  |  |  | this.msgSrv.error('Click on No'); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|