22 <div class =" timetable" >
33 <div v-if =" !this.loaded" class =" lds-dual-ring" ></div >
44 <div v-else class =' container' >
5- <div class =' info' >{{ this.timetable .number }} группа</div >
6- <div class =" no-events" v-if =" !this.timetable.events. length" >мероприятия отсутствуют</div >
5+ <div class =' info' >{{ this.groupInfo .number }} группа</div >
6+ <div class =" no-events" v-if =" !this.timetable.length" >мероприятия отсутствуют</div >
77 <ul v-else >
8- <EventRow v-for =" lesson of this .timetable . events " :key =' lesson .id ' :lesson =" lesson " />
8+ <EventRow v-for =" lesson of this .timetable " :key =' lesson .id ' :lesson =" lesson " />
99 </ul >
1010
1111 </div >
@@ -20,14 +20,16 @@ export default {
2020 mounted () {
2121 this .groupId = localStorage .getItem (' timetable-group-id' );
2222 this .$store .commit (" changePage" , this .pageId );
23- this .loadTimetableOnDate (this .$store .state .date )
23+ this .loadGroupInfo ();
24+ this .loadTimetableOnDate (this .$store .state .date );
2425 },
2526 data () {
2627 return {
2728 loaded: true ,
2829 pageId: 1 ,
2930 groupId: null ,
30- timetable: { events: [] },
31+ groupInfo: {number: ' ' },
32+ timetable: [],
3133 };
3234 },
3335 computed: {
@@ -44,22 +46,36 @@ export default {
4446 EventRow: EventRow,
4547 },
4648 methods: {
47- loadTimetableOnDate (date ) {
49+ loadGroupInfo (){
50+ var url = new URL (` ${ process .env .VUE_APP_API_TIMETABLE } /timetable/group/${ this .groupId } ` );
4851 this .loaded = false ;
52+ fetch (url).then (response => response .json ())
53+ .then (json => {
54+ this .groupInfo = json;
55+ this .loaded = true ;
56+ })
57+ },
58+ loadTimetableOnDate (date ) {
4959 var time_start = new Date (date);
5060 time_start .setHours (time_start .getHours () - date .getTimezoneOffset ()/ 60 )
5161 console .log (time_start .toISOString ())
5262 var time_end = new Date (time_start);
5363 time_end .setDate (time_start .getDate () + 1 )
54- var url = new URL (` ${ process .env .VUE_APP_API_TIMETABLE } /timetable/group/${ this .groupId } ` ),
55- params = { start: time_start .toISOString ().slice (0 , 10 ), end: time_end .toISOString ().slice (0 , 10 ) }
64+ var url = new URL (` ${ process .env .VUE_APP_API_TIMETABLE } /timetable/event/` ),
65+ params = {
66+ start: time_start .toISOString ().slice (0 , 10 ),
67+ end: time_end .toISOString ().slice (0 , 10 ),
68+ limit: 0 ,
69+ offset: 0 ,
70+ group_id: this .groupId }
5671 Object .keys (params).forEach (key => url .searchParams .append (key, params[key]))
57- fetch (url)
58- .then (response => response .json ())
72+ this . loaded = false ;
73+ fetch (url) .then (response => response .json ())
5974 .then (json => {
60- this .timetable = json;
75+ this .timetable = json . items ;
6176 this .loaded = true ;
6277 })
78+
6379 }
6480 }
6581};
0 commit comments