From 09cc47426b74c6fd49fc07f615a1d4ae329e6f0e Mon Sep 17 00:00:00 2001
From: 沈斌 <bluelazysb@hotmail.com>
Date: Wed, 28 Feb 2018 13:54:13 +0800
Subject: [PATCH] debug
---
src/app/routes/systems/organization/organization-config/organization-config.component.ts | 139 ++++++++++++++++++++++++++++------------------
1 files changed, 84 insertions(+), 55 deletions(-)
diff --git a/src/app/routes/systems/organization/organization-config/organization-config.component.ts b/src/app/routes/systems/organization/organization-config/organization-config.component.ts
index 3d385de..f73e7b6 100644
--- a/src/app/routes/systems/organization/organization-config/organization-config.component.ts
+++ b/src/app/routes/systems/organization/organization-config/organization-config.component.ts
@@ -1,7 +1,7 @@
import { NzMessageService } from 'ng-zorro-antd';
import { filter } from 'rxjs/operators';
import { HttpClient } from '@angular/common/http';
-import { FormGroup, FormBuilder, FormControl, Validators, FormArray } from '@angular/forms';
+import { FormGroup, FormBuilder, FormControl, Validators, FormArray, AbstractControl } from '@angular/forms';
import { SensorsService } from '@business/services/http/sensors.service';
import { Grid, PageBean } from '@business/entity/grid';
import { Organization, AlarmConfig, AlarmSensorLevel, AlarmConfigValue } from '@business/entity/data';
@@ -11,6 +11,7 @@
import { AlarmConfigService } from '@business/services/http/alarm-config.service';
import { AlarmStyle } from '@business/enum/types.enum';
import { patterns } from '@business/enum/patterns.enum';
+import { ToolsService } from '@business/services/util/tools.service';
@Component({
selector: 'app-organization-config',
@@ -22,7 +23,7 @@
ngOnDestroy(): void {
this.backToList();
}
- private organization: Organization;
+ public organization: Organization;
grid: Grid<object> = new Grid<object>(null);
validateForm: FormGroup;
constructor(
@@ -69,20 +70,24 @@
let increment = alarmLevels[key].increment;
increment = increment == null || increment.length != 3 ? [0, 0, 0] : increment;
const incrementArray = this.formBuilder.array([
- [increment[0], Validators.pattern(patterns.num)],
- [increment[1], Validators.pattern(patterns.num)],
- [increment[2], Validators.pattern(patterns.num)]
+ [increment[0]],
+ [increment[1]],
+ [increment[2]]
]);
let degression = alarmLevels[key].degression;
degression = degression == null || degression.length != 3 ? [0, 0, 0] : degression;
const degressionArray =
this.formBuilder.array([
- [degression[0], Validators.pattern(patterns.num)],
- [degression[1], Validators.pattern(patterns.num)],
- [degression[2], Validators.pattern(patterns.num)]
+ [degression[0]],
+ [degression[1]],
+ [degression[2]]
]);
+ //������������������������
+ // let _degressionEnable = degression[0] != 0 || degression[1] != 0 || degression[2] != 0;
+
const alarmSensorGroup = this.formBuilder.group(
{
+ degressEnable:[alarmLevels[key].degressEnable],
enable: [alarmLevels[key].enable],
increment: incrementArray,
degression: degressionArray,
@@ -126,6 +131,7 @@
)
this.refreshIndeterminate();
}
+ this.refreshHasDegression(false);
// ������������������ExpressionChangedAfterItHasBeenCheckedError
setTimeout(() => {
this.grid.loading = false;
@@ -140,7 +146,7 @@
checkAll(param) {
const keys = this.grid.data.map(
item => {
- return item['key'];
+ return item['sensorKey'];
}
);
this._allCheckTriggers = 0;
@@ -156,21 +162,24 @@
refreshIndeterminate() {
const keys = this.grid.data.map(
item => {
- return item['key'];
+ return item['sensorKey'];
}
);
const allChecked = keys.every(key => this.validateForm.get('alarmLevels.' + key + '.enable').value);
const allUnChecked = keys.every(key => !this.validateForm.get('alarmLevels.' + key + '.enable').value);
this.indeterminate = (!allChecked) && (!allUnChecked);
}
+ isSaving:boolean = false;
save($event, value, valid) {
$event.preventDefault();
if (valid) {
+ this.isSaving = true;
const data:AlarmConfig = {
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){
@@ -180,6 +189,7 @@
}
);
}
+ debugger;
}
setErrorMessage(){
@@ -196,53 +206,60 @@
}
}
errorMessage:string = '';
+ private removeError(error:'increment'|'degression',...controls:AbstractControl[]){
+ controls.forEach(
+ item => {
+ if(item.hasError(error)&&Object.keys(item.errors).length==1){
+ item.setErrors(null);
+ }
+ }
+ );
+ }
+ private addError(error:'increment'|'degression',...controls:AbstractControl[]){
+ controls.forEach(
+ item => {
+ let errs = {};
+ errs[error] = true;
+ item.setErrors(errs);
+ item.markAsDirty();
+ }
+ );
+ }
private alarmLevelValidator = (control: FormControl): { [s: string]: boolean } => {
- let result = {};
- const i0 = control.get("increment.0");
- const i1 = control.get("increment.1");
- const i2 = control.get("increment.2");
- if ((i0.value != 0 || i1.value != 0 || i2.value != 0)&&(i0.value >= i1.value||i1.value >= i2.value)) {
- i0.setErrors({ increment: true });
- i0.markAsDirty();
- i1.setErrors({ increment: true });
- i1.markAsDirty();
- i2.setErrors({ increment: true });
- i2.markAsDirty();
- result["increment"] = true;
- }else{
- if(i0.hasError('increment')&&Object.keys(i0.errors).length==1){
- i0.setErrors(null);
+ 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;
}
- if(i1.hasError('increment')&&Object.keys(i1.errors).length==1){
- i1.setErrors(null);
- }
- if(i2.hasError('increment')&&Object.keys(i2.errors).length==1){
- i2.setErrors(null);
- }
- }
- const d0 = control.get("degression.0");
- const d1 = control.get("degression.1");
- const d2 = control.get("degression.2");
- if ((d0.value != 0 || d1.value != 0 || d2.value != 0)&&(d1.value >= d0.value||d2.value >= d1.value)) {
- d0.setErrors({ degression: true });
- d0.markAsDirty();
- d1.setErrors({ degression: true });
- d1.markAsDirty();
- d2.setErrors({ degression: true });
- d2.markAsDirty();
- result["degression"] = true;
- }else{
- if(d0.hasError('degression')&&Object.keys(d0.errors).length==1){
- d0.setErrors(null);
- }
- if(d1.hasError('degression')&&Object.keys(d1.errors).length==1){
- d1.setErrors(null);
- }
- if(d2.hasError('degression')&&Object.keys(d2.errors).length==1){
- d2.setErrors(null);
- }
- }
- return Object.keys(result).length == 0?null:result;
+ 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)) {
+ this.addError('increment',i0,i1,i2);
+ 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)) {
+ this.addError('degression',d0,d1,d2);
+ result["degression"] = true;
+ }else{
+ this.removeError('degression',d0,d1,d2);
+ }
+ return Object.keys(result).length == 0?null:result;
};
getLastError(control:FormGroup|FormArray){
if(control.errors!=null){
@@ -262,4 +279,16 @@
}
}
}
+ public hasDegression = false;
+ public refreshHasDegression(value){
+ if(value){
+ this.hasDegression = true;
+ }else{
+ this.hasDegression = Object.values(this.validateForm.value['alarmLevels']).some(
+ ( item:any) => {
+ return item['degressEnable'];
+ }
+ )
+ }
+ }
}
--
Gitblit v1.8.0