Poprawki w widoku historii scenerii

This commit is contained in:
2022-02-20 15:15:10 +01:00
parent bfe0fdb658
commit 259d5b5db1
4 changed files with 52 additions and 33 deletions
@@ -73,7 +73,7 @@ interface SceneryHistory {
}
interface HistoryResultAPI {
result: SceneryHistory;
response: SceneryHistory;
errorMessage?: any;
}
@@ -100,13 +100,16 @@ export default defineComponent({
async mounted() {
try {
const apiResult: HistoryResultAPI = (await axios.get(`${API_URL}?name=${this.name}`)).data;
const apiResult: HistoryResultAPI = (await axios.get(`${API_URL}?name=${this.name}&historyCount=100`)).data;
console.log(apiResult);
if (!apiResult || !apiResult.response) return;
this.isLoaded = true;
if (!apiResult || !apiResult.result) return;
if (!apiResult.errorMessage) {
this.dispatcherHistory = apiResult.result.dispatcherHistory;
this.dispatcherHistory = apiResult.response.dispatcherHistory;
this.dispatcherTimeline = this.dispatcherHistory
.reduce((acc, dispatcher) => {
+7 -3
View File
@@ -7,8 +7,8 @@
<scenery-info-icons :station="station" />
<!-- info dispatcher -->
<scenery-info-dispatcher :station="station" />
<scenery-info-dispatcher :station="station" :onlineFrom="onlineFrom" />
<div class="info-lists">
<!-- user list -->
<scenery-info-user-list :station="station" />
@@ -45,8 +45,12 @@ export default defineComponent({
default: {},
},
timetableOnly: Boolean,
timetableOnly: Boolean
},
data: () => ({
onlineFrom: -1
}),
});
</script>
@@ -31,17 +31,6 @@ import { defineComponent } from 'vue';
import styleMixin from '@/mixins/styleMixin';
import Station from '@/scripts/interfaces/Station';
import axios from 'axios';
import { URLs } from '@/scripts/utils/apiURLs';
interface SceneryHistoryData {
response?: {
stationName: string;
currentDispatcher: string;
currentDispatcherId: number;
currentDispatcherFrom: number;
};
}
export default defineComponent({
mixins: [styleMixin],
@@ -50,22 +39,18 @@ export default defineComponent({
type: Object as () => Station,
default: {},
},
onlineFrom: {
type: Number,
default: -1
}
},
async mounted() {
const dispatcherInfo: SceneryHistoryData = await (
await axios.get(`${URLs.stacjownikAPI}/api/getSceneryHistory?name=${this.station.name.replace(/ /g, '_')}&historyCount=0`)
).data;
this.onlineFrom = dispatcherInfo.response?.currentDispatcherFrom || -1;
},
data: () => ({
icons: {
spawn: require('@/assets/icon-spawn.svg'),
},
onlineFrom: -1
}
}),
});
</script>
+32 -5
View File
@@ -61,6 +61,20 @@ import { useStore } from '@/store';
import { GETTERS } from '@/constants/storeConstants';
import { useRoute } from 'vue-router';
import axios from 'axios';
import { URLs } from '@/scripts/utils/apiURLs';
import { watch, watchEffect } from 'vue';
import Station from '@/scripts/interfaces/Station';
interface SceneryHistoryData {
response?: {
stationName: string;
currentDispatcher: string;
currentDispatcherId: number;
currentDispatcherFrom: number;
};
}
export default defineComponent({
components: { SceneryInfo, SceneryTimetable, SceneryHistory, ActionButton, SceneryHeader },
@@ -72,6 +86,9 @@ export default defineComponent({
},
viewMode: 'info',
stationInfo: {} as (Station | undefined),
onlineFrom: -1
}),
setup() {
@@ -85,10 +102,14 @@ export default defineComponent({
const isComponentVisible = computed(() => route.path === '/scenery');
const isDataLoaded = computed(() => data.value.dataConnectionStatus === DataStatus.Loaded);
const stationInfo = computed(() => {
return data.value.stationList.find((station) => station.name === route.query.station?.toString().replace(/_/g, ' '))
})
const stationInfo = computed(() =>
data.value.stationList.find((station) => station.name === route.query.station?.toString().replace(/_/g, ' '))
);
// const onlineFrom = computed(async () => {
// return await (await axios.get(`${URLs.stacjownikAPI}?name=${route.query.station}&historyCount=0`)).data;
// });
return {
data,
@@ -96,7 +117,7 @@ export default defineComponent({
timetableOnly,
isComponentVisible,
isDataLoaded,
stationInfo,
stationInfo
};
},
@@ -110,8 +131,14 @@ export default defineComponent({
},
},
activated() {
async mounted() {
this.stationInfo = (this.$store.getters[GETTERS.allData] as StoreData).stationList.find((station) => station.name === this.$route.query.station?.toString().replace(/_/g, ' '))
},
async activated() {
if (this.currentRegion.id != 'eu' && this.viewMode == 'history') this.viewMode = 'info';
const onlineFrom = await (await axios.get(`${URLs.stacjownikAPI}/api/getSceneryHistory?name=${this.$route.query.station}&historyCount=0`)).data;
},
});
</script>