From 820cc14842e73c9980b87002eae127af626622fd Mon Sep 17 00:00:00 2001 From: xufenglei <xufenglei> Date: Mon, 14 May 2018 15:59:45 +0800 Subject: [PATCH] 报表展示 增加行业筛选 --- src/app/routes/report/report.component.html | 6 +- src/app/routes/report/report.component.ts | 38 +++++++----- src/app/routes/reports/demo/demo.component.ts | 67 +++++++++++++++++++++- src/app/routes/reports/demo/demo.component.html | 40 ++++++++++-- 4 files changed, 121 insertions(+), 30 deletions(-) diff --git a/src/app/routes/report/report.component.html b/src/app/routes/report/report.component.html index 31a282c..516b364 100644 --- a/src/app/routes/report/report.component.html +++ b/src/app/routes/report/report.component.html @@ -17,7 +17,7 @@ <div class="title"> <div class="title_left"></div> <div class="text"> - <span *ngFor="let item of items;let i = index"><span *ngIf="i > 0">���</span>{{item.monitorPointName}}</span> + <span *ngFor="let item of items;let i = index"><span *ngIf="i > 0">���</span>{{item.monitorPointName}}{{item.professionName}}</span> <span>������������������</span> </div> <div class="title_right"></div> @@ -29,12 +29,12 @@ <div class="{{i % 2 == 0 ? 'left' : 'right'}}"> <div class="text_t"> <div class="text_t_left"></div> - <div class="text_t_bg">{{item.monitorPointName}}</div> + <div class="text_t_bg">{{item.monitorPointName}}{{item.professionName}}</div> <div class="text_t_right"></div> <div class="clear_fix"></div> </div> <p *ngIf="item.monitorPointId" class="text1">���������������{{item.monitorPointAddress}}</p> - <p class="text1">������������������{{item.deviceCount}}���</p> + <p class="text1">������������������{{item.deviceCount?item.deviceCount:0}}���</p> <div class="clear_fix"></div> </div> </div> diff --git a/src/app/routes/report/report.component.ts b/src/app/routes/report/report.component.ts index 85f429f..07536a4 100644 --- a/src/app/routes/report/report.component.ts +++ b/src/app/routes/report/report.component.ts @@ -123,27 +123,32 @@ for (let i = 0; i < items.length; i++) { this.title = items[i].formatTime; items[i].deviceCount = deviceCounts[i]; - if (!(items[i].monitorPointId)) { + /* if (!(items[i].monitorPointId)) { items[i].monitorPointName = items[i].areaName; - } - const legendName = items[i].formatTime + label + - (items[i].mac ? '������:' + items[i].deviceName : (items[i].monitorPointId ? '���������:' + items[i].monitorPointName : items[i].areaName)); + } */ + const showName = items[i].showName = items[i].mac ? '������:' + items[i].deviceName : (items[i].monitorPointId ? '���������:' + items[i].monitorPointName : items[i].areaName) + items[i].professionName; + const legendName = items[i].formatTime + label + showName; items[i].legendName = option.legend.data[i] = legendName; - option.series.push({ - name: legendName, - data: res.data.datas[i][sensorKey], - type: params.reportType, - smooth: true, - itemStyle: { - normal: { - barBorderRadius: [10, 10, 10, 10] + if (res.data.datas[i][sensorKey]) { + option.series.push({ + name: legendName, + data: res.data.datas[i][sensorKey], + type: params.reportType, + smooth: true, + itemStyle: { + normal: { + barBorderRadius: [10, 10, 10, 10] + } } - } - }); + }); + } } const myChart = echarts.init(document.getElementById('mydiv' + index)); myChart.setOption(option, true); window.onresize = myChart.resize; + if (option.series.length < 1) { + $('#mydiv' + index).remove(); + } } this.sensorArr.forEach(i => { if (i >= sensors.length) { @@ -151,6 +156,9 @@ } }); this.spinning = false; + if (!this.title) { + this.title = items[0].formatTime; + } const title: any[] = this.title.replace(' ', '-').split('-'); this.title = ''; for (let i = 0; i < title.length; i++) { @@ -227,7 +235,7 @@ if (sensor.key === split[0]) { this.resultArr.push({ sensorName: sensor.name, - monitorPointName: this.items[split[1]].mac ? this.items[split[1]].deviceName : this.items[split[1]].monitorPointName, + monitorPointName: this.items[split[1]].showName, result: res.data.sortList[i][key] + '%', effect: sensor.effect, measures: sensor.measures diff --git a/src/app/routes/reports/demo/demo.component.html b/src/app/routes/reports/demo/demo.component.html index c0089fb..cfc510a 100644 --- a/src/app/routes/reports/demo/demo.component.html +++ b/src/app/routes/reports/demo/demo.component.html @@ -12,7 +12,7 @@ <nz-option *ngFor="let option of sensorOptions" [nzLabel]="option.name" [nzValue]="option.sensorKey + '-' + option.name + '-' + option.unit"></nz-option> </nz-select> --> <nz-popover [nzPlacement]="'bottomLeft'" [nzTrigger]="'click'"> - <nz-input [nzType]="'input'" nz-popover [ngModel]="sensorNames" name="sensorKeys" [nzReadonly]="true" [nzPlaceHolder]="'��������� ������'"> + <nz-input [nzType]="'input'" nz-popover [ngModel]="sensorNames" name="sensorKeys" [nzReadonly]="true" [nzPlaceHolder]="'��������� ������'" [nzSize]="'large'"> <ng-template #suffix> <i class="anticon anticon-down ant-cascader-picker-arrow" style="right: 1px;"></i> </ng-template> @@ -29,7 +29,19 @@ <div nz-col [nzSpan]="5" class="mb-md"> <div nz-form-item class="d-flex"> <div nz-form-label class="label-width-70"> - <label nz-form-item-required>������</label> + <label>������</label> + </div> + <div nz-form-control class="flex-1"> + <nz-select [(ngModel)]="query.dimension" name="dimension" [nzSize]="'large'" [nzPlaceHolder]="'���������'" (ngModelChange)="dimensionChange($event)"> + <nz-option *ngFor="let option of dimensionOptions" [nzLabel]="option.label" [nzValue]="option.value" ></nz-option> + </nz-select> + </div> + </div> + </div> + <div nz-col [nzSpan]="5" class="mb-md"> + <div nz-form-item class="d-flex"> + <div nz-form-label class="label-width-70"> + <label>������</label> </div> <div nz-form-control class="flex-1"> <nz-select [(ngModel)]="timeType" name="timeType" [nzSize]="'large'" [nzPlaceHolder]="'���������'"> @@ -41,7 +53,7 @@ <div nz-col [nzSpan]="5" class="mb-md"> <div nz-form-item class="d-flex"> <div nz-form-label class="label-width-70"> - <label nz-form-item-required>������</label> + <label>������</label> </div> <div nz-form-control class="flex-1"> <nz-select [(ngModel)]="query.reportType" name="reportType" [nzSize]="'large'" [nzPlaceHolder]="'���������'"> @@ -50,7 +62,7 @@ </div> </div> </div> - <div nz-col [nzSpan]="5" class="mb-md" *ngIf="items.length < 2"> + <div nz-col [nzSpan]="4" class="mb-md" *ngIf="items.length < 2"> <button nz-button type="button" [nzType]="'primary'" [nzSize]="'large'" (click)="addItem()"> <!-- <i class="anticon anticon-plus"></i> --> <i class="anticon anticon-plus-circle-o"></i> @@ -67,13 +79,13 @@ <label nz-form-item-required>���������</label> </div> <div nz-form-control class="flex-1"> - <nz-cascader (nzLoad)="areaLazyLoad($event,i)" [nzPlaceHolder]="'��������� ���/���/���'" [nzAllowClear]="false" [nzChangeOnSelect]="true" (nzSelect)="regionChange($event,i)"> + <nz-cascader [nzSize]="'large'" (nzLoad)="areaLazyLoad($event,i)" [nzPlaceHolder]="'��������� ���/���/���'" [nzAllowClear]="false" [nzChangeOnSelect]="true" (nzSelect)="regionChange($event,i)"> </nz-cascader> </div> </div> </div> - <div nz-col [nzSpan]="5" class="mb-md"> + <div nz-col [nzSpan]="5" class="mb-md" [ngStyle]="{'display':monitorPointShow ? 'block' : 'none' }"> <div nz-form-item class="d-flex"> <div nz-form-label class="label-width-70"> <label>������������</label> @@ -83,6 +95,18 @@ [nzNotFoundContent]="'������������'" (ngModelChange)="monitorPointChange($event,i)" nzShowSearch nzAllowClear> <nz-option *ngFor="let option of item.monitorPointOptions" [nzLabel]="option['name']" [nzValue]="option"> </nz-option> </nz-select> + </div> + </div> + </div> + <div nz-col [nzSpan]="5" class="mb-md" [ngStyle]="{'display':professionShow ? 'block' : 'none' }"> + <div nz-form-item class="d-flex"> + <div nz-form-label class="label-width-70"> + <label >������</label> + </div> + <div nz-form-control class="flex-1"> + <nz-select [(ngModel)]="item.profession" name="profession{{item.id}}" [nzSize]="'large'" [nzPlaceHolder]="'��������� ������'" nzAllowClear (ngModelChange)="professionChange($event,i)" > + <nz-option *ngFor="let option of professionOptions" [nzLabel]="option.name" [nzValue]="option" ></nz-option> + </nz-select> </div> </div> </div> @@ -101,10 +125,10 @@ <div nz-col [nzSpan]="5" class="mb-md"> <div nz-form-item class="d-flex"> <div nz-form-label class="label-width-70"> - <label nz-form-item-required>������</label> + <label>������</label> </div> <div nz-form-control class="flex-1"> - <nz-datepicker style="width: 100%;" [(ngModel)]="item.time" name="time{{item.id}}" [nzPlaceHolder]="'��������� ������'" [nzFormat]="timeType.format" [nzDisabledDate]="_disabledDate" + <nz-datepicker style="width: 100%;" [(ngModel)]="item.time" name="time{{item.id}}" [nzFormat]="timeType.format" [nzDisabledDate]="_disabledDate" [nzAllowClear]="false" [nzMode]="timeType.value=='hour'||timeType.value=='day'?'day':'month'" [nzShowTime]="timeType.value=='hour'?true:false" [nzSize]="'large'"></nz-datepicker> </div> </div> diff --git a/src/app/routes/reports/demo/demo.component.ts b/src/app/routes/reports/demo/demo.component.ts index 506b60c..ee873aa 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; + item.device = null; + }); + 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: [] }); @@ -150,6 +181,7 @@ let areaName = ''; const option = event.option; this.items[i].monitorPoint = null; + this.items[i].profession = null; this.items[i].areaCode = null; this.items[i].device = null; @@ -195,6 +227,26 @@ } } + professionChange(value, i) { + this.items[i].deviceOptions = []; + this.items[i].device = null; + if (value) { + if (!!this.items[i].areaName) { + this.items[i].professionId = value.id; + 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; + } + }); + } else { + this.msgSrv.error('������������ ������������'); + } + } + + } + _disabledDate(current: Date): boolean { return current && current.getTime() > Date.now(); } @@ -207,17 +259,24 @@ const areaName = ''; const item = this.items[i]; const queryItem: any = {}; - if ((!!item.time) && (item.monitorPointOptions.length > 0)) { + if (item.monitorPointOptions.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) { -- Gitblit v1.8.0