Poprawiono brak aktualizowania karty z widokiem rozkładu jazdy

This commit is contained in:
2022-03-28 18:40:50 +02:00
parent 764c7423f3
commit af3011ae08
3 changed files with 18 additions and 5 deletions
+9 -3
View File
@@ -49,6 +49,7 @@ import TrainInfo from '@/components/TrainsView/TrainInfo.vue';
import { DataStatus } from '@/scripts/enums/DataStatus'; import { DataStatus } from '@/scripts/enums/DataStatus';
import { GETTERS } from '@/constants/storeConstants'; import { GETTERS } from '@/constants/storeConstants';
import TrainTimetableCard from './TrainTimetableCard.vue'; import TrainTimetableCard from './TrainTimetableCard.vue';
import { ref } from 'vue';
export default defineComponent({ export default defineComponent({
components: { components: {
@@ -74,7 +75,6 @@ export default defineComponent({
defaultVehicleIcons: defaultVehicleIconsJSON, defaultVehicleIcons: defaultVehicleIconsJSON,
chosenTrain: null as Train | null,
}), }),
setup(props) { setup(props) {
@@ -91,6 +91,9 @@ export default defineComponent({
//.slice(currentPage.value * PAGE_CAPACITY, currentPage.value * PAGE_CAPACITY + PAGE_CAPACITY); //.slice(currentPage.value * PAGE_CAPACITY, currentPage.value * PAGE_CAPACITY + PAGE_CAPACITY);
}); });
const chosenTrainId = ref(null) as Ref<string | null>;
const chosenTrain = computed(() => props.trains.find(train => train.trainNo + train.driverName === chosenTrainId.value));
// watch([searchedTrain, searchedDriver], () => { // watch([searchedTrain, searchedDriver], () => {
// currentPage.value = 0; // currentPage.value = 0;
// }); // });
@@ -105,6 +108,9 @@ export default defineComponent({
searchedDriver, searchedDriver,
currentTrains, currentTrains,
chosenTrain,
chosenTrainId,
sorterActive: inject('sorterActive') as { id: string | number; dir: number }, sorterActive: inject('sorterActive') as { id: string | number; dir: number },
trainsDataStatus: computed(() => trainsDataStatus.value), trainsDataStatus: computed(() => trainsDataStatus.value),
distanceLimitExceeded: computed( distanceLimitExceeded: computed(
@@ -139,11 +145,11 @@ export default defineComponent({
}, },
showTrainTimetable(train: Train) { showTrainTimetable(train: Train) {
this.chosenTrain = train; this.chosenTrainId = train.trainNo + train.driverName;
}, },
closeTimetableCard() { closeTimetableCard() {
this.chosenTrain = null; this.chosenTrainId = null;
}, },
}, },
}); });
+2
View File
@@ -134,6 +134,8 @@ export const store = createStore<State>({
}, },
async fetchOnlineData({ commit }) { async fetchOnlineData({ commit }) {
console.log("Pobieranie danych");
// Pobierz dane o pociągach i rozkładach jazdy z API Stacjownika // Pobierz dane o pociągach i rozkładach jazdy z API Stacjownika
const trainsAPIData: { response: TrainAPIData[], errorMessage?: string } = (await axios.get(`${URLs.stacjownikAPI}/api/getActiveTrainList`)).data; const trainsAPIData: { response: TrainAPIData[], errorMessage?: string } = (await axios.get(`${URLs.stacjownikAPI}/api/getActiveTrainList`)).data;
+7 -2
View File
@@ -47,14 +47,19 @@ const filteredTrainList = (
searchedTrain: string, searchedTrain: string,
searchedDriver: string, searchedDriver: string,
sorterActive: { id: string; dir: number } sorterActive: { id: string; dir: number }
) => { ) => {
return trainList return trainList
.filter( .filter(
(train) => (train) =>
(searchedTrain.length > 0 ? train.trainNo.toString().startsWith(searchedTrain) : true) && (searchedTrain.length > 0 ? train.trainNo.toString().startsWith(searchedTrain) : true) &&
(searchedDriver.length > 0 ? train.driverName.toLowerCase().startsWith(searchedDriver.toLowerCase()) : true) (searchedDriver.length > 0 ? train.driverName.toLowerCase().startsWith(searchedDriver.toLowerCase()) : true)
) )
.sort((a, b) => {
const commentsA = a.timetableData?.followingStops.some(s => s.comments) ? 1 : 0;
const commentsB = b.timetableData?.followingStops.some(s => s.comments) ? 1 : 0;
return commentsB - commentsA;
})
.sort((a: Train, b: Train) => { .sort((a: Train, b: Train) => {
switch (sorterActive.id) { switch (sorterActive.id) {
case 'mass': case 'mass':