From 1ed867a861c78d7ce041f50d9d7a655216627993 Mon Sep 17 00:00:00 2001
From: 沈斌 <bluelazysb@hotmail.com>
Date: Tue, 30 Jan 2018 14:03:23 +0800
Subject: [PATCH] updates
---
src/app/routes/systems/organization/organization-config/organization-config.component.ts | 122 ++++++++++++++++++++++++----------------
1 files changed, 73 insertions(+), 49 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..34f4089 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(
@@ -81,8 +82,12 @@
[degression[1], Validators.pattern(patterns.num)],
[degression[2], Validators.pattern(patterns.num)]
]);
+ //������������������������
+ // 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,55 @@
}
}
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 = {};
+ 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);
+ }
+ debugger;
+ 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 +274,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