5 files added
9 files modified
| | |
| | | ngOnInit() { |
| | | // 设置Token信息 |
| | | this.tokenService.set({ |
| | | token: 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsIm9pZCI6NSwibW9kZSI6IldlYiIsInNjb3BlcyI6WyJ0ZW1wIl0sImlzcyI6Imh0dHA6Ly9tb25pdG9yLjdkcmxiLmNvbSIsImlhdCI6MTUzMTMxNjU4MCwiZXhwIjoxNTM5MDkyNTgwfQ.tWE7AqGfLwwK-nO1FUveJ8xKqpxitqG1GdhKHp9JDyRPjNDYX7ocgkEw0W2G8hKL_tJIjjrQ1pc0zvCmLTJ-pg', |
| | | token: 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsIm9pZCI6NSwibW9kZSI6IldlYiIsInNjb3BlcyI6WyJ0ZW1wIl0sImlzcyI6Imh0dHA6Ly9tb25pdG9yLjdkcmxiLmNvbSIsImlhdCI6MTUzMTM4MTIyMiwiZXhwIjoxNTMxMzgxNTIyfQ.iIlgjuDQP1C2mOWUSd0DT6sKxg7Wavsu3oOiHxGf58BZmrwl3OEIFH71yHo9DbXTRWnm5QzEeyjdxLXcWBA3mQ', |
| | | name: 'admin', |
| | | email: `admin@qq.com`, |
| | | id: 10000, |
New file |
| | |
| | | <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> |
New file |
| | |
| | | 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() { |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | |
| | | <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> |
| | | |
New file |
| | |
| | | @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; |
| | | } |
| | | } |
New file |
| | |
| | | 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; |
| | | } |
| | | }) |
| | | ]; |
| | | } |
| | | } |
| | |
| | | <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'"> |
| | |
| | | </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]="'无法找到'"> |
| | |
| | | </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" |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | </tbody> |
| | | </nz-table> |
| | | </div> |
| | | --> |
| | | |
| | | </div> |
| | | </div> |
| | | </nz-card> |
| | |
| | | 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( |
| | |
| | | // 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; |
| | | } |
| | |
| | | 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 = [ |
| | | { |
| | |
| | | { 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 |
| | | { |
| | |
| | | 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'; |
| | | |
| | |
| | | DashboardMonitorComponent, |
| | | DashboardWorkplaceComponent, |
| | | UserLoginComponent, |
| | | ReportComponent |
| | | ReportComponent, |
| | | ForecastingWarningComponent, |
| | | PollutionManagementComponent |
| | | ], |
| | | providers: [ |
| | | _HttpClient, |
| | |
| | | { |
| | | "text": "预报预警", |
| | | "icon": "icon-pie-chart", |
| | | "children": [ |
| | | { |
| | | "text": "预警", |
| | | "link": "/" |
| | | } |
| | | , |
| | | { |
| | | "text": "预报", |
| | | "link": "/" |
| | | } |
| | | , |
| | | { |
| | | "text": "因子数据", |
| | | "link": "/" |
| | | } |
| | | ] |
| | | "link": "/forecasting-warning" |
| | | }, |
| | | { |
| | | "text": "环境管理", |
| | |
| | | { |
| | | "text": "污染管控", |
| | | "icon": "icon-chemistry", |
| | | "link": "/" |
| | | "link": "/pollution/management" |
| | | }, |
| | | { |
| | | "text": "企业污染管理", |
| | |
| | | { |
| | | "text": "统计分析", |
| | | "icon": "icon-note", |
| | | "children": [{ |
| | | "text": "统计分析", |
| | | "link": "/" |
| | | }, { |
| | | "text": "污染日历", |
| | | "link": "/" |
| | | }, { |
| | | "text": "站点数据分析", |
| | | "link": "/" |
| | | }] |
| | | }, |
| | | { |
| | | "text": "网络溯源", |
| | |
| | | "children": [ |
| | | { |
| | | "text": "数据审核", |
| | | "link": "/maintenance/data-check" |
| | | "link": "/reports/query" |
| | | } |
| | | , |
| | | { |
| | |
| | | SERVER_URL: `./`, |
| | | production: true, |
| | | hmr: false, |
| | | useHash: false |
| | | useHash: false, |
| | | SERVER_BASH_URL: `http://monitor-api2.7drlb.com/` |
| | | }; |
| | |
| | | export const environment = { |
| | | chore: false, |
| | | SERVER_URL: `./`, |
| | | production: false, |
| | | production: true, |
| | | hmr: true, |
| | | useHash: true, |
| | | SERVER_BASH_URL: `http://monitor-api2.7drlb.com/` |
| | |
| | | production: false, |
| | | hmr: false, |
| | | useHash: true, |
| | | SERVER_BASH_URL: `http://127.0.0.1:8080/` |
| | | SERVER_BASH_URL: `http://monitor-api2.7drlb.com/` |
| | | }; |