|
@@ -1931,6 +1931,24 @@ const changeClassForm = reactive({
|
|
|
changeReason: ''
|
|
changeReason: ''
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+interface ChangeClassStudentItem {
|
|
|
|
|
+ studentId: string | number;
|
|
|
|
|
+ studentNo: string;
|
|
|
|
|
+ studentName: string;
|
|
|
|
|
+ gender?: string;
|
|
|
|
|
+ originalCollegeId: string | number;
|
|
|
|
|
+ originalCollegeName: string;
|
|
|
|
|
+ originalMajorId: string | number;
|
|
|
|
|
+ originalMajorName: string;
|
|
|
|
|
+ originalClassId: string | number;
|
|
|
|
|
+ originalClassName: string;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const changeClassStudents = ref<ChangeClassStudentItem[]>([]);
|
|
|
|
|
+const changeClassSubmitting = ref(false);
|
|
|
|
|
+const changeClassProgress = ref({ current: 0, total: 0 });
|
|
|
|
|
+const changeClassFailList = ref<{ studentNo: string; studentName: string; reason: string }[]>([]);
|
|
|
|
|
+
|
|
|
// 计算属性:判断是否显示新增按钮(只有班级节点才显示)
|
|
// 计算属性:判断是否显示新增按钮(只有班级节点才显示)
|
|
|
const showAddButton = computed(() => {
|
|
const showAddButton = computed(() => {
|
|
|
if (!currentSelectedNode.value) {
|
|
if (!currentSelectedNode.value) {
|
|
@@ -3338,57 +3356,47 @@ const submitStatusChange = async () => {
|
|
|
|
|
|
|
|
/** 打开换班级弹窗 */
|
|
/** 打开换班级弹窗 */
|
|
|
const openChangeClassModal = async () => {
|
|
const openChangeClassModal = async () => {
|
|
|
- if (ids.value.length !== 1) {
|
|
|
|
|
- ElMessage.warning('请选择一个学生进行换班级操作');
|
|
|
|
|
|
|
+ if (ids.value.length === 0) {
|
|
|
|
|
+ ElMessage.warning('请选择要换班级的学生');
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- const studentId = ids.value[0];
|
|
|
|
|
- const selectedStudent = studentList.value.find((student) => student.id === studentId);
|
|
|
|
|
-
|
|
|
|
|
- if (!selectedStudent) {
|
|
|
|
|
|
|
+ const selectedStudents = studentList.value.filter((s) => ids.value.includes(s.id));
|
|
|
|
|
+ if (selectedStudents.length === 0) {
|
|
|
ElMessage.error('未找到选中的学生信息');
|
|
ElMessage.error('未找到选中的学生信息');
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- try {
|
|
|
|
|
- // 获取学生详细信息
|
|
|
|
|
- const res = await service.get(`/studentMsg/studentMsg/${studentId}`);
|
|
|
|
|
- if (res && res.code === 200) {
|
|
|
|
|
- const studentData = res.data;
|
|
|
|
|
-
|
|
|
|
|
- // 填充学生基本信息
|
|
|
|
|
- changeClassForm.studentId = studentData.id;
|
|
|
|
|
- changeClassForm.studentNo = studentData.studentNo;
|
|
|
|
|
- changeClassForm.studentName = studentData.name;
|
|
|
|
|
- changeClassForm.gender = studentData.gender;
|
|
|
|
|
-
|
|
|
|
|
- // 填充原班级信息
|
|
|
|
|
- changeClassForm.originalCollegeId = studentData.collegeId;
|
|
|
|
|
- changeClassForm.originalCollegeName = studentData.collegeName;
|
|
|
|
|
- changeClassForm.originalMajorId = studentData.majorId;
|
|
|
|
|
- changeClassForm.originalMajorName = studentData.majorName;
|
|
|
|
|
- changeClassForm.originalClassId = studentData.classId;
|
|
|
|
|
- changeClassForm.originalClassName = studentData.className;
|
|
|
|
|
-
|
|
|
|
|
- // 重置新班级选择
|
|
|
|
|
- changeClassForm.newCollegeId = '';
|
|
|
|
|
- changeClassForm.newMajorId = '';
|
|
|
|
|
- changeClassForm.newClassId = '';
|
|
|
|
|
- changeClassForm.effectiveTime = '';
|
|
|
|
|
- changeClassForm.changeReason = '';
|
|
|
|
|
-
|
|
|
|
|
- // 获取学院选项
|
|
|
|
|
- await loadCollegeOptions();
|
|
|
|
|
-
|
|
|
|
|
- changeClassDialog.visible = true;
|
|
|
|
|
- } else {
|
|
|
|
|
- ElMessage.error(res?.msg || '获取学生信息失败');
|
|
|
|
|
- }
|
|
|
|
|
- } catch (error) {
|
|
|
|
|
- console.error('获取学生信息失败:', error);
|
|
|
|
|
- ElMessage.error('获取学生信息失败,请重试');
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ changeClassStudents.value = selectedStudents.map((s) => ({
|
|
|
|
|
+ studentId: s.id,
|
|
|
|
|
+ studentNo: s.studentNo,
|
|
|
|
|
+ studentName: s.name,
|
|
|
|
|
+ gender: s.gender,
|
|
|
|
|
+ originalCollegeId: s.collegeId,
|
|
|
|
|
+ originalCollegeName: s.collegeName,
|
|
|
|
|
+ originalMajorId: s.majorId,
|
|
|
|
|
+ originalMajorName: s.majorName,
|
|
|
|
|
+ originalClassId: s.classId,
|
|
|
|
|
+ originalClassName: s.className
|
|
|
|
|
+ }));
|
|
|
|
|
+
|
|
|
|
|
+ changeClassForm.newCollegeId = '';
|
|
|
|
|
+ changeClassForm.newMajorId = '';
|
|
|
|
|
+ changeClassForm.newClassId = '';
|
|
|
|
|
+ changeClassForm.effectiveTime = '';
|
|
|
|
|
+ changeClassForm.changeReason = '';
|
|
|
|
|
+ majorOptions.value = [];
|
|
|
|
|
+ classOptions.value = [];
|
|
|
|
|
+ changeClassFailList.value = [];
|
|
|
|
|
+ changeClassProgress.value = { current: 0, total: 0 };
|
|
|
|
|
+
|
|
|
|
|
+ changeClassDialog.title =
|
|
|
|
|
+ changeClassStudents.value.length === 1
|
|
|
|
|
+ ? '换班级申请'
|
|
|
|
|
+ : `批量换班级(${changeClassStudents.value.length} 人)`;
|
|
|
|
|
+
|
|
|
|
|
+ await loadCollegeOptions();
|
|
|
|
|
+ changeClassDialog.visible = true;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
/** 加载学院选项 */
|
|
/** 加载学院选项 */
|