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 { GETTERS } from '@/constants/storeConstants';
import TrainTimetableCard from './TrainTimetableCard.vue';
import { ref } from 'vue';
export default defineComponent({
components: {
@@ -74,7 +75,6 @@ export default defineComponent({
defaultVehicleIcons: defaultVehicleIconsJSON,
chosenTrain: null as Train | null,
}),
setup(props) {
@@ -91,6 +91,9 @@ export default defineComponent({
//.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], () => {
// currentPage.value = 0;
// });
@@ -105,6 +108,9 @@ export default defineComponent({
searchedDriver,
currentTrains,
chosenTrain,
chosenTrainId,
sorterActive: inject('sorterActive') as { id: string | number; dir: number },
trainsDataStatus: computed(() => trainsDataStatus.value),
distanceLimitExceeded: computed(
@@ -139,11 +145,11 @@ export default defineComponent({
},
showTrainTimetable(train: Train) {
this.chosenTrain = train;
this.chosenTrainId = train.trainNo + train.driverName;
},
closeTimetableCard() {
this.chosenTrain = null;
this.chosenTrainId = null;
},
},
});
+2
View File
@@ -134,6 +134,8 @@ export const store = createStore<State>({
},
async fetchOnlineData({ commit }) {
console.log("Pobieranie danych");
// 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;
+7 -2
View File
@@ -47,14 +47,19 @@ const filteredTrainList = (
searchedTrain: string,
searchedDriver: string,
sorterActive: { id: string; dir: number }
) => {
) => {
return trainList
.filter(
(train) =>
(searchedTrain.length > 0 ? train.trainNo.toString().startsWith(searchedTrain) : 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) => {
switch (sorterActive.id) {
case 'mass':