authority.component.ts
5.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
import {Component, ViewEncapsulation, AfterViewInit, ViewChild, OnDestroy} from '@angular/core';
import {TdLoadingService} from '@covalent/core';
import {StatementBase} from '../../../models/statement.base';
import {AuthorityService} from '../../../services/authority.service';
import {EditorComponent} from '../../../helpers/editor.component';
import {RendererComponent} from '../../../helpers/renderer.component';
import {AuthorityCreateService} from '../../../services/authority-create.service';
import {RoadSelectList} from '../../../models/road-select-list';
import {CrossSectionSelectList} from "../../../models/cross-section-select-list";
import {ActivatedRoute} from "@angular/router";
@Component({
// tslint:disable-next-line:component-selector
selector: 'authority-grid',
templateUrl: 'authority.component.html',
styleUrls: ['authority.scss'],
encapsulation: ViewEncapsulation.None,
})
export class AuthorityComponent extends StatementBase implements OnDestroy {
public roads: RoadSelectList[];
public crosssections: CrossSectionSelectList[];
public roadId: string;
protected roadSub: any;
constructor(protected service: AuthorityService,
protected dataService: AuthorityCreateService,
protected loadingService: TdLoadingService,
protected route: ActivatedRoute
) {
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: 'crossSectionId',
editable: true,
cellEditorFramework: EditorComponent,
cellRendererFramework: RendererComponent,
cellEditorParams: {
data: this.crosssections,
valueCol: 'id',
labelCol: 'name',
},
},
{
headerName: 'Назва органу управління (балансоутримувача)',
field: 'authorityName',
editable: true,
},
{
headerName: 'Номер ділянки дороги',
field: 'roadSectionNumber',
editable: true,
},
{
headerName: 'Початок (псевдогеодані)',
field: 'begin',
editable: true,
},
{
headerName: 'Кінець (псевдогеодані)',
field: 'end',
editable: true,
},
{
headerName: 'Довжина (у метрах)',
field: 'length',
editable: false,
},
{
headerName: 'Координати вісі правого проїзду',
field: 'rightCoords',
editable: true,
},
{
headerName: 'Схема початку/межі збірного об’єкту',
field: 'beginScheme',
editable: true,
},
{
headerName: 'Схема кінця/межі збірного об’єкту',
field: 'endScheme',
editable: true,
},
];
}
protected initFunction(): void {
this.dataService.getModels().then((models: any) => {
this.roads = models.roadSelectListDsM as RoadSelectList[];
this.crosssections = models.crossSectionSelectListDsM as CrossSectionSelectList[];
}).then(() => {
this.bootstrapGrid();
this.filterRoad();
});
}
public ngOnDestroy() {
this.roadSub.unsubscribe();
}
protected filterRoad(): void {
this.roadSub = this.route.params.subscribe(params => {
this.roadId = params['roadId'];
});
if (this.roadId) {
setTimeout(() => {
let filter = this.gridOptions.api.getFilterInstance('roadId');
filter.setModel({
type: 'equals',
filter: this.roadId
});
this.gridOptions.api.onFilterChanged();
}, 0);
}
}
}