chore: added new wiki list filters

This commit is contained in:
2024-11-29 01:30:12 +01:00
parent 4f89b932fb
commit 56ae593d5e
3 changed files with 61 additions and 20 deletions
+39 -10
View File
@@ -104,13 +104,22 @@ import stockMixin from '../../mixins/stockMixin';
import imageMixin from '../../mixins/imageMixin'; import imageMixin from '../../mixins/imageMixin';
const sorters = ['type', 'group', 'length', 'weight', 'maxSpeed'] as const; const sorters = ['type', 'group', 'length', 'weight', 'maxSpeed'] as const;
const filters = ['vehicles-all', 'vehicles-traction', 'vehicles-wagon'] as const;
enum VehicleFilter {
AllVehicles = 'vehicles-all',
AllTractions = 'vehicles-tractions-all',
ElectricTraction = 'vehicles-tractions-electric',
DieselTraction = 'vehicles-tractions-diesel',
EmuTraction = 'vehicles-tractions-emu',
DmuTraction = 'vehicles-tractions-dmu',
AllWagons = 'vehicles-wagons-all',
PassengerWagons = 'vehicles-wagons-passenger',
FreightWagons = 'vehicles-wagons-freight',
}
type SorterType = (typeof sorters)[number]; type SorterType = (typeof sorters)[number];
type SorterDirection = 'asc' | 'desc'; type SorterDirection = 'asc' | 'desc';
type FilterType = (typeof filters)[number];
export default defineComponent({ export default defineComponent({
mixins: [stockPreviewMixin, stockMixin, imageMixin], mixins: [stockPreviewMixin, stockMixin, imageMixin],
@@ -120,14 +129,14 @@ export default defineComponent({
observer: null as IntersectionObserver | null, observer: null as IntersectionObserver | null,
sorters: sorters, sorters: sorters,
filters: filters, filters: Object.values(VehicleFilter),
searchedVehicleTypeName: '', searchedVehicleTypeName: '',
sorterType: 'type' as SorterType, sorterType: 'type' as SorterType,
sorterDirection: 'asc' as SorterDirection, sorterDirection: 'asc' as SorterDirection,
filterType: 'vehicles-all' as FilterType, filterType: VehicleFilter.AllVehicles,
lastScrollTop: 0, lastScrollTop: 0,
}; };
@@ -170,11 +179,31 @@ export default defineComponent({
) )
return false; return false;
if ( switch (this.filterType) {
(this.filterType == 'vehicles-traction' && !isTractionUnit(v)) || case VehicleFilter.AllTractions:
(this.filterType == 'vehicles-wagon' && isTractionUnit(v)) return isTractionUnit(v);
)
return false; case VehicleFilter.ElectricTraction:
return isTractionUnit(v) && v.group == 'loco-electric';
case VehicleFilter.DieselTraction:
return isTractionUnit(v) && v.group == 'loco-diesel';
case VehicleFilter.EmuTraction:
return isTractionUnit(v) && v.group == 'unit-electric';
case VehicleFilter.DmuTraction:
return isTractionUnit(v) && v.group == 'unit-diesel';
case VehicleFilter.AllWagons:
return !isTractionUnit(v);
case VehicleFilter.PassengerWagons:
return !isTractionUnit(v) && v.group == 'wagon-passenger';
case VehicleFilter.FreightWagons:
return !isTractionUnit(v) && v.group == 'wagon-freight';
}
return true; return true;
}, },
+8 -2
View File
@@ -173,8 +173,14 @@
}, },
"filters": { "filters": {
"vehicles-all": "all", "vehicles-all": "all",
"vehicles-traction": "traction units", "vehicles-tractions-all": "traction units - all",
"vehicles-wagon": "wagons" "vehicles-tractions-electric": "electric locomotives",
"vehicles-tractions-diesel": "diesel locomotives",
"vehicles-tractions-emu": "electric units",
"vehicles-tractions-dmu": "diesel units",
"vehicles-wagons-all": "wagons - all",
"vehicles-wagons-passenger": "wagons - passenger",
"vehicles-wagons-freight": "wagons - freight"
}, },
"sort-by": { "sort-by": {
"type": "name", "type": "name",
+8 -2
View File
@@ -173,8 +173,14 @@
}, },
"filters": { "filters": {
"vehicles-all": "wszystkie", "vehicles-all": "wszystkie",
"vehicles-traction": "trakcyjne", "vehicles-tractions-all": "trakcyjne - wszystkie",
"vehicles-wagon": "wagony" "vehicles-tractions-electric": "elektrowozy",
"vehicles-tractions-diesel": "spalinowozy",
"vehicles-tractions-emu": "EZT",
"vehicles-tractions-dmu": "SZT",
"vehicles-wagons-all": "wagony - wszystkie",
"vehicles-wagons-passenger": "wagony pasażerskie",
"vehicles-wagons-freight": "wagony towarowe"
}, },
"sort-by": { "sort-by": {
"type": "nazwa", "type": "nazwa",