From 27cd36be226ca2434f06b1ae9e4d43f1fea639ab Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Mon, 25 Jun 2018 16:40:28 +0800 Subject: [PATCH] 组织配置单位和页面显示 --- src/app/routes/sensors/basic-info/sensor-unit/sensor-unit.component.ts | 135 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 126 insertions(+), 9 deletions(-) diff --git a/src/app/routes/sensors/basic-info/sensor-unit/sensor-unit.component.ts b/src/app/routes/sensors/basic-info/sensor-unit/sensor-unit.component.ts index 35a0948..2965818 100644 --- a/src/app/routes/sensors/basic-info/sensor-unit/sensor-unit.component.ts +++ b/src/app/routes/sensors/basic-info/sensor-unit/sensor-unit.component.ts @@ -1,7 +1,12 @@ import { Component, OnInit } from '@angular/core'; import { _HttpClient } from '@delon/theme'; import { NzModalSubject } from 'ng-zorro-antd'; -import { FormGroup } from '@angular/forms'; +import { FormGroup, Validators, FormBuilder, FormControl } from '@angular/forms'; +import { Sensor, SensorUnit, OperatorRule } from '@business/entity/data'; +import { ToolsService } from '@business/services/util/tools.service'; +import { Operator, ResultCode } from '@business/enum/types.enum'; +import { ResultBean } from '@business/entity/grid'; +import { SensorUnitService } from '@business/services/http/sensor-unit.service'; @Component({ selector: 'app-sensor-unit', @@ -10,13 +15,44 @@ export class SensorUnitComponent implements OnInit { public isSaving = false; public validateForm: FormGroup; - public data: any; + public operatorOptions: {label: string, value: Operator} [] = [ + {label: '���', value: Operator.PLUS}, + {label: '���', value: Operator.MINUS}, + {label: '���', value: Operator.MULTIPLY}, + {label: '���', value: Operator.DIVIDE} + ]; + // public rule = '���'; + public data: Sensor; + public dataList: SensorUnit[] = []; constructor( private subject: NzModalSubject, - private http: _HttpClient + private formBuilder: FormBuilder, + private http: _HttpClient, + private sensorUnitService: SensorUnitService ) { } - + loadDataList() { + this.sensorUnitService.getListBySensorId(this.data.id).subscribe( + res => { + if (res.code === 1 ) { + this.dataList = res.data; + } + } + ); + } ngOnInit() { + this.loadDataList(); + const validates: SensorUnit = { + id: [null ], + sensorId: [this.data.id, [Validators.required] ], + name: [null, [Validators.required] ] + }; + validates['_rule-operator'] = [Operator.MULTIPLY]; + validates['_rule-value'] = 1000; + validates['_rules'] = [null, [Validators.required]]; + this.validateForm = this.formBuilder.group( + validates + ); + // this.validateForm.controls['_rules'].disable(); } save($event, value, valid) { $event.preventDefault(); @@ -25,19 +61,100 @@ this.validateForm.controls[ i ].disable(); } this.isSaving = true; - Object.keys(value).forEach( (key: string) => { - // '_'������������������������������ - if (!key.startsWith('_') && value[key] != null) { - this.data[key] = value[key]; + ToolsService.removePrivate(value); + const sensorUnit: SensorUnit = {}; + Object.assign(sensorUnit, value); + sensorUnit['rules'] = this.rulesToString(this.rules); + sensorUnit['originalUnitName'] = this.data.unit; + console.log(JSON.stringify(sensorUnit)); + this.http.post('sensor-unit/add-or-modify', sensorUnit).subscribe( + (res: ResultBean<any>) => { + if (!!res.code) { + for (const i in this.validateForm.controls) { + this.validateForm.controls[ i ].enable(); + } + this.isSaving = false; + this.loadDataList(); + this.reset(); } - } ); + } + ); } else { this.validate(); } + } + toEdit(item) { + this.reset(); + this.setValueToControl('id', item.id); + this.setValueToControl('name', item.name); + } + delete(id) { + this.http.get('sensor-unit/delete', {id: id}).subscribe( + (res: ResultBean<any>) => { + if (!!res.code ) { + this.loadDataList(); + } + } + ); } validate() { for (const i in this.validateForm.controls) { this.validateForm.controls[ i ].markAsDirty(); } } + private rules: OperatorRule[] = []; + addRule(event) { + event.preventDefault(); + const rule: OperatorRule = { + operator: this.getValueFormControl('_rule-operator'), + value: this.getValueFormControl('_rule-value') + }; + this.rules.push(rule); + this.setValueToControl('_rules' , this.rulesToString(this.rules, '������')); + } + rulesToString(rules , dataLabel?: string) { + let rulesString = '' ; + dataLabel = dataLabel === undefined ? '{0}' : dataLabel; + if (!!this.rules && this.rules.length > 0) { + // const dataLabel = '������'; + rulesString += dataLabel ; + this.rules.forEach(rule => { + if (!rulesString.endsWith(dataLabel)) { + rulesString = '(' + rulesString + ')'; + } + switch (rule.operator) { + case Operator.PLUS: rulesString += '+' + rule.value + 'd'; break; + case Operator.MINUS: rulesString += '-' + rule.value + 'd'; break; + case Operator.MULTIPLY: rulesString += '*' + rule.value + 'd'; break; + case Operator.DIVIDE: rulesString += '/' + rule.value + 'd'; break; + } + }); + } + return rulesString; + } + getValueFormControl(controlName: string) { + return ToolsService.getValueFormControl(this.validateForm, controlName); + } + setValueToControl(controlName: string, value: any) { + ToolsService.setValueToControl(this.validateForm, controlName, value); + } + clearRules(event) { + event.preventDefault(); + this.rules = []; + this.setValueToControl('_rules', this.rulesToString(this.rules, '������')); + } + // print() { + // debugger; + // console.log(this.validateForm.controls['_rule']); + // } + reset(event?: any) { + if (!!event) { + event.preventDefault(); + } + this.setValueToControl('id', null); + this.setValueToControl('name', null); + this.setValueToControl('_rules', null); + this.setValueToControl('_rule-operator', Operator.MULTIPLY); + this.setValueToControl('_rule-value', 1000); + } } -- Gitblit v1.8.0