mirror of
https://github.com/Spythere/stacjownik.git
synced 2026-05-03 21:38:13 +00:00
feat(app): added min route speed & max route speed station filters
This commit is contained in:
@@ -80,12 +80,6 @@ export default defineComponent({
|
||||
},
|
||||
|
||||
async mounted() {
|
||||
// window.addEventListener('focus', () => {
|
||||
// if (Date.now() - this.apiStore.lastFetchData.getTime() < 15000) return;
|
||||
|
||||
// this.apiStore.fetchActiveData();
|
||||
// });
|
||||
|
||||
window.addEventListener('mousemove', (e: MouseEvent) => this.handlePopUpEvents(e));
|
||||
},
|
||||
|
||||
|
||||
@@ -108,6 +108,7 @@
|
||||
:id="slider.id"
|
||||
:min="slider.minRange"
|
||||
:max="slider.maxRange"
|
||||
:step="slider.step"
|
||||
v-model="slider.value"
|
||||
@change="handleInput"
|
||||
/>
|
||||
|
||||
@@ -36,6 +36,8 @@ export interface Filter {
|
||||
minOneWay: number;
|
||||
minTwoWayCatenary: number;
|
||||
minTwoWay: number;
|
||||
minVmax: number;
|
||||
maxVmax: number;
|
||||
'no-1track': boolean;
|
||||
'no-2track': boolean;
|
||||
'include-selected': boolean;
|
||||
|
||||
@@ -265,6 +265,7 @@
|
||||
"name": "minLevel",
|
||||
"minRange": 0,
|
||||
"maxRange": 20,
|
||||
"step": 1,
|
||||
"value": 0,
|
||||
"defaultValue": 0
|
||||
},
|
||||
@@ -273,14 +274,34 @@
|
||||
"name": "maxLevel",
|
||||
"minRange": 0,
|
||||
"maxRange": 20,
|
||||
"step": 1,
|
||||
"value": 20,
|
||||
"defaultValue": 20
|
||||
},
|
||||
{
|
||||
"id": "min-vmax",
|
||||
"name": "minVmax",
|
||||
"minRange": 0,
|
||||
"maxRange": 200,
|
||||
"step": 10,
|
||||
"value": 0,
|
||||
"defaultValue": 0
|
||||
},
|
||||
{
|
||||
"id": "max-vmax",
|
||||
"name": "maxVmax",
|
||||
"minRange": 0,
|
||||
"maxRange": 200,
|
||||
"step": 10,
|
||||
"value": 200,
|
||||
"defaultValue": 200
|
||||
},
|
||||
{
|
||||
"id": "routes-1t-cat",
|
||||
"name": "minOneWayCatenary",
|
||||
"minRange": 0,
|
||||
"maxRange": 5,
|
||||
"step": 1,
|
||||
"value": 0,
|
||||
"defaultValue": 0
|
||||
},
|
||||
@@ -289,6 +310,7 @@
|
||||
"name": "minOneWay",
|
||||
"minRange": 0,
|
||||
"maxRange": 5,
|
||||
"step": 1,
|
||||
"value": 0,
|
||||
"defaultValue": 0
|
||||
},
|
||||
@@ -297,6 +319,7 @@
|
||||
"name": "minTwoWayCatenary",
|
||||
"minRange": 0,
|
||||
"maxRange": 5,
|
||||
"step": 1,
|
||||
"value": 0,
|
||||
"defaultValue": 0
|
||||
},
|
||||
@@ -305,6 +328,7 @@
|
||||
"name": "minTwoWay",
|
||||
"minRange": 0,
|
||||
"maxRange": 5,
|
||||
"step": 1,
|
||||
"value": 0,
|
||||
"defaultValue": 0
|
||||
}
|
||||
|
||||
@@ -235,6 +235,8 @@
|
||||
"sliders": {
|
||||
"min-lvl": "MIN. REQUIRED DISPATCHER LEVEL",
|
||||
"max-lvl": "MAX. REQUIRED DISPATCHER LEVEL",
|
||||
"min-vmax": "MIN. SCENERY ROUTE SPEED",
|
||||
"max-vmax": "MAX. SCENERY ROUTE SPEED",
|
||||
"routes-1t-cat": "MIN. CATENARY SINGLE TRACK ROUTES",
|
||||
"routes-1t-other": "MIN. OTHER SINGLE TRACK ROUTES",
|
||||
"routes-2t-cat": "MIN. CATENARY DOUBLE TRACK ROUTES",
|
||||
|
||||
@@ -232,6 +232,8 @@
|
||||
"sliders": {
|
||||
"min-lvl": "MIN. WYMAGANY POZIOM DYŻURNEGO",
|
||||
"max-lvl": "MAKS. WYMAGANY POZIOM DYŻURNEGO",
|
||||
"min-vmax": "MIN. PRĘDKOŚĆ SZLAKOWA",
|
||||
"max-vmax": "MAKS. PRĘDKOŚĆ SZLAKOWA",
|
||||
"routes-1t-cat": "SZLAKI JEDNOTOROWE ZELEKTR. (MINIMUM)",
|
||||
"routes-1t-other": "SZLAKI JEDNOTOROWE NIEZELEKTR. (MINIMUM)",
|
||||
"routes-2t-cat": "SZLAKI DWUTOROWE ZELEKTR. (MINIMUM)",
|
||||
|
||||
@@ -9,4 +9,7 @@ export interface StationRoutes {
|
||||
doubleElectrifiedNames: string[];
|
||||
doubleOtherNames: string[];
|
||||
sblNames: string[];
|
||||
|
||||
minRouteSpeed: number;
|
||||
maxRouteSpeed: number;
|
||||
}
|
||||
|
||||
@@ -189,9 +189,11 @@ export const filterStations = (station: Station, filters: Filter) => {
|
||||
availability == 'nonPublic' || availability == 'unavailable' || availability == 'abandoned';
|
||||
|
||||
if (reqLevel + (otherAvailability ? 1 : 0) < filters['minLevel']) return false;
|
||||
|
||||
if (reqLevel + (otherAvailability ? 1 : 0) > filters['maxLevel']) return false;
|
||||
|
||||
if (filters['minVmax'] > station.generalInfo.routes.maxRouteSpeed) return false;
|
||||
if (filters['maxVmax'] < station.generalInfo.routes.minRouteSpeed) return false;
|
||||
|
||||
if (
|
||||
filters['no-1track'] &&
|
||||
(routes.singleElectrifiedNames.length != 0 || routes.singleOtherNames.length != 0)
|
||||
|
||||
+10
-1
@@ -248,6 +248,13 @@ export const useMainStore = defineStore('store', {
|
||||
if (!route.isInternal) acc[routesKey].push(route.routeName);
|
||||
if (route.isRouteSBL) acc['sblNames'].push(route.routeName);
|
||||
|
||||
acc.minRouteSpeed =
|
||||
acc.minRouteSpeed == 0
|
||||
? route.routeSpeed
|
||||
: Math.min(route.routeSpeed, acc.minRouteSpeed);
|
||||
|
||||
acc.maxRouteSpeed = Math.max(route.routeSpeed, acc.maxRouteSpeed);
|
||||
|
||||
acc[tracksKey].push(route);
|
||||
|
||||
return acc;
|
||||
@@ -259,7 +266,9 @@ export const useMainStore = defineStore('store', {
|
||||
double: [],
|
||||
doubleElectrifiedNames: [],
|
||||
doubleOtherNames: [],
|
||||
sblNames: []
|
||||
sblNames: [],
|
||||
minRouteSpeed: 0,
|
||||
maxRouteSpeed: 0
|
||||
} as StationRoutes
|
||||
);
|
||||
|
||||
|
||||
@@ -52,6 +52,8 @@ const filterInitStates: Filter = {
|
||||
unsignedStatus: false,
|
||||
withActiveTimetables: false,
|
||||
withoutActiveTimetables: false,
|
||||
maxVmax: 200,
|
||||
minVmax: 0,
|
||||
|
||||
authors: '',
|
||||
|
||||
|
||||
Reference in New Issue
Block a user