From 5d8a505f602e55b5cee1e98d03d194cc372e60f6 Mon Sep 17 00:00:00 2001 From: yarik Date: Wed, 15 Feb 2017 15:16:41 +0200 Subject: [PATCH] RoadService --- src/app/app.module.ts | 7 +++++++ src/app/app.routes.ts | 2 ++ src/app/data/data.component.html | 2 +- src/app/data/road-service/road-service.component.html | 12 ++++++++++++ src/app/data/road-service/road-service.component.ts | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/app/data/road-service/road-service.scss | 4 ++++ src/models/organization-select-list.ts | 4 ++++ src/models/road-service.ts | 10 ++++++++++ src/services/road-service-create.service.ts | 12 ++++++++++++ src/services/road-service.service.ts | 23 +++++++++++++++++++++++ 10 files changed, 206 insertions(+), 1 deletion(-) create mode 100644 src/app/data/road-service/road-service.component.html create mode 100644 src/app/data/road-service/road-service.component.ts create mode 100644 src/app/data/road-service/road-service.scss create mode 100644 src/models/organization-select-list.ts create mode 100644 src/models/road-service.ts create mode 100644 src/services/road-service-create.service.ts create mode 100644 src/services/road-service.service.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index b4b3e0c..d9f0886 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -29,6 +29,7 @@ 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'; +import { RoadServiceComponent } from './data/road-service/road-service.component'; // Services import { BusStopCreateService } from '../services/bus-stop-create.service'; @@ -46,6 +47,8 @@ import { FlowIntensityCreateService } from '../services/flow-intensity-create.se import { FlowIntensityService } from '../services/flow-intensity.service'; import { RoadCreateService } from '../services/road-create.service'; import { RoadService } from '../services/road.service'; +import { RoadServiceService } from '../services/road-service.service'; +import { RoadServiceCreateService } from '../services/road-service-create.service'; const httpInterceptorProviders: Type[] = [ RequestInterceptor, @@ -68,6 +71,7 @@ const httpInterceptorProviders: Type[] = [ FlowIntensityComponent, RoadComponent, CrossSectionComponent, + RoadServiceComponent, ], // directives, components, and pipes owned by this NgModule imports: [ BrowserModule, @@ -81,6 +85,7 @@ const httpInterceptorProviders: Type[] = [ FlowIntensityComponent, RoadComponent, CrossSectionComponent, + RoadServiceComponent, ]), CovalentCoreModule.forRoot(), CovalentChartsModule.forRoot(), @@ -114,6 +119,8 @@ const httpInterceptorProviders: Type[] = [ RoadService, CrossSectionCreateService, CrossSectionService, + RoadServiceService, + RoadServiceCreateService, ], // additional providers needed for this module entryComponents: [ ], bootstrap: [ AppComponent ], diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 897ed17..c77589e 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -11,6 +11,7 @@ import { CrossSectionComponent } from './data/cross-section/cross-section.compon 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'; +import { RoadServiceComponent } from './data/road-service/road-service.component'; const routes: Routes = [ {path: 'login', component: LoginComponent}, @@ -24,6 +25,7 @@ const routes: Routes = [ {path: 'flow-intensity', component: FlowIntensityComponent}, {path: 'cross-section', component: CrossSectionComponent}, {path: 'road', component: RoadComponent}, + {path: 'road-service', component: RoadServiceComponent}, ]}, ]}, ]; diff --git a/src/app/data/data.component.html b/src/app/data/data.component.html index 5f59500..348a0a9 100644 --- a/src/app/data/data.component.html +++ b/src/app/data/data.component.html @@ -18,7 +18,7 @@ dashboard Автомобільні дороги - + insert_chart Обслуговування diff --git a/src/app/data/road-service/road-service.component.html b/src/app/data/road-service/road-service.component.html new file mode 100644 index 0000000..7db449a --- /dev/null +++ b/src/app/data/road-service/road-service.component.html @@ -0,0 +1,12 @@ +
+ + +
+
+ + +
+
\ No newline at end of file diff --git a/src/app/data/road-service/road-service.component.ts b/src/app/data/road-service/road-service.component.ts new file mode 100644 index 0000000..e2cf8e2 --- /dev/null +++ b/src/app/data/road-service/road-service.component.ts @@ -0,0 +1,131 @@ +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 { RoadServiceService } from '../../../services/road-service.service'; +import { RoadService } from '../../../models/road-service'; +import { EditorComponent } from '../../../helpers/editor.component'; +import { RendererComponent } from '../../../helpers/renderer.component'; +import { RoadServiceCreateService } from '../../../services/road-service-create.service'; +import { RegionSelectList } from '../../../models/region-select-list'; +import { RoadSelectList } from '../../../models/road-select-list'; +import { RoadDirectionSelectList } from '../../../models/road-direction-select-list'; +import { OrganizationSelectList } from '../../../models/organization-select-list'; + +import { routerTransition } from '../../../animations/router.animation'; + +@Component({ + // tslint:disable-next-line:component-selector + selector: 'road-service-grid', + templateUrl: 'road-service.component.html', + styleUrls: ['road-service.scss'], + encapsulation: ViewEncapsulation.None, +}) +export class RoadServiceComponent extends StatementBase { + + public regions: RegionSelectList[]; + public roads: RoadSelectList[]; + public roadDirections: RoadDirectionSelectList[]; + public organizations: OrganizationSelectList[]; + + constructor( + protected service: RoadServiceService, + protected dataService: RoadServiceCreateService, + 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: '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: 'organizationId', + editable: true, + cellEditorFramework: EditorComponent, + cellRendererFramework: RendererComponent, + cellEditorParams: { + data: this.organizations, + valueCol: 'id', + labelCol: 'name', + }, + }, + { + headerName: 'Рік початку обслуговування', + field: 'yearBegin', + editable: true, + }, + ]; + } + + protected initFunction(): void { + this.dataService.getModels().then((models: any) => { + this.regions = models.regionSelectListDsM as RegionSelectList[]; + this.roads = models.roadSelectListDsM as RoadSelectList[]; + this.roadDirections = models.roadDirectionSelectListDsM as RoadDirectionSelectList[]; + this.organizations = models.organizationSelectListDsM as OrganizationSelectList[]; + }).then(() => { + this.bootstrapGrid(); + }); + } +} diff --git a/src/app/data/road-service/road-service.scss b/src/app/data/road-service/road-service.scss new file mode 100644 index 0000000..de4dc3d --- /dev/null +++ b/src/app/data/road-service/road-service.scss @@ -0,0 +1,4 @@ +.toolbar button { + margin: 2px; + padding: 0; +} \ No newline at end of file diff --git a/src/models/organization-select-list.ts b/src/models/organization-select-list.ts new file mode 100644 index 0000000..e25cc35 --- /dev/null +++ b/src/models/organization-select-list.ts @@ -0,0 +1,4 @@ +export class OrganizationSelectList { + id: number; + name: string; + } diff --git a/src/models/road-service.ts b/src/models/road-service.ts new file mode 100644 index 0000000..dd41434 --- /dev/null +++ b/src/models/road-service.ts @@ -0,0 +1,10 @@ +export class RoadService { + id: number; + roadId: number; + regionId: number; + begin: number; + end: number; + roadDirectionId: number; + organizationId: number; + yearBegin: string; +} diff --git a/src/services/road-service-create.service.ts b/src/services/road-service-create.service.ts new file mode 100644 index 0000000..9650731 --- /dev/null +++ b/src/services/road-service-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 RoadServiceCreateService extends CreateBaseService { + protected apiUrl: string = 'http://localhost:5000/roadservice/directory'; + constructor(protected http: Http) { + super(http); + } +} diff --git a/src/services/road-service.service.ts b/src/services/road-service.service.ts new file mode 100644 index 0000000..9fb557a --- /dev/null +++ b/src/services/road-service.service.ts @@ -0,0 +1,23 @@ +import { Injectable } from '@angular/core'; +import { Http } from '@angular/http'; + +import { StatementBaseService } from './statement.base.service'; + +import { RoadService } from '../models/road-service'; + +@Injectable() +export class RoadServiceService extends StatementBaseService { + protected url: string = 'http://localhost:5000/roadservice'; + constructor(protected http: Http) { + super(http); + } + public createModel(): Object { + return new RoadService(); + } + protected parseModels(json: any): any[] { + return json.roadServiceEditDsM as RoadService[]; + }; + protected parseModel(json: any): any { + return json as RoadService; + }; +} -- libgit2 0.21.4