From 4d0fd6e3bb6c3dcd48763338255075e2662622e6 Mon Sep 17 00:00:00 2001 From: xufenglei <xufenglei> Date: Tue, 12 Jun 2018 13:15:01 +0800 Subject: [PATCH] 监控点 区域可选 --- src/app/routes/reports/demo/demo.component.ts | 123 ++++++++++++++++++++++++++++++++-------- 1 files changed, 97 insertions(+), 26 deletions(-) diff --git a/src/app/routes/reports/demo/demo.component.ts b/src/app/routes/reports/demo/demo.component.ts index 506b60c..9a81c7e 100644 --- a/src/app/routes/reports/demo/demo.component.ts +++ b/src/app/routes/reports/demo/demo.component.ts @@ -28,12 +28,19 @@ {value: 'bar', label: '���������'}, {value: 'line', label: '���������'} ]; - + public professionOptions = []; + public dimensionOptions = [ + {value: 'monitorPoint', label: '������������'}, + {value: 'profession', label: '������'} + ]; + monitorPointShow = true; + professionShow = false; public items: any[] = [{ id: 0, + profession: null, monitorPoint: null, device: null, - time: null, + time: new Date(), monitorPointOptions: [], deviceOptions: [] }]; @@ -53,6 +60,7 @@ ) { this.timeType = this.typeOptions[1]; this.query.reportType = this.reportOptions[1].value; + this.query.dimension = this.dimensionOptions[0].value; } ngOnInit() { @@ -64,6 +72,28 @@ } }); + this.http.get(environment.SERVER_BASH_URL + 'mobile/profession').subscribe((res: any) => { + if (res.errno !== 0) { + this.msgSrv.error(res.message); + } else { + this.professionOptions = res.data; + } + }); + } + + dimensionChange(value) { + this.items.forEach((item, index) => { + item.profession = null; + item.monitorPoint = null; + this.getDevices(index); + }); + if (value === 'monitorPoint') { + this.professionShow = false; + this.monitorPointShow = true; + } else { + this.professionShow = true; + this.monitorPointShow = false; + } } public onTreeClickSelect(event): void { @@ -112,9 +142,10 @@ const id = (this.items.length > 0) ? this.items[this.items.length - 1].id + 1 : 0; const index = this.items.push({ id: id, + profession: null, monitorPoint: null, device: null, - time: null, + time: new Date(), monitorPointOptions: [], deviceOptions: [] }); @@ -128,36 +159,51 @@ this.areacodeService.getProvinces().subscribe( (res: {label: string, value: string}[]) => { event.resolve(res); - } - ); break; + }); + break; case 0: this.areacodeService.getCities(option.value).subscribe( (res: {label: string, value: string}[]) => { event.resolve(res); - } - ); break; + }); + break; case 1: this.areacodeService.getAreas(option.value).subscribe( (res: {label: string, value: string}[]) => { event.resolve(res); - } - ); break; + }); + break; + case 2: + this.areacodeService.getTowns(option.value).subscribe( + (res: {label: string, value: string}[]) => { + event.resolve(res); + }); + break; + case 3: + this.areacodeService.getVillages(option.value).subscribe( + (res: {label: string, value: string}[]) => { + event.resolve(res); + }); + break; } } public regionChange(event: {option: CascaderOption, index: number}, i) { + let name = ''; let areaName = ''; const option = event.option; this.items[i].monitorPoint = null; + //this.items[i].profession = null; + this.items[i].cityCode = null; this.items[i].areaCode = null; - this.items[i].device = null; + this.items[i].townCode = null; + this.items[i].villageCode = null; switch (event.index) { case 0: name = 'provinceCode'; this.items[i].provinceCode = option.value; - this.items[i].cityCode = null; areaName = option.label; break; case 1: @@ -170,6 +216,16 @@ this.items[i].areaCode = option.value; areaName = option.parent.parent.label + '/' + option.parent.label + '/' + option.label; break; + case 3: + name = 'townCode'; + this.items[i].townCode = option.value; + areaName = option.parent.parent.parent.label + '/' + option.parent.parent.label + '/' + option.parent.label + '/' + option.label; + break; + case 4: + name = 'villageCode'; + this.items[i].villageCode = option.value; + areaName = option.parent.parent.parent.parent.label + '/' + option.parent.parent.parent.label + '/' + option.parent.parent.label + '/' + option.parent.label + '/' + option.label; + break; } this.items[i].areaName = areaName; this.http.get(environment.SERVER_BASH_URL + 'monitor-point/list/region', {params: {name: name, value: option.value}}).subscribe((res: any) => { @@ -179,22 +235,30 @@ this.items[i].monitorPointOptions = res.data; } }); + this.getDevices(i); } - - monitorPointChange(value, i) { - this.items[i].deviceOptions = []; + + getDevices(i) { this.items[i].device = null; - if (value) { - this.http.get(environment.SERVER_BASH_URL + 'device/monitorPointId', {params: {monitorPointId: value.id}}).subscribe((res: any) => { - if (res.code === 0) { - this.msgSrv.error(res.message); - } else { - this.items[i].deviceOptions = res.data; - } - }); + if (!!this.items[i].profession) { + this.items[i].professionId = this.items[i].profession.id; + } else { + this.items[i].professionId = null; } + if (!!this.items[i].monitorPoint) { + this.items[i].monitorPointId = this.items[i].monitorPoint.id; + } else { + this.items[i].monitorPointId = null; + } + return this.http.get(environment.SERVER_BASH_URL + 'device/professionId', {params: this.items[i]}).subscribe((res: any) => { + if (res.code === 0) { + this.msgSrv.error(res.message); + } else { + this.items[i].deviceOptions = res.data; + } + }); } - + _disabledDate(current: Date): boolean { return current && current.getTime() > Date.now(); } @@ -207,17 +271,24 @@ const areaName = ''; const item = this.items[i]; const queryItem: any = {}; - if ((!!item.time) && (item.monitorPointOptions.length > 0)) { + if (item.monitorPointOptions.length > 0 && item.deviceOptions.length > 0) { for (const key in item) { if (item[key]) { queryItem[key] = item[key]; } + } + if (queryItem.profession) { + queryItem.professionId = queryItem.profession.id; + queryItem.professionName = queryItem.profession.name; + delete queryItem.profession; } if (queryItem.monitorPoint) { queryItem.monitorPointId = queryItem.monitorPoint.id; queryItem.monitorPointName = queryItem.monitorPoint.name; queryItem.monitorPointAddress = queryItem.monitorPoint.address; delete queryItem.monitorPoint; + } else { + queryItem.monitorPointName = queryItem.areaName; } delete queryItem.monitorPointOptions; if (queryItem.device) { @@ -237,7 +308,7 @@ break; } } - if (validate && this.timeType && query.reportType) { + if (validate) { delete query.sensors; if (this._sensors) { const sensors = []; @@ -252,7 +323,7 @@ query.type = this.timeType.value; sessionStorage.setItem('queryParams', JSON.stringify(query)); } else { - this.msgSrv.error('���������������������������������������'); + this.msgSrv.error('���������������������������������������������������������������'); return false; } } -- Gitblit v1.8.0