From 907e8b4e2c9746d0e4c3dc0d90295581309a7f63 Mon Sep 17 00:00:00 2001 From: yarik Date: Tue, 14 Feb 2017 14:08:07 +0200 Subject: [PATCH] Flow intensity --- src/app/app.module.ts | 7 +++++++ src/app/app.routes.ts | 2 ++ src/app/data/flow-intensity/flow-intensity.component.html | 12 ++++++++++++ src/app/data/flow-intensity/flow-intensity.component.ts | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/app/data/flow-intensity/flow-intensity.scss | 4 ++++ src/models/flow-intensity.ts | 29 +++++++++++++++++++++++++++++ src/services/flow-intensity-create.service.ts | 12 ++++++++++++ src/services/flow-intensity.service.ts | 23 +++++++++++++++++++++++ 8 files changed, 310 insertions(+), 0 deletions(-) create mode 100644 src/app/data/flow-intensity/flow-intensity.component.html create mode 100644 src/app/data/flow-intensity/flow-intensity.component.ts create mode 100644 src/app/data/flow-intensity/flow-intensity.scss create mode 100644 src/models/flow-intensity.ts create mode 100644 src/services/flow-intensity-create.service.ts create mode 100644 src/services/flow-intensity.service.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 5ad311c..7e5761a 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -26,6 +26,7 @@ import { RoadSurfaceComponent } from './data/road-surface/road-surface.component import { RoadWidthComponent } from './data/road-width/road-width.component'; import { EditorComponent } from '../helpers/editor.component'; import { RendererComponent } from '../helpers/renderer.component'; +import { FlowIntensityComponent } from './data/flow-intensity/flow-intensity.component'; // Services import { BusStopCreateService } from '../services/bus-stop-create.service'; @@ -37,6 +38,8 @@ import { RoadSurfaceCreateService } from '../services/road-surface-create.servic import { RoadWidthService } from '../services/road-width.service'; import { RoadWidthCreateService } from '../services/road-width-create.service'; import { BooleanSelectListService } from '../services/boolean-select-list.service'; +import { FlowIntensityCreateService } from '../services/flow-intensity-create.service'; +import { FlowIntensityService } from '../services/flow-intensity.service'; const httpInterceptorProviders: Type[] = [ RequestInterceptor, @@ -56,6 +59,7 @@ const httpInterceptorProviders: Type[] = [ EditorComponent, RendererComponent, RoadWidthComponent, + FlowIntensityComponent, ], // directives, components, and pipes owned by this NgModule imports: [ BrowserModule, @@ -66,6 +70,7 @@ const httpInterceptorProviders: Type[] = [ RendererComponent, RoadSurfaceComponent, RoadWidthComponent, + FlowIntensityComponent, ]), CovalentCoreModule.forRoot(), CovalentChartsModule.forRoot(), @@ -93,6 +98,8 @@ const httpInterceptorProviders: Type[] = [ RoadSurfaceService, RoadWidthCreateService, RoadWidthService, + FlowIntensityCreateService, + FlowIntensityService, ], // additional providers needed for this module entryComponents: [ ], bootstrap: [ AppComponent ], diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 47b248d..b33152e 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -8,6 +8,7 @@ import { BusStopComponent } from './data/bus-stop/bus-stop.component'; import { RoadSurfaceComponent } from './data/road-surface/road-surface.component'; import { RoadWidthComponent } from './data/road-width/road-width.component'; import { ServiceObjectComponent } from './data/service-object/service-object.component'; +import { FlowIntensityComponent } from './data/flow-intensity/flow-intensity.component'; const routes: Routes = [ {path: 'login', component: LoginComponent}, @@ -18,6 +19,7 @@ const routes: Routes = [ {path: 'service-object', component: ServiceObjectComponent}, {path: 'road-surface', component: RoadSurfaceComponent}, {path: 'road-width', component: RoadWidthComponent}, + {path: 'flow-intensity', component: FlowIntensityComponent}, ]}, ]}, ]; diff --git a/src/app/data/flow-intensity/flow-intensity.component.html b/src/app/data/flow-intensity/flow-intensity.component.html new file mode 100644 index 0000000..7db449a --- /dev/null +++ b/src/app/data/flow-intensity/flow-intensity.component.html @@ -0,0 +1,12 @@ +
+ + +
+
+ + +
+
\ No newline at end of file diff --git a/src/app/data/flow-intensity/flow-intensity.component.ts b/src/app/data/flow-intensity/flow-intensity.component.ts new file mode 100644 index 0000000..6aee7de --- /dev/null +++ b/src/app/data/flow-intensity/flow-intensity.component.ts @@ -0,0 +1,221 @@ +import { Component, ViewEncapsulation, AfterViewInit } from '@angular/core'; +import { TdLoadingService } from '@covalent/core'; +import { GridOptions, IGetRowsParams, IRowModel } from 'ag-grid/main'; + +import { StatementBase } from '../../../models/statement.base'; + +import { FlowIntensityService } from '../../../services/flow-intensity.service'; +import { FlowIntensity } from '../../../models/flow-intensity'; +import { EditorComponent } from '../../../helpers/editor.component'; +import { RendererComponent } from '../../../helpers/renderer.component'; +import { FlowIntensityCreateService } from '../../../services/flow-intensity-create.service'; +import { RegionSelectList } from '../../../models/region-select-list'; +import { RoadDirectionSelectList } from '../../../models/road-direction-select-list'; +import { RoadSelectList } from '../../../models/road-select-list'; +import { SettlementSelectList } from '../../../models/settlement-select-list'; + +import { routerTransition } from '../../../animations/router.animation'; + +@Component({ + // tslint:disable-next-line:component-selector + selector: 'flow-grid', + templateUrl: 'flow-intensity.component.html', + styleUrls: ['flow-intensity.scss'], + encapsulation: ViewEncapsulation.None, +}) +export class FlowIntensityComponent extends StatementBase { + + public regions: RegionSelectList[]; + public settlements: SettlementSelectList[]; + public roads: RoadSelectList[]; + public roadDirections: RoadDirectionSelectList[]; + + constructor( + protected service: FlowIntensityService, + protected dataService: FlowIntensityCreateService, + protected loadingService: TdLoadingService, + ) { + super(); + } + + protected createColumnDefs(): any[] { + return [ + { + headerName: '#', + width: 30, + checkboxSelection: true, + suppressSorting: true, + suppressMenu: true, + pinned: true, + }, + { + headerName: 'ID', + field: 'id', + }, + { + headerName: 'Назва дороги', + field: 'roadId', + editable: true, + cellEditorFramework: EditorComponent, + cellRendererFramework: RendererComponent, + cellEditorParams: { + data: this.roads, + valueCol: 'roadId', + labelCol: 'name', + }, + }, + { + headerName: 'Область', + field: 'regionId', + editable: true, + cellEditorFramework: EditorComponent, + cellRendererFramework: RendererComponent, + cellEditorParams: { + data: this.regions, + valueCol: 'regionId', + labelCol: 'name', + }, + }, + { + headerName: 'Місцезнаходження, км+', + field: 'location', + editable: true, + }, + { + headerName: 'Місцезнаходження ділянки з однорідною інтенсивністю руху, км+, початок', + field: 'begin', + editable: true, + }, + { + headerName: 'Місцезнаходження ділянки з однорідною інтенсивністю руху, км+, кінець', + field: 'end', + editable: true, + }, + { + headerName: 'Напрямок смуги руху', + field: 'roadDirectionId', + editable: true, + cellEditorFramework: EditorComponent, + cellRendererFramework: RendererComponent, + cellEditorParams: { + data: this.roadDirections, + valueCol: 'roadDirectionId', + labelCol: 'name', + }, + }, + { + headerName: 'Найближчий населений пункт', + field: 'settlementId', + editable: true, + cellEditorFramework: EditorComponent, + cellRendererFramework: RendererComponent, + cellEditorParams: { + data: this.settlements, + valueCol: 'settlementId', + labelCol: 'name', + }, + }, + { + headerName: 'Інтенсивність руху, авт/добу, всього', + field: 'intensityTotal', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, приріст', + field: 'intensityIncrease', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, мотоцикл без коляски та мопед', + field: 'intensityMoto', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, мотоцикл з коляскою', + field: 'intensityMotoSidecar', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, легковий автомобіль', + field: 'intensityCar', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, вантажний автомобіль вантажопідйомністю: до 2 т.', + field: 'intensityTruckTwo', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, вантажний автомобіль вантажопідйомністю: від 2 т. до 6 т.', + field: 'intensityTruckTwoSix', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, вантажний автомобіль вантажопідйомністю: від 6 т. до 8 т.', + field: 'intensityTruckSixEight', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, вантажний автомобіль вантажопідйомністю: від 8 т. до 14 т.', + field: 'intensityTruckEightFourteen', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, вантажний автомобіль вантажопідйомністю: понад 14 т.', + field: 'intensityTruckFourteen', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, автопоїзд вантажопідйомністю: до 12 т.', + field: 'intensityLorryTwelve', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, автопоїзд вантажопідйомністю: від 12 т. до 20 т.', + field: 'intensityLorryTwelveTwenty', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, автопоїзд вантажопідйомністю: від 20 т. до 30 т.', + field: 'intensityLorryTwentyThirty', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, автопоїзд вантажопідйомністю: понад 30 т.', + field: 'intensityLorryThirty', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, колісний трактор з причепами до 10 т.', + field: 'intensityTractorUnderTen', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, колісний трактор з причепами понад 10 т.', + field: 'intensityTractorOverTen', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, автобус, тролейбус', + field: 'intensityBus', + editable: true, + }, + { + headerName: 'Інтенсивність руху, авт/добу, автобус зчеплений (здвоєний)', + field: 'intensityBusCoupled', + editable: true, + }, + ]; + } + + protected initFunction(): void { + this.dataService.getModels().then((models: any) => { + this.regions = models.regionSelectListDsM as RegionSelectList[]; + this.settlements = models.settlementSelectListDsM as SettlementSelectList[]; + this.roads = models.roadSelectListDsM as RoadSelectList[]; + this.roadDirections = models.roadDirectionSelectListDsM as RoadDirectionSelectList[]; + }).then(() => { + this.bootstrapGrid(); + }); + } +} diff --git a/src/app/data/flow-intensity/flow-intensity.scss b/src/app/data/flow-intensity/flow-intensity.scss new file mode 100644 index 0000000..de4dc3d --- /dev/null +++ b/src/app/data/flow-intensity/flow-intensity.scss @@ -0,0 +1,4 @@ +.toolbar button { + margin: 2px; + padding: 0; +} \ No newline at end of file diff --git a/src/models/flow-intensity.ts b/src/models/flow-intensity.ts new file mode 100644 index 0000000..c1626f8 --- /dev/null +++ b/src/models/flow-intensity.ts @@ -0,0 +1,29 @@ +export class FlowIntensity { + id: number; + roadId: number; + regionId: number; + location: number; + begin: number; + end: number; + roadDirectionId: number; + settlementId: number; + intensityTotal: number; + intensityIncrease: number; + intensityMoto: number; + intensityMotoSidecar: number; + intensityCar: number; + intensityTruckTwo: number; + intensityTruckTwoSix: number; + intensityTruckSixEight: number; + intensityTruckEightFourteen: number; + intensityTruckFourteen: number; + intensityLorryTwelve: number; + intensityLorryTwelveTwenty: number; + intensityLorryTwentyThirty: number; + intensityLorryThirty: number; + intensityTractorUnderTen: number; + intensityTractorOverTen: number; + intensityBus: number; + intensityBusCoupled: number; + dateAdd: number; +} diff --git a/src/services/flow-intensity-create.service.ts b/src/services/flow-intensity-create.service.ts new file mode 100644 index 0000000..fc81f51 --- /dev/null +++ b/src/services/flow-intensity-create.service.ts @@ -0,0 +1,12 @@ +import { Injectable } from '@angular/core'; +import { Http } from '@angular/http'; + +import { CreateBaseService } from './create.base.service'; + +@Injectable() +export class FlowIntensityCreateService extends CreateBaseService { + protected apiUrl: string = 'http://localhost:5000/flowintensity/directory'; + constructor(protected http: Http) { + super(http); + } +} diff --git a/src/services/flow-intensity.service.ts b/src/services/flow-intensity.service.ts new file mode 100644 index 0000000..d88a4a5 --- /dev/null +++ b/src/services/flow-intensity.service.ts @@ -0,0 +1,23 @@ +import { Injectable } from '@angular/core'; +import { Http } from '@angular/http'; + +import { StatementBaseService } from './statement.base.service'; + +import { FlowIntensity } from '../models/flow-intensity'; + +@Injectable() +export class FlowIntensityService extends StatementBaseService { + protected url: string = 'http://localhost:5000/flowintensity'; + constructor(protected http: Http) { + super(http); + } + public createModel(): Object { + return new FlowIntensity(); + } + protected parseModels(json: any): any[] { + return json.flowIntensityEditDsM as FlowIntensity[]; + }; + protected parseModel(json: any): any { + return json as FlowIntensity; + }; +} -- libgit2 0.21.4