mirror of
https://github.com/Spythere/stacjownik.git
synced 2026-05-04 22:08:12 +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() {
|
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));
|
window.addEventListener('mousemove', (e: MouseEvent) => this.handlePopUpEvents(e));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -108,6 +108,7 @@
|
|||||||
:id="slider.id"
|
:id="slider.id"
|
||||||
:min="slider.minRange"
|
:min="slider.minRange"
|
||||||
:max="slider.maxRange"
|
:max="slider.maxRange"
|
||||||
|
:step="slider.step"
|
||||||
v-model="slider.value"
|
v-model="slider.value"
|
||||||
@change="handleInput"
|
@change="handleInput"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ export interface Filter {
|
|||||||
minOneWay: number;
|
minOneWay: number;
|
||||||
minTwoWayCatenary: number;
|
minTwoWayCatenary: number;
|
||||||
minTwoWay: number;
|
minTwoWay: number;
|
||||||
|
minVmax: number;
|
||||||
|
maxVmax: number;
|
||||||
'no-1track': boolean;
|
'no-1track': boolean;
|
||||||
'no-2track': boolean;
|
'no-2track': boolean;
|
||||||
'include-selected': boolean;
|
'include-selected': boolean;
|
||||||
|
|||||||
@@ -265,6 +265,7 @@
|
|||||||
"name": "minLevel",
|
"name": "minLevel",
|
||||||
"minRange": 0,
|
"minRange": 0,
|
||||||
"maxRange": 20,
|
"maxRange": 20,
|
||||||
|
"step": 1,
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"defaultValue": 0
|
"defaultValue": 0
|
||||||
},
|
},
|
||||||
@@ -273,14 +274,34 @@
|
|||||||
"name": "maxLevel",
|
"name": "maxLevel",
|
||||||
"minRange": 0,
|
"minRange": 0,
|
||||||
"maxRange": 20,
|
"maxRange": 20,
|
||||||
|
"step": 1,
|
||||||
"value": 20,
|
"value": 20,
|
||||||
"defaultValue": 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",
|
"id": "routes-1t-cat",
|
||||||
"name": "minOneWayCatenary",
|
"name": "minOneWayCatenary",
|
||||||
"minRange": 0,
|
"minRange": 0,
|
||||||
"maxRange": 5,
|
"maxRange": 5,
|
||||||
|
"step": 1,
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"defaultValue": 0
|
"defaultValue": 0
|
||||||
},
|
},
|
||||||
@@ -289,6 +310,7 @@
|
|||||||
"name": "minOneWay",
|
"name": "minOneWay",
|
||||||
"minRange": 0,
|
"minRange": 0,
|
||||||
"maxRange": 5,
|
"maxRange": 5,
|
||||||
|
"step": 1,
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"defaultValue": 0
|
"defaultValue": 0
|
||||||
},
|
},
|
||||||
@@ -297,6 +319,7 @@
|
|||||||
"name": "minTwoWayCatenary",
|
"name": "minTwoWayCatenary",
|
||||||
"minRange": 0,
|
"minRange": 0,
|
||||||
"maxRange": 5,
|
"maxRange": 5,
|
||||||
|
"step": 1,
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"defaultValue": 0
|
"defaultValue": 0
|
||||||
},
|
},
|
||||||
@@ -305,6 +328,7 @@
|
|||||||
"name": "minTwoWay",
|
"name": "minTwoWay",
|
||||||
"minRange": 0,
|
"minRange": 0,
|
||||||
"maxRange": 5,
|
"maxRange": 5,
|
||||||
|
"step": 1,
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"defaultValue": 0
|
"defaultValue": 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -235,6 +235,8 @@
|
|||||||
"sliders": {
|
"sliders": {
|
||||||
"min-lvl": "MIN. REQUIRED DISPATCHER LEVEL",
|
"min-lvl": "MIN. REQUIRED DISPATCHER LEVEL",
|
||||||
"max-lvl": "MAX. 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-cat": "MIN. CATENARY SINGLE TRACK ROUTES",
|
||||||
"routes-1t-other": "MIN. OTHER SINGLE TRACK ROUTES",
|
"routes-1t-other": "MIN. OTHER SINGLE TRACK ROUTES",
|
||||||
"routes-2t-cat": "MIN. CATENARY DOUBLE TRACK ROUTES",
|
"routes-2t-cat": "MIN. CATENARY DOUBLE TRACK ROUTES",
|
||||||
|
|||||||
@@ -232,6 +232,8 @@
|
|||||||
"sliders": {
|
"sliders": {
|
||||||
"min-lvl": "MIN. WYMAGANY POZIOM DYŻURNEGO",
|
"min-lvl": "MIN. WYMAGANY POZIOM DYŻURNEGO",
|
||||||
"max-lvl": "MAKS. 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-cat": "SZLAKI JEDNOTOROWE ZELEKTR. (MINIMUM)",
|
||||||
"routes-1t-other": "SZLAKI JEDNOTOROWE NIEZELEKTR. (MINIMUM)",
|
"routes-1t-other": "SZLAKI JEDNOTOROWE NIEZELEKTR. (MINIMUM)",
|
||||||
"routes-2t-cat": "SZLAKI DWUTOROWE ZELEKTR. (MINIMUM)",
|
"routes-2t-cat": "SZLAKI DWUTOROWE ZELEKTR. (MINIMUM)",
|
||||||
|
|||||||
@@ -9,4 +9,7 @@ export interface StationRoutes {
|
|||||||
doubleElectrifiedNames: string[];
|
doubleElectrifiedNames: string[];
|
||||||
doubleOtherNames: string[];
|
doubleOtherNames: string[];
|
||||||
sblNames: string[];
|
sblNames: string[];
|
||||||
|
|
||||||
|
minRouteSpeed: number;
|
||||||
|
maxRouteSpeed: number;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -189,9 +189,11 @@ export const filterStations = (station: Station, filters: Filter) => {
|
|||||||
availability == 'nonPublic' || availability == 'unavailable' || availability == 'abandoned';
|
availability == 'nonPublic' || availability == 'unavailable' || availability == 'abandoned';
|
||||||
|
|
||||||
if (reqLevel + (otherAvailability ? 1 : 0) < filters['minLevel']) return false;
|
if (reqLevel + (otherAvailability ? 1 : 0) < filters['minLevel']) return false;
|
||||||
|
|
||||||
if (reqLevel + (otherAvailability ? 1 : 0) > filters['maxLevel']) 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 (
|
if (
|
||||||
filters['no-1track'] &&
|
filters['no-1track'] &&
|
||||||
(routes.singleElectrifiedNames.length != 0 || routes.singleOtherNames.length != 0)
|
(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.isInternal) acc[routesKey].push(route.routeName);
|
||||||
if (route.isRouteSBL) acc['sblNames'].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);
|
acc[tracksKey].push(route);
|
||||||
|
|
||||||
return acc;
|
return acc;
|
||||||
@@ -259,7 +266,9 @@ export const useMainStore = defineStore('store', {
|
|||||||
double: [],
|
double: [],
|
||||||
doubleElectrifiedNames: [],
|
doubleElectrifiedNames: [],
|
||||||
doubleOtherNames: [],
|
doubleOtherNames: [],
|
||||||
sblNames: []
|
sblNames: [],
|
||||||
|
minRouteSpeed: 0,
|
||||||
|
maxRouteSpeed: 0
|
||||||
} as StationRoutes
|
} as StationRoutes
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -52,6 +52,8 @@ const filterInitStates: Filter = {
|
|||||||
unsignedStatus: false,
|
unsignedStatus: false,
|
||||||
withActiveTimetables: false,
|
withActiveTimetables: false,
|
||||||
withoutActiveTimetables: false,
|
withoutActiveTimetables: false,
|
||||||
|
maxVmax: 200,
|
||||||
|
minVmax: 0,
|
||||||
|
|
||||||
authors: '',
|
authors: '',
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user