diff --git a/client/src/components/Pages/StatisticsPage.vue b/client/src/components/Pages/StatisticsPage.vue index 4205add..a3dd39f 100644 --- a/client/src/components/Pages/StatisticsPage.vue +++ b/client/src/components/Pages/StatisticsPage.vue @@ -48,7 +48,25 @@ - +
+ +
+ Items per Page: + +
+ +
+ + @@ -97,7 +115,12 @@ export default { elementType: '', elementName: '', startSearch: false, - params: {} + params: {}, + page: 1, + count: 1, + pageSize: 10, + pageSizes: [5,10,15,20,25,-1], + totalPages: 1, }; }, @@ -169,6 +192,26 @@ export default { }, methods: { + prevPage() { + if (this.page != 1){ + this.page = this.page - 1; + this.getStatistics(); + } + }, + + nextPage() { + if (this.page != this.totalPages){ + this.page = this.page + 1; + this.getStatistics(); + } + }, + + handlePageSizeChange(event) { + this.pageSize = event.target.value; + this.page = 1; + this.getStatistics(); + }, + resetBeginDate() { this.beginTimestamp = ''; }, @@ -191,6 +234,7 @@ export default { this.eventType = ''; this.elementType = ''; this.elementName = ''; + this.page = 1; if (this.startSearch === true) { this.getStatistics(); this.startSearch = false; @@ -201,6 +245,8 @@ export default { this.statisticsInfo = [] this.params = {} const searchParams = { + page: this.page, + pageSize: this.pageSize, student_id: Number(this.ID), student_name: this.FIO, student_email: this.email, @@ -208,7 +254,12 @@ export default { action_type: this.actionType, event_type: this.eventType, element_type: this.elementType, - element_name: this.elementName + element_name: this.elementName, + } + + this.params = { + page: this.page, + pageSize:this.pageSize } if (this.beginTimestamp.length === 0 && this.endTimestamp.length === 0) { @@ -231,13 +282,17 @@ export default { } } + Object.assign(this.params, searchParams) axios - .get(STAT_URL, {params: this.params}) + .get(STAT_URL, {params: searchParams}) .then((response) => { console.log(response); - response.data.forEach(element => { + let stats = response.data[0] + this.count = response.data[1] + this.totalPages = Math.ceil(this.count/this.pageSize) + stats.forEach(element => { let firstLayer = { FIO: element.student, course: element.course, diff --git a/client/src/components/Tables/StatisticsTable.vue b/client/src/components/Tables/StatisticsTable.vue index b4a1708..c147f2e 100644 --- a/client/src/components/Tables/StatisticsTable.vue +++ b/client/src/components/Tables/StatisticsTable.vue @@ -1,12 +1,9 @@