From 3517e796f650b8aed52165c1a5905456f54033ef Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Wed, 10 Jan 2018 14:31:40 +0800 Subject: [PATCH] 项目路径 配置,以适应可能的框架更新 --- src/app/routes/devices/monitor-point/monitor-point-edit/monitor-point-edit.component.ts | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 116 insertions(+), 2 deletions(-) diff --git a/src/app/routes/devices/monitor-point/monitor-point-edit/monitor-point-edit.component.ts b/src/app/routes/devices/monitor-point/monitor-point-edit/monitor-point-edit.component.ts index a99f4d1..9ca1b95 100644 --- a/src/app/routes/devices/monitor-point/monitor-point-edit/monitor-point-edit.component.ts +++ b/src/app/routes/devices/monitor-point/monitor-point-edit/monitor-point-edit.component.ts @@ -1,4 +1,11 @@ +import { MonitorPoint } from '@business/entity/data'; +import { PageBean } from '@business/entity/grid'; +import { OrganizationService } from '@business/services/http//organization.service'; +import { AreacodeService } from '@business/services/http/areacode.service'; import { Component, OnInit } from '@angular/core'; +import { NzMessageService, NzModalSubject } from 'ng-zorro-antd'; +import { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms'; +import { CascaderOption } from 'ng-zorro-antd/src/cascader/nz-cascader.component'; @Component({ selector: 'app-monitor-point-edit', @@ -7,9 +14,116 @@ }) export class MonitorPointEditComponent implements OnInit { - constructor() { } + orgOptions = []; + + data: MonitorPoint; + isSaving = false; + validateForm: FormGroup; + constructor( + private subject: NzModalSubject, + private formBuilder: FormBuilder, + private areacodeService: AreacodeService, + private organizationService: OrganizationService + ) { } ngOnInit() { + const data = this.data; + const areaNames = data.areaNames; + let _areas = null; + if (areaNames != null) { + _areas = { + label: Object.values(areaNames).join('/'), + value: data.areaCode + }; + } + this.OrgSelectChange(null); + const validates: MonitorPoint|object = { + name: [data.name, [Validators.required] ], + organizationId: [data.organizationId, [Validators.required]], + longitude: [data.longitude], + latitude: [data.latitude], + address: [data.address ], + _areas: [_areas, [Validators.required]], + description: [data.description ] + }; + this.validateForm = this.formBuilder.group( + validates + ); } - + close() { + this.subject.destroy(); + } + save($event, value, valid) { + $event.preventDefault(); + if (valid) { + for (const i in this.validateForm.controls) { + 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]; + } + } ); + this.subject.next( this ); + }else { + this.validate(); + } + } + validate() { + for (const i in this.validateForm.controls) { + this.validateForm.controls[ i ].markAsDirty(); + } + } + areaLazyLoad(event: { option: CascaderOption, index: number, resolve: (children: CascaderOption[]) => void, reject: () => void }) { + const index = event['index']; + const option = event.option; + switch (index) { + case -1: + this.areacodeService.getProvinces().subscribe( + (res: {label: string, value: string}[]) => { + event.resolve( res ); + } + ); break; + case 0: + this.areacodeService.getCities(option.value).subscribe( + (res: {label: string, value: string}[]) => { + event.resolve( res ); + } + ); break; + case 1: + this.areacodeService.getAreas(option.value).subscribe( + (res: {label: string, value: string}[]) => { + event.resolve( res ); + } + ); break; + } + } + setAreaCodes(codes: string[]) { + this.data.provinceCode = codes[0]; + this.data.cityCode = codes[1]; + this.data.areaCode = codes[2]; + } + OrgSelectChange(text) { + const pageBean: PageBean = {pageIndex: 0, pageSize: 20}; + this.organizationService.getPagingList(pageBean, text).subscribe( + (res: PageBean) => { + if (res != null && res.data != null) { + this.orgOptions = res.data; + } + const organization = this.data.organization; + if (organization != null && text == null) { + const num: number = this.orgOptions.filter( + (item: any) => { + return item.id === organization.id; + } + ).length; + if ( num === 0 ) { + this.orgOptions.push(organization); + } + } + } + ); + } } -- Gitblit v1.8.0