From ad296a58d7598740335245c1508f9a016c07f870 Mon Sep 17 00:00:00 2001 From: yarik Date: Tue, 14 Feb 2017 18:28:48 +0200 Subject: [PATCH] Road --- src/app/app.module.ts | 7 +++++++ src/app/app.routes.ts | 2 ++ src/app/data/data.component.html | 6 +----- src/app/data/road/road.component.html | 12 ++++++++++++ src/app/data/road/road.component.ts | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/app/data/road/road.scss | 4 ++++ src/models/road-type-select-list.ts | 4 ++++ src/models/road.ts | 14 ++++++++++++++ src/services/road-create.service.ts | 12 ++++++++++++ src/services/road.service.ts | 23 +++++++++++++++++++++++ 10 files changed, 160 insertions(+), 5 deletions(-) create mode 100644 src/app/data/road/road.component.html create mode 100644 src/app/data/road/road.component.ts create mode 100644 src/app/data/road/road.scss create mode 100644 src/models/road-type-select-list.ts create mode 100644 src/models/road.ts create mode 100644 src/services/road-create.service.ts create mode 100644 src/services/road.service.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index e8d0097..b4b3e0c 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -28,6 +28,7 @@ import { CrossSectionComponent } from './data/cross-section/cross-section.compon import { EditorComponent } from '../helpers/editor.component'; import { RendererComponent } from '../helpers/renderer.component'; import { FlowIntensityComponent } from './data/flow-intensity/flow-intensity.component'; +import { RoadComponent } from './data/road/road.component'; // Services import { BusStopCreateService } from '../services/bus-stop-create.service'; @@ -43,6 +44,8 @@ import { CrossSectionCreateService } from '../services/cross-section-create.serv import { BooleanSelectListService } from '../services/boolean-select-list.service'; import { FlowIntensityCreateService } from '../services/flow-intensity-create.service'; import { FlowIntensityService } from '../services/flow-intensity.service'; +import { RoadCreateService } from '../services/road-create.service'; +import { RoadService } from '../services/road.service'; const httpInterceptorProviders: Type[] = [ RequestInterceptor, @@ -63,6 +66,7 @@ const httpInterceptorProviders: Type[] = [ RendererComponent, RoadWidthComponent, FlowIntensityComponent, + RoadComponent, CrossSectionComponent, ], // directives, components, and pipes owned by this NgModule imports: [ @@ -75,6 +79,7 @@ const httpInterceptorProviders: Type[] = [ RoadSurfaceComponent, RoadWidthComponent, FlowIntensityComponent, + RoadComponent, CrossSectionComponent, ]), CovalentCoreModule.forRoot(), @@ -105,6 +110,8 @@ const httpInterceptorProviders: Type[] = [ RoadWidthService, FlowIntensityCreateService, FlowIntensityService, + RoadCreateService, + RoadService, CrossSectionCreateService, CrossSectionService, ], // additional providers needed for this module diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index d16dde2..897ed17 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -10,6 +10,7 @@ import { RoadWidthComponent } from './data/road-width/road-width.component'; import { CrossSectionComponent } from './data/cross-section/cross-section.component'; import { ServiceObjectComponent } from './data/service-object/service-object.component'; import { FlowIntensityComponent } from './data/flow-intensity/flow-intensity.component'; +import { RoadComponent } from './data/road/road.component'; const routes: Routes = [ {path: 'login', component: LoginComponent}, @@ -22,6 +23,7 @@ const routes: Routes = [ {path: 'road-width', component: RoadWidthComponent}, {path: 'flow-intensity', component: FlowIntensityComponent}, {path: 'cross-section', component: CrossSectionComponent}, + {path: 'road', component: RoadComponent}, ]}, ]}, ]; diff --git a/src/app/data/data.component.html b/src/app/data/data.component.html index 6659d53..04defbc 100644 --- a/src/app/data/data.component.html +++ b/src/app/data/data.component.html @@ -14,7 +14,7 @@ Відомості - + dashboard Автомобільні дороги @@ -54,10 +54,6 @@ dashboard Автобусні зупинки - - dashboard - Інтенсивності -
{{title}} diff --git a/src/app/data/road/road.component.html b/src/app/data/road/road.component.html new file mode 100644 index 0000000..7db449a --- /dev/null +++ b/src/app/data/road/road.component.html @@ -0,0 +1,12 @@ +
+ + +
+
+ + +
+
\ No newline at end of file diff --git a/src/app/data/road/road.component.ts b/src/app/data/road/road.component.ts new file mode 100644 index 0000000..ddedde0 --- /dev/null +++ b/src/app/data/road/road.component.ts @@ -0,0 +1,81 @@ +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 { RoadService } from '../../../services/road.service'; +import { RoadCreateService } from '../../../services/road-create.service'; +import { Road } from '../../../models/road'; +import { EditorComponent } from '../../../helpers/editor.component'; +import { RendererComponent } from '../../../helpers/renderer.component'; +import { RoadTypeSelectList } from '../../../models/road-type-select-list'; + +import { routerTransition } from '../../../animations/router.animation'; + +@Component({ + // tslint:disable-next-line:component-selector + selector: 'road-grid', + templateUrl: 'road.component.html', + styleUrls: ['road.scss'], + encapsulation: ViewEncapsulation.None, +}) +export class RoadComponent extends StatementBase { + + public roadTypes: RoadTypeSelectList[]; + + constructor( + protected service: RoadService, + protected dataService: RoadCreateService, + 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: 'name', + editable: true, + }, + { + headerName: 'Індекс дороги', + field: 'index', + editable: true, + }, + { + headerName: 'Тип дороги', + field: 'roadTypeId', + editable: true, + cellEditorFramework: EditorComponent, + cellRendererFramework: RendererComponent, + cellEditorParams: { + data: this.roadTypes, + valueCol: 'roadTypeId', + labelCol: 'name', + }, + }, + ]; + } + + protected initFunction(): void { + this.dataService.getModels().then((models: any) => { + this.roadTypes = models.roadTypeSelectListDsM as RoadTypeSelectList[]; + }).then(() => { + this.bootstrapGrid(); + }); + } +} diff --git a/src/app/data/road/road.scss b/src/app/data/road/road.scss new file mode 100644 index 0000000..de4dc3d --- /dev/null +++ b/src/app/data/road/road.scss @@ -0,0 +1,4 @@ +.toolbar button { + margin: 2px; + padding: 0; +} \ No newline at end of file diff --git a/src/models/road-type-select-list.ts b/src/models/road-type-select-list.ts new file mode 100644 index 0000000..ffd3a38 --- /dev/null +++ b/src/models/road-type-select-list.ts @@ -0,0 +1,4 @@ +export class RoadTypeSelectList { + roadTypeId: number; + name: string; + } diff --git a/src/models/road.ts b/src/models/road.ts new file mode 100644 index 0000000..c01562a --- /dev/null +++ b/src/models/road.ts @@ -0,0 +1,14 @@ +export class Road { + id: number; + name: string; + value: string; + length: number; + historicalBackground: string; + economicValue: string; + lawDoc: string; + acceptTransferDoc: string; + acceptanceDoc: string; + authorityAct: string; + roadTypeId: number; + index: number; +} diff --git a/src/services/road-create.service.ts b/src/services/road-create.service.ts new file mode 100644 index 0000000..525354f --- /dev/null +++ b/src/services/road-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 RoadCreateService extends CreateBaseService { + protected apiUrl: string = 'http://localhost:5000/road/directory'; + constructor(protected http: Http) { + super(http); + } +} diff --git a/src/services/road.service.ts b/src/services/road.service.ts new file mode 100644 index 0000000..0cda31f --- /dev/null +++ b/src/services/road.service.ts @@ -0,0 +1,23 @@ +import { Injectable } from '@angular/core'; +import { Http } from '@angular/http'; + +import { StatementBaseService } from './statement.base.service'; + +import { Road } from '../models/road'; + +@Injectable() +export class RoadService extends StatementBaseService { + protected url: string = 'http://localhost:5000/road'; + constructor(protected http: Http) { + super(http); + } + public createModel(): Object { + return new Road(); + } + protected parseModels(json: any): any[] { + return json.busStopEditDsM as Road[]; + }; + protected parseModel(json: any): any { + return json as Road; + }; +} -- libgit2 0.21.4