From 7047fc75d8d33ad7608c05f655e760f4e824808b Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Fri, 13 Jul 2018 10:08:33 +0800 Subject: [PATCH] 提交修改 --- src/app/routes/routes.module.ts | 7 src/environments/environment.chore.ts | 3 src/environments/environment.hmr.ts | 2 src/app/routes/reports/query/query.component.html | 96 +----- src/assets/app-data.json | 32 +- src/app/routes/pollution/management/management.component.html | 45 +++ src/app/routes/pollution/management/management.component.ts | 56 ++++ src/app/routes/reports/query/query.component.ts | 97 +++--- src/app/routes/forecasting-warning/forecasting-warning.component.html | 13 + src/app/routes/forecasting-warning/forecasting-warning.component.ts | 17 + src/app/routes/routes-routing.module.ts | 7 src/environments/environment.ts | 2 src/app/app.component.ts | 2 src/app/routes/pollution/management/management.component.less | 389 +++++++++++++++++++++++++++++ 14 files changed, 623 insertions(+), 145 deletions(-) diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 8879e25..f6b033d 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -29,7 +29,7 @@ ngOnInit() { // ������Token������ this.tokenService.set({ - token: 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsIm9pZCI6NSwibW9kZSI6IldlYiIsInNjb3BlcyI6WyJ0ZW1wIl0sImlzcyI6Imh0dHA6Ly9tb25pdG9yLjdkcmxiLmNvbSIsImlhdCI6MTUzMTMxNjU4MCwiZXhwIjoxNTM5MDkyNTgwfQ.tWE7AqGfLwwK-nO1FUveJ8xKqpxitqG1GdhKHp9JDyRPjNDYX7ocgkEw0W2G8hKL_tJIjjrQ1pc0zvCmLTJ-pg', + token: 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsIm9pZCI6NSwibW9kZSI6IldlYiIsInNjb3BlcyI6WyJ0ZW1wIl0sImlzcyI6Imh0dHA6Ly9tb25pdG9yLjdkcmxiLmNvbSIsImlhdCI6MTUzMTM4MTIyMiwiZXhwIjoxNTMxMzgxNTIyfQ.iIlgjuDQP1C2mOWUSd0DT6sKxg7Wavsu3oOiHxGf58BZmrwl3OEIFH71yHo9DbXTRWnm5QzEeyjdxLXcWBA3mQ', name: 'admin', email: `admin@qq.com`, id: 10000, diff --git a/src/app/routes/forecasting-warning/forecasting-warning.component.html b/src/app/routes/forecasting-warning/forecasting-warning.component.html new file mode 100644 index 0000000..a448091 --- /dev/null +++ b/src/app/routes/forecasting-warning/forecasting-warning.component.html @@ -0,0 +1,13 @@ +<div class="content__title"> + <h1>������������������������</h1> +</div> +<nz-card [nzBordered]="false"> +<div class="sales-type-radio"> + <nz-radio-group > + <label nz-radio-button [nzValue]="'warning'"><span>������</span></label> + <label nz-radio-button [nzValue]="'forecasting'"><span>������</span></label> + </nz-radio-group> +</div> + +</nz-card> +<nz-card [nzBordered]="false"></nz-card> diff --git a/src/app/routes/forecasting-warning/forecasting-warning.component.ts b/src/app/routes/forecasting-warning/forecasting-warning.component.ts new file mode 100644 index 0000000..66640f0 --- /dev/null +++ b/src/app/routes/forecasting-warning/forecasting-warning.component.ts @@ -0,0 +1,17 @@ +import { Component, OnInit } from '@angular/core'; +import { _HttpClient } from '@delon/theme'; + +@Component({ + selector: 'app-forecasting-warning', + templateUrl: './forecasting-warning.component.html', +}) +export class ForecastingWarningComponent implements OnInit { + + constructor( + private http: _HttpClient + ) { } + + ngOnInit() { + } + +} diff --git a/src/app/routes/pollution/management/management.component.html b/src/app/routes/pollution/management/management.component.html new file mode 100644 index 0000000..9f31405 --- /dev/null +++ b/src/app/routes/pollution/management/management.component.html @@ -0,0 +1,45 @@ + +<div nz-row [nzGutter]="24"> + <div nz-col nzXs="24" nzSm="24" nzMd="24" nzLg="24"> + <nz-card [nzLoading]="loading" [nzBordered]="false" nzTitle="������������������" [nzBodyStyle]="{'padding.px': 24}" class="sales-card" style="min-height: 482px;"> + <ng-template #extra> + <div class="sales-card-extra"> + <div class="sales-type-radio"> + <nz-radio-group [(ngModel)]="salesType" (ngModelChange)="changeSaleType()" [nzSize]="'large'"> + <label nz-radio-button [nzValue]="'1'"><span>PM2.5</span></label> + <label nz-radio-button [nzValue]="'2'"><span>PM10</span></label> + <label nz-radio-button [nzValue]="'3'"><span>SO2</span></label> + <label nz-radio-button [nzValue]="'4'"><span>NO3</span></label> + <label nz-radio-button [nzValue]="'5'"><span>O3</span></label> + <label nz-radio-button [nzValue]="'6'"><span>CO</span></label> + </nz-radio-group> + </div> + </div> + </ng-template> + <ng-template #body> + <h4 class="margin:8px 0 32px 0;">������������������</h4> + + <nz-table #keyTable [nzDataSource]="data.searchData" [nzPageSize]="5" nzSize="small"> + <thead nz-thead> + <tr> + <th nz-th><span>������</span></th> + <th nz-th><span>������������</span></th> + <th nz-th class="text-right"> + <span>������������ mg/m3</span> + <nz-table-sort (nzValueChange)="sort('count',$event)"></nz-table-sort> + </th> + </tr> + </thead> + <tbody nz-tbody> + <tr nz-tbody-tr *ngFor="let i of keyTable.data"> + <td nz-td>{{i.index}}</td> + <td nz-td><a (click)="msg.success(i.point)">{{i.point}}</a></td> + <td nz-td class="text-right">{{i.value}}</td> + </tr> + </tbody> + </nz-table> + </ng-template> + </nz-card> + </div> +</div> + diff --git a/src/app/routes/pollution/management/management.component.less b/src/app/routes/pollution/management/management.component.less new file mode 100644 index 0000000..c732176 --- /dev/null +++ b/src/app/routes/pollution/management/management.component.less @@ -0,0 +1,389 @@ +@import '~@delon/theme/styles/antd/themes/default.less'; +@import '~@delon/abc/utils/utils.less'; + +:host ::ng-deep { + .page-header { + display: flex; + .avatar { + flex: 0 1 72px; + margin-bottom: 8px; + .ant-avatar { + border-radius: 72px; + display: block; + width: 72px; + height: 72px; + } + } + .desc { + position: relative; + top: 4px; + margin-left: 24px; + flex: 1 1 auto; + color: @text-color-secondary; + line-height: 22px; + .desc-title { + font-size: 20px; + line-height: 28px; + font-weight: 500; + color: @heading-color; + margin-bottom: 12px; + } + } + } + + .page-extra { + .clearfix(); + float: right; + & > div { + padding: 0 32px; + position: relative; + float: left; + & > p:first-child { + color: @text-color-secondary; + font-size: @font-size-base; + line-height: 22px; + margin-bottom: 4px; + } + & > p { + color: @heading-color; + font-size: 30px; + line-height: 38px; + margin: 0; + & > span { + color: @text-color-secondary; + font-size: 20px; + } + } + &:after { + background-color: @border-color-split; + position: absolute; + top: 8px; + right: 0; + width: 1px; + height: 40px; + content: ""; + } + } + & > div:last-child { + padding-right: 0; + &:after { + display: none; + } + } + } + + .project-list { + .ant-card-meta-description { + color: @text-color-secondary; + height: 44px; + line-height: 22px; + overflow: hidden; + } + .card-title { + font-size: 0; + a { + color: @heading-color; + margin-left: 12px; + line-height: 24px; + height: 24px; + display: inline-block; + vertical-align: top; + font-size: @font-size-base; + &:hover { + color: @primary-color; + } + } + } + + .project-grid { + width: 33.33%; + } + + .project-item { + display: flex; + margin-top: 8px; + overflow: hidden; + font-size: 12px; + height: 20px; + line-height: 20px; + .textOverflow(); + a { + color: @text-color-secondary; + display: inline-block; + flex: 1 1 0; + .textOverflow(); + &:hover { + color: @primary-color; + } + } + .datetime { + color: @disabled-color; + flex: 0 0 auto; + float: right; + } + } + } + + .activities { + padding: 0 24px 8px; + .username { + color: @text-color; + } + .event { + font-weight: normal; + } + } + + .members { + a { + display: block; + margin: 12px 0; + line-height: 24px; + height: 24px; + .textOverflow(); + .member { + font-size: @font-size-base; + color: @text-color; + line-height: 24px; + max-width: 100px; + vertical-align: top; + margin-left: 12px; + transition: all .3s; + display: inline-block; + .textOverflow(); + } + &:hover { + span { + color: @primary-color; + } + } + } + } + + .datetime { + color: @disabled-color; + } + + .links { + padding: 20px 0 8px 24px; + font-size: 0; + > a { + color: rgba(0, 0, 0, 0.65); + display: inline-block; + font-size: 14px; + margin-bottom: 13px; + width: 25%; + } + } + + @media screen and (max-width: @screen-xl) and (min-width: @screen-lg) { + .active-card { + margin-bottom: 24px; + } + .members { + margin-bottom: 0; + } + .page-extra { + margin-left: -44px; + & > div { + padding: 0 16px; + } + } + } + + @media screen and (max-width: @screen-lg) { + .active-card { + margin-bottom: 24px; + } + .members { + margin-bottom: 0; + } + .page-extra { + float: none; + margin-right: 0; + & > div { + padding: 0 16px; + text-align: left; + &:after { + display: none; + } + } + } + } + + @media screen and (max-width: @screen-md) { + .page-extra { + margin-left: -16px; + } + } + + @media screen and (max-width: @screen-sm) { + .page-header { + display: block; + .desc { + margin-left: 0; + } + } + .page-extra { + & > div { + float: none; + } + } + } + + @media screen and (max-width: @screen-xs) { + .project-list { + .project-grid { + width: 100%; + } + } + } + + + + .icon-group { + transition: color 0.32s; + color: @text-color-secondary; + cursor: pointer; + margin-left: 16px; + &:hover { + color: @text-color; + } + } + + .rank-list { + padding: 0px 32px 32px 72px; + ul { + margin-top: 25px; + } + li { + zoom: 1; + margin-top: 16px; + display: flex; + justify-content: space-between; + .icon { + background-color: #f5f5f5; + border-radius: 20px; + display: inline-block; + font-size: 12px; + font-weight: 600; + margin-right: 24px; + height: 20px; + line-height: 20px; + width: 20px; + text-align: center; + } + .active { + background-color: #314659; + color: #fff; + } + } + } + + .sales-extra { + display: inline-block; + margin-right: 24px; + a { + margin-left: 24px; + } + } + + .sales-card { + .bar { + padding: 0px 0px 32px 32px; + } + .rank { + padding: 0 32px 32px 72px; + } + .ant-tabs-tab { + padding-top: 16px; + padding-bottom: 14px; + line-height: 24px; + } + + .ant-tabs-extra-content { + padding-right: 24px; + line-height: 55px; + } + + .ant-card-head { + position: relative; + } + } + + .sales-card-extra { + height: 68px; + } + + .sales-type-radio { + position: absolute; + left: 24px; + bottom: 15px; + } + + .offline-card { + .ant-tabs-ink-bar { + bottom: auto; + } + .ant-tabs-bar { + border-bottom: none; + } + .ant-tabs-nav-container-scrolling { + padding-left: 40px; + padding-right: 40px; + } + .ant-tabs-tab-prev-icon:before { + position: relative; + left: 6px; + } + .ant-tabs-tab-next-icon:before { + position: relative; + right: 6px; + } + } + + .trend-text { + margin-left: 8px; + color: @heading-color; + } + + @media screen and (max-width: @screen-lg) { + .sales-extra { + display: none; + } + + .rank-list { + li { + span:first-child { + margin-right: 8px; + } + } + } + } + + @media screen and (max-width: @screen-md) { + .rank-title { + margin-top: 16px; + } + + .sales-card .bar { + padding: 16px; + } + } + + @media screen and (max-width: @screen-sm) { + .sales-extra-wrap { + display: none; + } + + .sales-card { + .ant-tabs-content { + padding-top: 30px; + } + } + } + + .ant-table-pagination { + margin-bottom: 0; + } +} diff --git a/src/app/routes/pollution/management/management.component.ts b/src/app/routes/pollution/management/management.component.ts new file mode 100644 index 0000000..3f97f26 --- /dev/null +++ b/src/app/routes/pollution/management/management.component.ts @@ -0,0 +1,56 @@ +import { Component, OnInit, OnDestroy } from '@angular/core'; +import { NzMessageService } from 'ng-zorro-antd'; +import { _HttpClient } from '@delon/theme'; +import { HttpClient } from '@angular/common/http'; +import * as moment from 'moment'; +import { DeviceService } from '@business/services/http/device.service'; + +@Component({ + selector: 'pollution-management', + templateUrl: './management.component.html', + styleUrls: ['./management.component.less'], + providers: [DeviceService] +}) +export class PollutionManagementComponent implements OnInit, OnDestroy { + + data: any = {}; + + constructor( + private deviceService: DeviceService, + private http: _HttpClient, + public msg: NzMessageService, + private http2: HttpClient) { + } + + ngOnInit() { + const searchData = []; + for (let i = 0; i < 50; i += 1) { + searchData.push({ + index: i + 1, + point: `������������-${i}`, + value: Math.floor(Math.random() * 100) + }); + } + + this.data = { + searchData: searchData + }; + } + + ngOnDestroy(): void { + } + + sort(sortName, sortValue) { + this.data.searchData = [ + ...(<any[]>this.data.searchData).sort((a, b) => { + if (a[sortName] > b[sortName]) { + return (sortValue === 'ascend') ? 1 : -1; + } else if (a[sortName] < b[sortName]) { + return (sortValue === 'ascend') ? -1 : 1; + } else { + return 0; + } + }) + ]; + } +} diff --git a/src/app/routes/reports/query/query.component.html b/src/app/routes/reports/query/query.component.html index cae4d8e..ea66909 100644 --- a/src/app/routes/reports/query/query.component.html +++ b/src/app/routes/reports/query/query.component.html @@ -4,12 +4,10 @@ <nz-card [nzBordered]="false"> <form nz-form [nzLayout]="'inline'"> <div nz-row [nzGutter]="24"> - <div nz-col [nzSpan]="8" class="mb-md"> + <div nz-col [nzSpan]="6" class="mb-md"> <div nz-form-item class="d-flex"> <div [ngStyle]="{'width': '100px'}" nz-form-label> - <label> - ������({{ sensorsSelect+'/'+sensorsLength }}) - </label> + <label>������������</label> </div> <div nz-form-control class="flex-1"> <nz-popover [nzPlacement]="'bottomLeft'" [(nzVisible)]="sensorSelectVisible" [nzTrigger]="'click'"> @@ -29,20 +27,13 @@ </div> </ng-template> </nz-popover> - <!-- <div style="top:0; right: -62px; position:absolute; font-size: 16px; color: #696969;"> - <span>(</span> - <span style="display: inline-block; width: 50px; text-align: center;"> - {{ sensorsSelect+'/'+sensorsLength }} - </span> - <span>)</span> - </div> --> </div> </div> </div> - <div nz-col [nzSpan]="9" class="mb-md"> + <div nz-col [nzSpan]="4" class="mb-md"> <div nz-form-item class="d-flex"> <div [ngStyle]="{'width': '128px'}" nz-form-label> - <label>������������</label> + <label>������</label> </div> <div nz-form-control class="flex-1"> <nz-select name="timeUnit" [(ngModel)]="timeUnit" [nzPlaceHolder]="'������ ������������'" (ngModelChange)="setTimeUnit($event)" [nzNotFoundContent]="'������������'"> @@ -54,8 +45,22 @@ </div> <div nz-col [nzSpan]="7" class="mb-md"> <div nz-form-item class="d-flex"> + <div [ngStyle]="{'width': '128px'}" nz-form-label> + <label>������������</label> + </div> + <div nz-form-control class="flex-1"> + <nz-select name="deviceDimension" style="width: 100%;" [(ngModel)]="deviceDimension" nzAllowClear [nzPlaceHolder]="'������ '+ dimensionItem.label +'(������������������)'" + nzShowSearch (nzSearchChange)="dimensionsChange($event)" [nzNotFoundContent]="'������������'"> + <nz-option *ngFor="let option of dimensionOptions" [nzLabel]="option.name" [nzValue]="option"> + </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> - <label>������������</label> + <label>������:</label> </div> <div *ngIf="timeUnit.value!='MONTH'; else elseBlock" nz-form-control class="flex-1"> <nz-datepicker [ngStyle]="{'width': '100%'}" name="actualTime" [(ngModel)]="actualTime" [nzAllowClear]="false" [nzShowTime]="_timeType.showTime" @@ -72,68 +77,11 @@ </ng-template> </div> </div> - </div> - <div [ngStyle]="{'display':isCollapse ? 'none' : 'block' }" nz-row [nzGutter]="24"> - <div nz-col [nzSpan]="8" class="mb-md"> - <div nz-form-item class="d-flex"> - <div [ngStyle]="{'width': '100px'}" nz-form-label> - <label>���������</label> - </div> - <div nz-form-control class="flex-1"> - <nz-cascader [class.class123]="true" (nzLoad)="areaLazyLoad($event)" [nzPlaceHolder]="'������ ���/���/���'" (nzSelectionChange)="setAreasData($event)" - [nzAllowClear]="false" [nzChangeOnSelect]="true" [ngModel]="_areas" name="areasData"> - </nz-cascader> - </div> - </div> - </div> - <div nz-col [nzSpan]="9" class="mb-md"> - <div nz-form-item class="d-flex"> - <div [ngStyle]="{'width': '128px'}" nz-form-label> - <label> - <nz-dropdown> - <button nz-button nz-dropdown ><span>{{dimensionItem.label}}</span> <i class="anticon anticon-down"></i></button> - <ul nz-menu> - <li *ngFor="let option of otherDimensions;let i = index;" nz-menu-item> - <a (click)="selectDimension(option)">{{option.label}}</a> - </li> - </ul> - </nz-dropdown> - </label> - </div> - <div nz-form-control class="flex-1"> - <nz-select name="deviceDimension" style="width: 100%;" [(ngModel)]="deviceDimension" nzAllowClear [nzPlaceHolder]="'������ '+ dimensionItem.label +'(������������������)'" - nzShowSearch (nzSearchChange)="dimensionsChange($event)" [nzNotFoundContent]="'������������'"> - <nz-option *ngFor="let option of dimensionOptions" [nzLabel]="option.name" [nzValue]="option"> - </nz-option> - </nz-select> - </div> - </div> - </div> - <div nz-col [nzSpan]="7" class="mb-md"> - <div nz-form-item class="d-flex"> - <div [ngStyle]="{'width': '70px'}" nz-form-label> - <label>��� ���</label> - </div> - <div nz-form-control class="flex-1"> - <nz-select name="device" style="width: 100%;" [(ngModel)]="device" nzAllowClear [nzPlaceHolder]="'��������� '+ dimensionItem.label +'(������������������������)'" nzShowSearch - (nzSearchChange)="devicesChange($event)" [nzNotFoundContent]="'������������'"> - <nz-option *ngFor="let option of deviceOptions" [nzLabel]="option.name" [nzValue]="option"> - </nz-option> - </nz-select> - </div> - </div> - </div> - </div> - <div nz-row> - <div nz-col [nzSpan]="24" class="text-right"> + <div nz-col [nzSpan]="2" class="mb-md"> <button nz-button [nzType]="'primary'" (click)="loadGrid()"> <i class="anticon anticon-search"></i> <span>������</span> </button> - <a class="pl-sm" (click)="toggleCollapse()"> - ������ - <i class="anticon" [class.anticon-down]="isCollapse" [class.anticon-up]="!isCollapse"></i> - </a> </div> </div> </form> @@ -211,6 +159,8 @@ </tr> </tbody> </nz-table> + + <!-- <div *ngIf="grid.data.length>0" [ngClass]="{'table-scroll':true,'table-scroll-box-shadow': sensorNameScrollLeft>2 }" style="position: absolute; top:0;"> <nz-table #nzTable [nzDataSource]="grid.data" [nzIsPagination]="false"> <thead nz-thead> @@ -234,6 +184,8 @@ </tbody> </nz-table> </div> + --> + </div> </div> </nz-card> diff --git a/src/app/routes/reports/query/query.component.ts b/src/app/routes/reports/query/query.component.ts index 923a8c7..03517bf 100644 --- a/src/app/routes/reports/query/query.component.ts +++ b/src/app/routes/reports/query/query.component.ts @@ -23,7 +23,7 @@ styleUrls: ['./query.component.less'] }) export class QueryComponent implements OnInit { - + // aqi������������ private aqiSort = { e1: 1, @@ -43,7 +43,7 @@ // }; public expandForm: boolean; // ��������� ������������ // public sensors: any[] = []; - public sensorOptions: any[] = []; + public sensorOptions: any[] = []; /** * ��������������������������������� * ��������������������������������������������������������������������� @@ -72,7 +72,7 @@ private _timeType: {showTime: boolean|{[key: string]: Function|boolean}, mode: 'month' | 'day', dateFormat: string } = {showTime: false, mode: 'day', dateFormat: 'YYYY���MM���DD���'}; // ���key-value������,������������������ private _sensors: {[key: string]: string} = {}; - private _sensorNames: string; + private _sensorNames: string; get sensorNames(): string { return this._sensorNames; } @@ -85,27 +85,29 @@ this.reloadChart(); this.switchSensor(this.chartSelectedIndex); // this.chartLoading = false; - } + } this.isChartCollapse = !this.isChartCollapse; } public deviceOptions: Device[] = []; public dataCondition: DataCondition = {areaRangeId: 320583, areaRange: AreaRange.AREA, deviceDimension: DeviceDimension.NONE}; public dimensionOptions: MonitorPoint[] = []; - + get actualYear(): number { return this.actualTime.getFullYear(); } - set actualYear(year) { + set actualYear(year) { this.actualTime.setFullYear(Number(year)); } dimensionsChange(text?: string) { - switch (this.dimensionItem.value) { - case DeviceDimension.MONITORPOINT: - this.monitorPointsChange(text); break; - case DeviceDimension.PROFESSION: - this.professionsChange(text); break; - } + // switch (this.dimensionItem.value) { + // case DeviceDimension.MONITORPOINT: + // this.monitorPointsChange(text); break; + // case DeviceDimension.PROFESSION: + // this.professionsChange(text); break; + // } + + this.monitorPointsChange(text); } professionsChange(text?: string) { this.http.get<ResultBean<any[]>>('profession/getall').subscribe( @@ -146,7 +148,7 @@ devicesChange(text?: string) { if (!!this.deviceDimension) { const example = new ExampleService(); - const deviceDimensionProperty = + const deviceDimensionProperty = this.dimensionItem.value === DeviceDimension.MONITORPOINT ? 'monitorPointId' : 'professionId'; if (!!text) { example.or().andEqualTo({ name: deviceDimensionProperty, value: this.deviceDimension.id }) @@ -175,7 +177,7 @@ public onChartInit(e): void { this.echartsIntance = e; } - constructor( + constructor( private http: _HttpClient, private sensorsService: SensorsService, private deviceService: DeviceService, @@ -183,13 +185,13 @@ private monitorPointService: MonitorPointService, private msg: NzMessageService, private dateService: DateService, - ) { } - ngOnInit() { + ) { } + ngOnInit() { this.initPage(); // ������������ tree click ������ this.treeClickStream.debounceTime(1).subscribe( event => { - const data = event.node.data; - // console.log(data); + const data = event.node.data; + // console.log(data); if (data.id === -1) { const children = data.children; // ������������ @@ -220,7 +222,7 @@ delete this._sensors [data.id]; } const length = Object.keys(this._sensors).length; - parentData['halfChecked'] = length > 0 + parentData['halfChecked'] = length > 0 && this.sensorOptions[0].children.length > length; parentData['checked'] = !parentData['halfChecked'] && length !== 0; } @@ -241,7 +243,7 @@ if (res.code === ResultCode.SUCCESS) { const org = res.data; const areas = new Array(3); - if (!!org.areaNames) { + if (!!org.areaNames) { const areaNames = org.areaNames; Object.keys(areaNames).forEach( key => { @@ -257,7 +259,7 @@ } } } - ); + ); } else { for (let i = 0; i < areas.length; i++) { switch (i) { @@ -312,8 +314,8 @@ let isChanged = false; isChanged = areas.some( (item , index: number) => { // this._areas[index] ���null ������ ������������������ - return this._areas.length < areas.length - || !this._areas[index] + return this._areas.length < areas.length + || !this._areas[index] || this._areas[index].value !== item.value; }); if ( isChanged ) { @@ -350,7 +352,7 @@ get deviceDimension(): {id: number, name: string} { return this._deviceDimension; } - set deviceDimension(value) { + set deviceDimension(value) { if (!!value) { // ������ ������������������ if (this._deviceDimension !== value) { @@ -364,7 +366,7 @@ this.device = null; this.deviceOptions = null; } - + } // ��������� ������ ������������ public _device: Device; @@ -375,15 +377,15 @@ get device(): Device { return this._device; } - + /** * ������ ��������������� - * + * * @readonly * @type {string} * @memberof QueryComponent - */ + */ private treeClickStream: Subject<any> = new Subject<any>(); public onTreeClickSelect(event): void { this.treeClickStream.next(event); @@ -424,13 +426,13 @@ this._sensorNames = sensorNameList.join(', '); }, 1); } - public setTimeUnit(val: {label: string, value: TimeUnits} ) { + public setTimeUnit(val: {label: string, value: TimeUnits} ) { switch (val.value) { // YYYY-MM-DD HH:mm:ss case TimeUnits.MONTH: this._timeType.dateFormat = 'YYYY���'; // this._timeType.dateFormat = 'YYYY-MM'; - // this._timeType.mode = 'month'; + // this._timeType.mode = 'month'; // this._timeType.endShowTime = null; break; case TimeUnits.DAY: @@ -476,7 +478,7 @@ } return result; } - public loadGrid(): void { + public loadGrid(): void { // ������������ const sensors = Object.values(this._sensors); if ( sensors.length === 0 ) { @@ -504,18 +506,18 @@ this.dataCondition.areaRangeId = item; switch (index) { case 0: this.dataCondition.areaRange = AreaRange.DEVICE; break; - case 1: + case 1: // ������������������ if (this.dimensionItem.value === DeviceDimension.MONITORPOINT) { - this.dataCondition.areaRange = AreaRange.MONITORPOINT; + this.dataCondition.areaRange = AreaRange.MONITORPOINT; // ��������������� } else { // ������������������������ this.switchAreas(); // ��������������������� - this.dataCondition.areaRangeId = areasData.slice(-1).pop(); + this.dataCondition.areaRangeId = areasData.slice(-1).pop(); } break; - case 2: + case 2: this.switchAreas(); break; } @@ -556,9 +558,9 @@ return {text: item}; } ); break; - } + } // ��������������������������������� - this.tableWidth = this.grid.columns.length * 80 + 160; + this.tableWidth = this.grid.columns.length * 80 + 160; this.reloadChart(); // ������������������ this.reloadChartTitle(); @@ -616,7 +618,7 @@ } } private reloadChart(): void { - const timeList = this.grid.columns.map(item => item.text); + const timeList = this.grid.columns.map(item => item.text); if (!!this.echartsIntance) { this.chartOption = null; this.echartsIntance.clear(); @@ -625,7 +627,6 @@ // if ( this.chartSelectedIndex < this.grid.data.length ) { // series = [{type: 'line', data: this.grid.data[this.chartSelectedIndex]}]; // } - debugger; this.initOpton({ xAxis : [{data : timeList}]}); this.chartLoading = true; } @@ -685,13 +686,13 @@ switch ( this.dataCondition.areaRange ) { case AreaRange.MONITORPOINT : names[0] = '������������'; - names[1] = this._deviceDimension.name; break; + names[1] = this._deviceDimension.name; break; case AreaRange.DEVICE : names[0] = '������'; names[1] = this._device.name; break; default : names[0] = ''; - names[1] = this._areas.map( item => item.label).join('/'); + names[1] = this._areas.map( item => item.label).join('/'); break; } // ������������ @@ -711,7 +712,7 @@ names[3] = moment(this.actualTime).format(this._timeType.dateFormat); if ( this.grid.data.length > this.chartSelectedIndex) { names[4] = this.grid.data[this.chartSelectedIndex].sensor.name; - } + } const title = names.join(' ') + ' ������'; if (title.trim() !== this._chartTitleTemp.trim()) { this._chartTitleTemp = title; @@ -723,8 +724,8 @@ } public switchSensor(index: number): void { this.chartSelectedIndex = index; - this.chartLoading = true; - this.reloadChartTitle(); + this.chartLoading = true; + this.reloadChartTitle(); setTimeout(() => { const series = [{type: 'line', data: this.grid.data[index].data}]; this.echartsIntance.setOption({ @@ -738,15 +739,15 @@ ], series: series }); - this.chartLoading = false; - }, 600); + this.chartLoading = false; + }, 600); } private getPeriodDate(value: Date , type?: 'start'|'end' ): Date { let month = 0; let day = 1; let hour = 0; let minute = 0; - let second = 0; + let second = 0; let millisecond = 0; if ('end' === type) { month = 11; @@ -775,7 +776,7 @@ public sensorTableFocus(index) { this.sensorTableFocusIndex = index; } - + public sensorTableBlur(index) { this.sensorTableFocusIndex = -1; } diff --git a/src/app/routes/routes-routing.module.ts b/src/app/routes/routes-routing.module.ts index ae052a2..7cec853 100644 --- a/src/app/routes/routes-routing.module.ts +++ b/src/app/routes/routes-routing.module.ts @@ -13,6 +13,8 @@ import { ReportComponent } from './report/report.component'; import { UserLoginComponent } from 'app/routes/passport/login/login.component'; +import { ForecastingWarningComponent } from './forecasting-warning/forecasting-warning.component'; +import { PollutionManagementComponent } from 'app/routes/pollution/management/management.component'; const routes: Routes = [ { @@ -33,7 +35,10 @@ { path: 'devices', loadChildren: './devices/devices.module#DevicesModule' }, { path: 'sensors', loadChildren: './sensors/sensors.module#SensorsModule' }, { path: 'systems', loadChildren: './systems/systems.module#SystemsModule' }, - { path: 'reports', loadChildren: './reports/reports.module#ReportsModule' } + { path: 'reports', loadChildren: './reports/reports.module#ReportsModule' }, + + { path: 'forecasting-warning', component: ForecastingWarningComponent }, + { path: 'pollution/management', component: PollutionManagementComponent } ] }, // passport { diff --git a/src/app/routes/routes.module.ts b/src/app/routes/routes.module.ts index 776196a..2653f7a 100644 --- a/src/app/routes/routes.module.ts +++ b/src/app/routes/routes.module.ts @@ -12,7 +12,10 @@ import { DashboardAnalysisComponent } from './dashboard/analysis/analysis.component'; import { DashboardMonitorComponent } from './dashboard/monitor/monitor.component'; import { DashboardWorkplaceComponent } from './dashboard/workplace/workplace.component'; +import { ForecastingWarningComponent } from './forecasting-warning/forecasting-warning.component'; import { ReportComponent } from './report/report.component'; +import { PollutionManagementComponent } from './pollution/management/management.component'; + // Statics import 'rxjs/add/observable/throw'; @@ -35,7 +38,9 @@ DashboardMonitorComponent, DashboardWorkplaceComponent, UserLoginComponent, - ReportComponent + ReportComponent, + ForecastingWarningComponent, + PollutionManagementComponent ], providers: [ _HttpClient, diff --git a/src/assets/app-data.json b/src/assets/app-data.json index 921a5c0..75b4660 100644 --- a/src/assets/app-data.json +++ b/src/assets/app-data.json @@ -22,22 +22,7 @@ { "text": "������������", "icon": "icon-pie-chart", - "children": [ - { - "text": "������", - "link": "/" - } - , - { - "text": "������", - "link": "/" - } - , - { - "text": "������������", - "link": "/" - } - ] + "link": "/forecasting-warning" }, { "text": "������������", @@ -57,7 +42,7 @@ { "text": "������������", "icon": "icon-chemistry", - "link": "/" + "link": "/pollution/management" }, { "text": "������������������", @@ -82,7 +67,16 @@ { "text": "������������", "icon": "icon-note", - "link": "/" + "children": [{ + "text": "������������", + "link": "/" + }, { + "text": "������������", + "link": "/" + }, { + "text": "������������������", + "link": "/" + }] }, { "text": "������������", @@ -95,7 +89,7 @@ "children": [ { "text": "������������", - "link": "/maintenance/data-check" + "link": "/reports/query" } , { diff --git a/src/environments/environment.chore.ts b/src/environments/environment.chore.ts index 206d19c..db0ba3a 100644 --- a/src/environments/environment.chore.ts +++ b/src/environments/environment.chore.ts @@ -3,5 +3,6 @@ SERVER_URL: `./`, production: true, hmr: false, - useHash: false + useHash: false, + SERVER_BASH_URL: `http://monitor-api2.7drlb.com/` }; diff --git a/src/environments/environment.hmr.ts b/src/environments/environment.hmr.ts index 23a52db..f094f44 100644 --- a/src/environments/environment.hmr.ts +++ b/src/environments/environment.hmr.ts @@ -1,7 +1,7 @@ export const environment = { chore: false, SERVER_URL: `./`, - production: false, + production: true, hmr: true, useHash: true, SERVER_BASH_URL: `http://monitor-api2.7drlb.com/` diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 0fc0b3c..5691149 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -9,5 +9,5 @@ production: false, hmr: false, useHash: true, - SERVER_BASH_URL: `http://127.0.0.1:8080/` + SERVER_BASH_URL: `http://monitor-api2.7drlb.com/` }; -- Gitblit v1.8.0