@@ -68,12 +140,18 @@
Имя |
Дата рождения |
+ |
{{ stud.name }} |
{{ stud.birthDate }} |
+
+ |
+
+ |
+
@@ -103,7 +181,7 @@
-
+
{{ sbjct.name }} |
@@ -123,9 +201,11 @@ import 'axios';
import axios from "axios";
import Group from "@/models/Group";
import Student from "@/models/Student";
+import Subject from "@/models/Subject";
export default {
created() {
this.getGroups();
+ this.getSubjects();
},
data() {
return{
@@ -134,13 +214,18 @@ export default {
group: new Group(),
students: [],
subjects: [],
+ selectedStudents: [],
+ open: [],
+ groupId: undefined,
+ selectedSubjects: [],
+ subjectsInGroup: [],
}
},
methods: {
- getSubjects(id){
+ getSubjectsInGroup(id){
axios.get(this.URL + `group/${id}/getAllSubjects`)
.then(response => {
- this.subjects = response.data;
+ this.subjectsInGroup = response.data;
console.log(response.data);
})
.catch(error => {
@@ -200,6 +285,7 @@ export default {
document.getElementById("editModal").style.display = "none";
},
getStudentsFromGroup(groupId){
+ this.selectedStudents = [];
axios.get(this.URL + `group/${groupId}/students`)
.then(response => {
this.students = response.data;
@@ -221,6 +307,87 @@ export default {
closeModelForSubjects() {
document.getElementById("ModelForSubjects").style.display = "none";
},
+ OpenModelForAddStudents(group) {
+ this.group = { ...group };
+ document.getElementById("ModalForAddStudents").style.display = "block";
+ },
+ CloseModalForAddStudents() {
+ document.getElementById("ModalForAddStudents").style.display = "none";
+ },
+ saveStudents(id) {
+ axios.post(this.URL + `group/${id}/addStudents`, this.selectedStudents)
+ .then(() => {
+ this.getStudentsFromGroup(id);
+ this.CloseModalForAddStudents();
+ console.log(this.students);
+ })
+ .catch(error => {
+ console.log(error);
+ });
+ },
+ getStudentsFromUndefinedGroup(){
+ axios.get(this.URL + `group/getStudentsUndefined`)
+ .then(response => {
+ this.students = response.data;
+ console.log(response.data);
+ })
+ .catch(error => {
+ console.log(error);
+ });
+ },
+ deleteStudentFromGroup(id){
+ axios.delete(this.URL + `group/deleteStudentFromGroup/${id}`)
+ .then(() =>{
+ this.getStudentsFromGroup();
+ })
+ .catch(error => {
+ console.log(error);
+ });
+ },
+ OpenModelForAddSubjects(status, group = null) {
+ if (status === "create") {
+ this.group = new Group();
+ this.group.status = "create";
+ } else if (status === "edit" && group) {
+ this.group = { ...group };
+ this.group.status = "edit";
+ }
+ this.open = this.group.subjectIds ? [...this.group.subjectIds] : []; // Создаём новый массив, чтобы избежать проблем с ссылками
+ this.loadSelectedSubjects(); // Загрузка выбранных групп при открытии модального окна
+ document.getElementById("openModalForAddSubjects").style.display = "block";
+ },
+ closeModalForAddSubjects() {
+ document.getElementById("openModalForAddSubjects").style.display = "none";
+ this.open = [...this.selectedSubjects]; // Обновление массива open значениями из selectedGroups
+ this.selectedSubjects = []; // Сброс выбранных групп
+ this.group = new Group(); // Сброс текущего предмета при закрытии модального окна
+ },
+ loadSelectedSubjects() {
+ // Загрузка выбранных групп из массива open
+ this.selectedSubjects = [...this.open];
+ },
+ addSubjectToGroup(id, list) {
+ axios
+ .post(this.URL + `group/${id}/addSubjectToGroup`, list)
+ .then(() => {
+ this.closeModalForAddSubjects();
+ this.getGroups(); // Обновляем список предметов после успешного добавления
+ this.open = [...this.selectedSubjects]; // Обновляем массив выбранных групп
+ })
+ .catch((error) => {
+ console.log(error);
+ });
+ },
+ getSubjects(){
+ axios.get(this.URL + "subject")
+ .then(response => {
+ this.subjects = response.data;
+ console.log(response.data);
+ })
+ .catch(error => {
+ console.log(error);
+ });
+ },
}
}
diff --git a/frontend/vue-project/src/pages/students.vue b/frontend/vue-project/src/pages/students.vue
index c263132..850f999 100644
--- a/frontend/vue-project/src/pages/students.vue
+++ b/frontend/vue-project/src/pages/students.vue
@@ -15,7 +15,7 @@
{{ stud.name }} |
{{ stud.birthDate }} |
- {{ stud.groupName }} |
+ {{stud.groupName || 'No Group'}} |
|
@@ -44,14 +44,6 @@
-
-
-
-
|
@@ -50,39 +47,6 @@