fengxiang
2018-03-08 efe936a73370a55d4c3336fb9973a92fcf87efff
src/app/routes/systems/organization/organization-config/organization-config.component.ts
@@ -47,7 +47,7 @@
    setTimeout(() => {
      this.grid.loading = true;
     }, 1);
    let pageBean = this.organizationService.config.pageBean;
    const pageBean = this.organizationService.config.pageBean;
    let resultBean = this.organizationService.config.resultBean;
    resultBean = resultBean == null ? {} : resultBean;
    if (pageBean != null && pageBean.data != null) {
@@ -62,18 +62,18 @@
      const alarmConfigValue = alarmConfig.value;
      const alarmLevels = alarmConfigValue.alarmLevels;
      let alarmLevelsGroupsConfig = {};
      const alarmLevelsGroupsConfig = {};
      Object.keys(alarmLevels).forEach(key => {
        let increment = alarmLevels[key].increment;
        increment = increment == null || increment.length != 3 ? [0, 0, 0] : increment;
        increment = increment == null || increment.length !== 3 ? [0, 0, 0] : increment;
        const incrementArray = this.formBuilder.array([
          [increment[0]],
          [increment[1]],
          [increment[2]]
        ]);
        let degression = alarmLevels[key].degression;
        degression = degression == null || degression.length != 3 ? [0, 0, 0] : degression;
        degression = degression == null || degression.length !== 3 ? [0, 0, 0] : degression;
        const degressionArray =
          this.formBuilder.array([
            [degression[0]],
@@ -126,7 +126,7 @@
         item => {
             this.setErrorMessage();
         }
      )
      );
      this.refreshIndeterminate();      
    }
      this.refreshHasDegression(false);
@@ -156,7 +156,7 @@
    );
    this.refreshIndeterminate();
  }
  private _allCheckTriggers: number = 0;
  private _allCheckTriggers = 0;
  refreshIndeterminate() {
    const keys = this.grid.data.map(
      item => {
@@ -167,7 +167,7 @@
    const allUnChecked = keys.every(key => !this.validateForm.get('alarmLevels.' + key + '.enable').value);
    this.indeterminate = (!allChecked) && (!allUnChecked);
  }
  isSaving:boolean = false;
  isSaving = false;
  save($event, value, valid) {
    $event.preventDefault();
    if (valid) {
@@ -176,18 +176,17 @@
         id:value._id,
         organizationId:this.organization.id,
         value:value
       }
       };
      //  ToolsService.removePrivate(data.value);
       this.alarmConfigService.save(data).subscribe(
           result => {
              if(result!=null&&result.code==1){
              if (result != null && result.code === 1) {
                 this.msgSrv.success(this.organization.name+' 配置成功!');
                 this.backToList();
              }
           }
       );
    }
    debugger;
  }    
  
  setErrorMessage(){
@@ -198,16 +197,16 @@
      this.errorMessage = '一级 二级 三级 依次递增';
     } else if(errObj['degression']){
      this.errorMessage = '反向一级 反向二级 反向三级 依次递减';
     } else if(errObj['pattern']!=null&&errObj['pattern']['requiredPattern'] == '^'+patterns.num.toString()+'$'){
     } else if (errObj['pattern'] != null && errObj['pattern']['requiredPattern'] === '^' + patterns.num.toString() + '$') {
      this.errorMessage = '阀值只能为数字';
     }
    }
}
  errorMessage:string = '';
  errorMessage = '';
  private removeError(error:'increment'|'degression',...controls:AbstractControl[]){
    controls.forEach(
      item => {
         if(item.hasError(error)&&Object.keys(item.errors).length==1){
         if (item.hasError(error) && Object.keys(item.errors).length === 1) {
           item.setErrors(null);
         }
      }
@@ -216,7 +215,7 @@
  private addError(error:'increment'|'degression',...controls:AbstractControl[]){
    controls.forEach(
      item => {
        let errs = {};
        const errs = {};
        errs[error] = true;
        item.setErrors(errs);
        item.markAsDirty();
@@ -224,41 +223,41 @@
   ); 
  }
  private alarmLevelValidator = (control: FormControl): { [s: string]: boolean } => {
        const enable = control.get("enable").value;
        const degressEnable = control.get("degressEnable").value;
        const i0 = control.get("increment.0");
        const i1 = control.get("increment.1");
        const i2 = control.get("increment.2");
        const d0 = control.get("degression.0");
        const d1 = control.get("degression.1");
        const d2 = control.get("degression.2");
        const enable = control.get('enable').value;
        const degressEnable = control.get('degressEnable').value;
        const i0 = control.get('increment.0');
        const i1 = control.get('increment.1');
        const i2 = control.get('increment.2');
        const d0 = control.get('degression.0');
        const d1 = control.get('degression.1');
        const d2 = control.get('degression.2');
        // 如果未启用 删除错误信息,不验证
        if(!enable){
          this.removeError('increment',i0,i1,i2);
          this.removeError('degression',d0,d1,d2);
          return null;
        }
        let result = {};
        const i0_value = parseInt(i0.value);
        const i1_value = parseInt(i1.value);
        const i2_value = parseInt(i2.value);
        if ((i0_value != 0 || i1_value != 0 || i2_value != 0)&&(i0_value >= i1_value||i1_value >= i2_value)) {
        const result = {};
        const i0_value = parseInt(i0.value, 10);
        const i1_value = parseInt(i1.value, 10);
        const i2_value = parseInt(i2.value, 10);
        if ((i0_value !== 0 || i1_value !== 0 || i2_value !== 0) && (i0_value >= i1_value || i1_value >= i2_value)) {
          this.addError('increment',i0,i1,i2);
          result["increment"] = true;
          result['increment'] = true;
        }else{
          this.removeError('increment',i0,i1,i2);
        } 
        const d0_value = parseInt(d0.value);
        const d1_value = parseInt(d1.value);
        const d2_value = parseInt(d2.value);
          if(degressEnable&&(d0_value != 0 || d1_value != 0 || d2_value != 0)&&(d1_value >= d0_value||d2_value >= d1_value)) {
        const d0_value = parseInt(d0.value, 10);
        const d1_value = parseInt(d1.value, 10);
        const d2_value = parseInt(d2.value, 10);
          if (degressEnable && (d0_value !== 0 || d1_value !== 0 || d2_value !== 0) && (d1_value >= d0_value || d2_value >= d1_value)) {
            this.addError('degression',d0,d1,d2);
            result["degression"] = true;
            result['degression'] = true;
          }else{
            this.removeError('degression',d0,d1,d2);
          }
        return Object.keys(result).length == 0?null:result;
  };
        return Object.keys(result).length === 0 ? null : result;
  }
   getLastError(control:FormGroup|FormArray){
         if(control.errors!=null){
             return control.errors;
@@ -286,7 +285,7 @@
             ( item:any) => {
                return item['degressEnable'];
             }
          )
          );
       }
   }
}