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 @@
-
@@ -16,7 +13,7 @@
{{ item.course }}
-
+