|  |  | 
 |  |  |             <div nz-form-explain *ngIf="validateForm.controls.accountName.dirty && validateForm.controls.accountName.hasError('unique')">账号不允许重复!</div> | 
 |  |  |         </div> | 
 |  |  |         <div nz-form-label nz-col [nzSpan]="4"> | 
 |  |  |             <label nz-form-item-required>电话</label> | 
 |  |  |             <label>电话</label> | 
 |  |  |         </div> | 
 |  |  |         <div nz-form-control nz-col [nzSpan]="8" nzHasFeedback> | 
 |  |  |             <input nz-input maxlength="11" formControlName="mobile" required/> | 
 |  |  |             <input nz-input maxlength="11" formControlName="mobile" /> | 
 |  |  |         </div> | 
 |  |  |     </div> | 
 |  |  |     <div nz-form-item nz-row class="mb-sm"> | 
 |  |  | 
 |  |  |     </div> | 
 |  |  |     <div nz-form-item nz-row class="mb-sm"> | 
 |  |  |         <div nz-form-label nz-col [nzSpan]="4"> | 
 |  |  |             <label>组织</label> | 
 |  |  |             <label nz-form-item-required>组织</label> | 
 |  |  |         </div> | 
 |  |  |         <div nz-form-control nz-col [nzSpan]="8" > | 
 |  |  |         <div nz-form-control nz-col [nzSpan]="8" nzHasFeedback> | 
 |  |  |             <nz-select style="width: 290px;" nzAllowClear [nzPlaceHolder]="'input search text'" [nzFilter]="false" nzShowSearch  | 
 |  |  |                 formControlName="organizationId" (nzSearchChange)="searchChange($event)" [nzNotFoundContent]="'无法找到'" >  | 
 |  |  |                 <nz-option *ngFor="let option of searchOptions"  [nzLabel]="option['name']" [nzValue]="option['id']"> </nz-option>  | 
 
 |  |  | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   ngOnInit() { | 
 |  |  |     const account = this.account; | 
 |  |  |     this.validateForm = this.formBuilder.group({ | 
 |  |  |       accountName: [this.account.accountName], | 
 |  |  |       mobile: [this.account.mobile], | 
 |  |  |       email: [this.account.email], | 
 |  |  |       weixin: [this.account.weixin], | 
 |  |  |       organizationId: [this.account.organizationId], | 
 |  |  |       expireTime: [this.account.expireTime], | 
 |  |  |       id: [this.account.id]
 | 
 |  |  |       accountName: [account.accountName], | 
 |  |  |       mobile: [account.mobile], | 
 |  |  |       email: [account.email], | 
 |  |  |       weixin: [account.weixin], | 
 |  |  |       organizationId: [account.organizationId], | 
 |  |  |       expireTime: [account.expireTime], | 
 |  |  |       id: [account.id]
 | 
 |  |  |     }); | 
 |  |  |     this.searchOptions = this.account.organization ? [this.account.organization] : []; | 
 |  |  |     this.searchOptions = account.organization ? [account.organization] : []; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   save() { | 
 |  |  |     if (this.validateForm.valid) { | 
 |  |  |       for (const i in this.validateForm.controls) { | 
 |  |  |         this.validateForm.controls[i].disable(); | 
 |  |  |     const validateForm = this.validateForm; | 
 |  |  |     const controls = validateForm.controls; | 
 |  |  |     if (validateForm.valid) { | 
 |  |  |       for (const i in controls) { | 
 |  |  |         controls[i].disable(); | 
 |  |  |       } | 
 |  |  |       this.http.post(environment.SERVER_BASH_URL + '/account/account', this.validateForm.value).subscribe(() => { | 
 |  |  |       this.http.post(environment.SERVER_BASH_URL + '/account/account', validateForm.value).subscribe(() => { | 
 |  |  |         this.subject.next('true'); | 
 |  |  |         this.close(); | 
 |  |  |       }); | 
 |  |  |     } else { | 
 |  |  |       for (const i in this.validateForm.controls) { | 
 |  |  |         this.validateForm.controls[i].markAsDirty(); | 
 |  |  |       for (const i in controls) { | 
 |  |  |         controls[i].markAsDirty(); | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   check(accountName) { | 
 |  |  |     const controlsAccountName = this.validateForm.controls.accountName; | 
 |  |  |     if (accountName) { | 
 |  |  |       this.http.get(environment.SERVER_BASH_URL + '/account/' + accountName).subscribe((res: any) => { | 
 |  |  |         if (res.data > 0) { | 
 |  |  |           this.validateForm.controls.accountName.setErrors({unique: true}); | 
 |  |  |           controlsAccountName.setErrors({unique: true}); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     } else { | 
 |  |  |       this.validateForm.controls.accountName.setErrors({required: true}); | 
 |  |  |       controlsAccountName.setErrors({required: true}); | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | } | 
 
 |  |  | 
 |  |  |  | 
 |  |  | export class AccountComponent implements OnInit { | 
 |  |  |  | 
 |  |  |   isDeleteOptions = [ | 
 |  |  |   private isDeleteOptions = [ | 
 |  |  |     {value: '1', label: '是'}, | 
 |  |  |     {value: '0', label: '否'} | 
 |  |  |   ]; | 
 
 |  |  | 
 |  |  | <div class="modal-header"> | 
 |  |  |     <div class="modal-title">{{alarmUser.id > 0 ? '编辑' : '添加'}} - 报警用户</div> | 
 |  |  | </div> | 
 |  |  | <form #f="ngForm" (ngSubmit)="save()" nz-form [nzType]="'horizontal'" [formGroup]="validateForm"> | 
 |  |  | <form (ngSubmit)="save()" nz-form [nzType]="'horizontal'" [formGroup]="validateForm"> | 
 |  |  |     <div nz-form-item nz-row class="mb-sm"> | 
 |  |  |         <div nz-form-label nz-col [nzSpan]="4"> | 
 |  |  |             <label>用户名</label> | 
 
 |  |  | 
 |  |  |   ) {} | 
 |  |  |  | 
 |  |  |   ngOnInit() { | 
 |  |  |     const alarmUser = this.alarmUser; | 
 |  |  |     this.validateForm = this.formBuilder.group({ | 
 |  |  |       name: [this.alarmUser.name], | 
 |  |  |       mobile: [this.alarmUser.mobile, [Validators.pattern("^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$")]], | 
 |  |  |       email: [this.alarmUser.email,[Validators.email]], | 
 |  |  |       weixin: [this.alarmUser.weixin], | 
 |  |  |       organizationId: [this.alarmUser.organizationId], | 
 |  |  |       expireTime: [this.alarmUser.expireTime], | 
 |  |  |       id: [this.alarmUser.id] | 
 |  |  |       name: [alarmUser.name], | 
 |  |  |       mobile: [alarmUser.mobile, [Validators.pattern("^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$")]], | 
 |  |  |       email: [alarmUser.email, [Validators.email]], | 
 |  |  |       weixin: [alarmUser.weixin], | 
 |  |  |       organizationId: [alarmUser.organizationId], | 
 |  |  |       expireTime: [alarmUser.expireTime], | 
 |  |  |       id: [alarmUser.id] | 
 |  |  |     }); | 
 |  |  |     this.searchOptions = this.alarmUser.organization ? [this.alarmUser.organization] : []; | 
 |  |  |     this.searchOptions = alarmUser.organization ? [alarmUser.organization] : []; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   save() { | 
 |  |  |     if (this.validateForm.valid) { | 
 |  |  |       for (const i in this.validateForm.controls) { | 
 |  |  |         this.validateForm.controls[i].disable(); | 
 |  |  |     const validateForm = this.validateForm; | 
 |  |  |     const controls = validateForm.controls; | 
 |  |  |     if (validateForm.valid) { | 
 |  |  |       for (const i in controls) { | 
 |  |  |         controls[i].disable(); | 
 |  |  |       } | 
 |  |  |       this.http.post(environment.SERVER_BASH_URL + '/alarmUser/alarmUser', this.validateForm.value).subscribe(() => { | 
 |  |  |       this.http.post(environment.SERVER_BASH_URL + '/alarmUser/alarmUser', validateForm.value).subscribe(() => { | 
 |  |  |         this.subject.next('true'); | 
 |  |  |         this.close(); | 
 |  |  |       }); | 
 |  |  |     } else { | 
 |  |  |       for (const i in this.validateForm.controls) { | 
 |  |  |         this.validateForm.controls[i].markAsDirty(); | 
 |  |  |       for (const i in controls) { | 
 |  |  |         controls[i].markAsDirty(); | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   } | 
 
 |  |  | 
 |  |  | <div class="modal-header"> | 
 |  |  |   <div class="modal-title">{{user.id > 0 ? '编辑' : '添加'}} - 安装用户</div> | 
 |  |  | </div> | 
 |  |  | <form #f="ngForm" (ngSubmit)="save()" nz-form [nzType]="'horizontal'"> | 
 |  |  | <form (ngSubmit)="save()" nz-form [nzType]="'horizontal'"  [formGroup]="validateForm"> | 
 |  |  |   <div nz-form-item nz-row class="mb-sm"> | 
 |  |  |     <div nz-form-label nz-col [nzSpan]="4"><label>姓名</label></div> | 
 |  |  |     <div nz-form-control nz-col [nzSpan]="8"> | 
 |  |  |       <input nz-input [(ngModel)]="user.name" name="name" maxlength="30" required /> | 
 |  |  |     <div nz-form-label nz-col [nzSpan]="4"><label nz-form-item-required>姓名</label></div> | 
 |  |  |     <div nz-form-control nz-col [nzSpan]="8" nzHasFeedback> | 
 |  |  |       <input nz-input formControlName="name" maxlength="30" required /> | 
 |  |  |     </div> | 
 |  |  |     <div nz-form-label nz-col [nzSpan]="4"><label>账号</label></div> | 
 |  |  |     <div nz-form-control nz-col [nzSpan]="8"> | 
 |  |  |       <input nz-input [(ngModel)]="user.mobile" name="mobile" maxlength="11" required /> | 
 |  |  |     <div nz-form-label nz-col [nzSpan]="4"><label nz-form-item-required>账号/电话</label></div> | 
 |  |  |     <div nz-form-control nz-col [nzSpan]="8" nzHasFeedback> | 
 |  |  |       <input nz-input formControlName="mobile" maxlength="11" required /> | 
 |  |  |     </div> | 
 |  |  |   </div> | 
 |  |  |   <div nz-form-item nz-row class="mb-sm"> | 
 |  |  |     <div nz-form-label nz-col [nzSpan]="4"><label>电子邮件</label></div> | 
 |  |  |     <div nz-form-control nz-col [nzSpan]="8"> | 
 |  |  |       <input nz-input [(ngModel)]="user.email" name="email" required /> | 
 |  |  |       <input nz-input formControlName="email"/> | 
 |  |  |     </div> | 
 |  |  |     <div nz-form-label nz-col [nzSpan]="4"><label>微信号</label></div> | 
 |  |  |     <div nz-form-control nz-col [nzSpan]="8"> | 
 |  |  |       <input nz-input [(ngModel)]="user.weixin" name="weixin" /> | 
 |  |  |       <input nz-input formControlName="weixin" /> | 
 |  |  |     </div> | 
 |  |  |   </div> | 
 |  |  |   <div nz-form-item nz-row class="mb-sm"> | 
 |  |  |     <div nz-form-label nz-col [nzSpan]="4"><label>组织</label></div> | 
 |  |  |     <div nz-form-control nz-col [nzSpan]="8"> | 
 |  |  |       <input nz-input [(ngModel)]="user.organizationId" name="organizationId" maxlength="20" placeholder="20字以内" /> | 
 |  |  |     </div> | 
 |  |  |     <div nz-form-label nz-col [nzSpan]="4"><label>密码</label></div> | 
 |  |  |     <div nz-form-control nz-col [nzSpan]="8"> | 
 |  |  |       <input nz-input [(ngModel)]="user.password" name="password" maxlength="30" placeholder="30字以内" required /> | 
 |  |  |     </div> | 
 |  |  |   </div> | 
 |  |  |   <div nz-form-item nz-row class="mb-sm"> | 
 |  |  |     <div nz-form-label nz-col [nzSpan]="4"><label>创建日期</label></div> | 
 |  |  |     <div nz-form-control nz-col [nzSpan]="8"> | 
 |  |  |       <div nz-form-control [nzValidateStatus]="createTime"> | 
 |  |  |         <nz-datepicker [(ngModel)]="user.createTime" name="createTime"></nz-datepicker> | 
 |  |  |       </div> | 
 |  |  |       <input nz-input formControlName="organizationId" maxlength="20" placeholder="20字以内" /> | 
 |  |  |     </div> | 
 |  |  |     <div nz-form-label nz-col [nzSpan]="4"><label>过期日期</label></div> | 
 |  |  |     <div nz-form-control nz-col [nzSpan]="8"> | 
 |  |  |       <div nz-form-control [nzValidateStatus]="expireTime"> | 
 |  |  |         <nz-datepicker [(ngModel)]="user.expireTime" name="expireTime"></nz-datepicker> | 
 |  |  |       <div nz-form-control > | 
 |  |  |         <nz-datepicker style="width: 290px;" formControlName="expireTime"></nz-datepicker> | 
 |  |  |       </div> | 
 |  |  |     </div> | 
 |  |  |   </div> | 
 
 |  |  | 
 |  |  | import { HttpClient } from '@angular/common/http'; | 
 |  |  | import { environment } from '../../../../../environments/environment'; | 
 |  |  | import { DateService } from '../../../../core/services/date.service'; | 
 |  |  | import {FormGroup, FormBuilder, FormControl, Validators} from '@angular/forms'; | 
 |  |  |  | 
 |  |  | @Component({ | 
 |  |  |   selector: 'app-edit', | 
 |  |  | 
 |  |  | export class UserInstallerEditComponent implements OnInit { | 
 |  |  |  | 
 |  |  |   user: any; | 
 |  |  |   private validateForm: FormGroup; | 
 |  |  |  | 
 |  |  |   constructor( | 
 |  |  |     private modalHelper: ModalHelper, | 
 |  |  |     private subject: NzModalSubject, | 
 |  |  |     public dateSrv: DateService, | 
 |  |  |     public msgSrv: NzMessageService, | 
 |  |  |     public http: HttpClient) { } | 
 |  |  |     public http: HttpClient, | 
 |  |  |     private formBuilder: FormBuilder | 
 |  |  |   ) {} | 
 |  |  |  | 
 |  |  |   ngOnInit() { | 
 |  |  | //    if (this.user.id > 0) { | 
 |  |  | //      this.http.get(environment.SERVER_BASH_URL + '/user/operate_user/' + this.user.id).subscribe((res: any) => { | 
 |  |  | //        this.user = res; | 
 |  |  | //        this.user.createTime = this.dateSrv.date_format(this.user.createTime, 'YYYY-MM-DD'); | 
 |  |  | //        this.user.expireTime = this.dateSrv.date_format(this.user.expireTime, 'YYYY-MM-DD'); | 
 |  |  | //      }); | 
 |  |  | //    } else { | 
 |  |  | //      this.user.createTime = this.dateSrv.today('YYYY-MM-DD'); | 
 |  |  | //      this.user.expireTime = this.dateSrv.today('YYYY-MM-DD'); | 
 |  |  | //    } | 
 |  |  |     const user = this.user; | 
 |  |  |     this.validateForm = this.formBuilder.group({ | 
 |  |  |       name: [user.name], | 
 |  |  |       mobile: [user.mobile, [Validators.pattern("^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$")]], | 
 |  |  |       email: [user.email], | 
 |  |  |       weixin: [user.weixin], | 
 |  |  |       organizationId: [user.organizationId], | 
 |  |  |       expireTime: [user.expireTime], | 
 |  |  |       id: [user.id] | 
 |  |  |     }); | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   save() { | 
 |  |  |     if (this.user.name == null || this.user.name === '') { | 
 |  |  |       this.msgSrv.error('请输入姓名'); | 
 |  |  |     } else if (this.user.mobile == null || this.user.mobile === '') { | 
 |  |  |       this.msgSrv.error('请输入账号'); | 
 |  |  |     } else if (this.user.email == null || this.user.email === '') { | 
 |  |  |       this.msgSrv.error('请输入电子邮件'); | 
 |  |  |     } else if (this.user.password == null || this.user.password === '') { | 
 |  |  |       this.msgSrv.error('请输入密码'); | 
 |  |  |     } else { | 
 |  |  |       this.http.post(environment.SERVER_BASH_URL + '/operateUser/operateUser', this.user).subscribe(() => { | 
 |  |  |     const validateForm = this.validateForm; | 
 |  |  |     const controls = validateForm.controls; | 
 |  |  |     if (validateForm.valid) { | 
 |  |  |       for (const i in controls) { | 
 |  |  |         controls[i].disable(); | 
 |  |  |       } | 
 |  |  |       this.http.post(environment.SERVER_BASH_URL + '/operateUser/operateUser', validateForm.value).subscribe(() => { | 
 |  |  |         this.subject.next('true'); | 
 |  |  |         this.close(); | 
 |  |  |       }); | 
 |  |  |     } else { | 
 |  |  |       for (const i in controls) { | 
 |  |  |         controls[i].markAsDirty(); | 
 |  |  |     } | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   close() { | 
 |  |  |     this.subject.destroy(); | 
 |  |  |   } | 
 
 |  |  | 
 |  |  |       </div> | 
 |  |  |       <div nz-col [nzSpan]="8" class="mb-md"> | 
 |  |  |         <div nz-form-item class="d-flex"> | 
 |  |  |           <div nz-form-label><label for="u_mobile">账号</label></div> | 
 |  |  |           <div nz-form-label><label for="u_mobile">账号/电话</label></div> | 
 |  |  |           <div nz-form-control class="flex-1"> | 
 |  |  |             <nz-input [(ngModel)]="q.u_mobile" name="u_mobile" [nzSize]="'large'" [nzPlaceHolder]="'请输入账号'" nzId="u_mobile"></nz-input> | 
 |  |  |           </div> | 
 |  |  | 
 |  |  |       </div> | 
 |  |  |       <div nz-col [nzSpan]="8" class="mb-md"> | 
 |  |  |         <button nz-button type="submit" [nzType]="'primary'" [nzLoading]="loading" [nzSize]="'large'">查询</button> | 
 |  |  |         <button nz-button type="reset" (click)="load(true)" [nzSize]="'large'" class="mx-sm">重置</button> | 
 |  |  |         <button nz-button type="reset" [nzSize]="'large'" class="mx-sm">重置</button> | 
 |  |  |       </div> | 
 |  |  |     </div> | 
 |  |  |   </form> | 
 |  |  | 
 |  |  |   </div> | 
 |  |  |   <nz-table #nzTable | 
 |  |  |             [nzAjaxData]="data" | 
 |  |  |             [nzLoading]="http.loading" | 
 |  |  |             [nzLoading]="loading" | 
 |  |  |             [nzTotal]="total" | 
 |  |  |             [(nzPageIndex)]="q.pi" | 
 |  |  |             [nzPageSize]="q.ps" | 
 |  |  | 
 |  |  |         <label nz-checkbox [(ngModel)]="allChecked" [nzIndeterminate]="indeterminate" (ngModelChange)="checkAll($event)"></label> | 
 |  |  |       </th> | 
 |  |  |       <th nz-th><span>姓名</span></th> | 
 |  |  |       <th nz-th><span>账号</span></th> | 
 |  |  |       <th nz-th><span>账号/电话</span></th> | 
 |  |  |       <th nz-th><span>电子邮件</span></th> | 
 |  |  |       <th nz-th><span>微信号</span></th> | 
 |  |  |       <th nz-th><span>密码</span></th> | 
 |  |  |       <th nz-th><span>组织</span></th> | 
 |  |  |       <th nz-th><span>创建日期</span></th> | 
 |  |  |       <th nz-th> | 
 |  |  | 
 |  |  |       <td nz-td>{{i.mobile}}</td> | 
 |  |  |       <td nz-td>{{i.email}}</td> | 
 |  |  |       <td nz-td>{{i.weixin}}</td> | 
 |  |  |       <td nz-td>{{i.password}}</td> | 
 |  |  |       <td nz-td>{{i.organizationId}}</td> | 
 |  |  |       <td nz-td>{{format_date(i.createTime)}}</td> | 
 |  |  |       <td nz-td>{{format_date(i.expireTime)}}</td> | 
 |  |  |       <td nz-td> | 
 |  |  |         <a (click)="edit(i)">编辑</a> | 
 |  |  |         <ng-container *ngIf="i.isDelete == '0'"> | 
 |  |  |         <span nz-table-divider></span> | 
 |  |  |           <nz-popconfirm [nzTitle]="'确定要删除该用户吗?'" [nzOkText]="'Yes'" [nzCancelText]="'No'" (nzOnConfirm)="delete(i)" > | 
 |  |  |             <a nz-popconfirm>删除</a> | 
 |  |  |           </nz-popconfirm> | 
 |  |  |          </ng-container> | 
 |  |  |       </td> | 
 |  |  |     </tr> | 
 |  |  |     </tbody> | 
 
 |  |  | 
 |  |  |   allChecked = false; | 
 |  |  |   indeterminate = false; | 
 |  |  |   sortMap: any = {}; | 
 |  |  |   loading: boolean = true; | 
 |  |  |  | 
 |  |  |   constructor( | 
 |  |  |     public http: HttpClient, | 
 |  |  | 
 |  |  |       this.q.pi = 1; | 
 |  |  |     } | 
 |  |  |     this.http.get(environment.SERVER_BASH_URL + '/operateUser/list', {params: 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; | 
 |  |  |  | 
 |  |  |       this.data = res.data.data; | 
 |  |  |       this.total = res.data.total; | 
 |  |  |       this.dataChange(this.data); | 
 |  |  |  | 
 |  |  |       this.loading = false; | 
 |  |  |     }); | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | 
 |  |  |       ids.push(i.id); | 
 |  |  |     }); | 
 |  |  |     this.http.post(environment.SERVER_BASH_URL + '/operateUser/operateUsers/ids', ids).subscribe((res: any) => { | 
 |  |  |       this.msgSrv.success('安装用户删除成功!'); | 
 |  |  |       this.load(true); | 
 |  |  |     }); | 
 |  |  |   } | 
 |  |  | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   format_date(date) { | 
 |  |  |     if (date) { | 
 |  |  |     return this.dateSrv.date_format(date, 'YYYY-MM-DD'); | 
 |  |  |   } | 
 |  |  | } | 
 |  |  | } |