diff --git a/src/views/teacherEnd/score/TaskReviewPanel.vue b/src/views/teacherEnd/score/TaskReviewPanel.vue index 8e8d87a..36b66bc 100644 --- a/src/views/teacherEnd/score/TaskReviewPanel.vue +++ b/src/views/teacherEnd/score/TaskReviewPanel.vue @@ -141,16 +141,11 @@ const canManageClass = computed(() => { const selectedStudent = computed(() => review.value.students.find((row) => row.studentUserId === selectedStudentId.value) || review.value.students[0] || null); const canBatchScore = computed(() => canManageClass.value && selectedStudents.value.length > 0 && Boolean(filters.value.taskId)); -watch(() => props.initialClassId, (classId) => { - if (!filters.value.classId && classId) { - filters.value.classId = classId; - loadReview(); - } -}, { immediate: true }); watch(teachingClasses, (classes) => { if (!filters.value.classId && classes.length) { - filters.value.classId = props.initialClassId || classes[0].schoolClassId; - loadReview(); + const ownTeachingClass = classes.find((schoolClass) => String(schoolClass.createdBy || "") === String(userStore.userInfo.userId || "")); + filters.value.classId = ownTeachingClass?.schoolClassId || ""; + if (filters.value.classId) loadReview(); } }, { immediate: true }); watch([selectedStudent, () => review.value.selectedTask], refreshStudentPreview, { immediate: true, flush: "post" }); diff --git a/tests/task-review-default-owned-class.test.mjs b/tests/task-review-default-owned-class.test.mjs new file mode 100644 index 0000000..6ca24b6 --- /dev/null +++ b/tests/task-review-default-owned-class.test.mjs @@ -0,0 +1,19 @@ +import assert from "node:assert/strict"; +import { readFileSync } from "node:fs"; +import { resolve } from "node:path"; + +const root = resolve(import.meta.dirname, ".."); +const reviewPanel = readFileSync(resolve(root, "src/views/teacherEnd/score/TaskReviewPanel.vue"), "utf8"); + +assert.match( + reviewPanel, + /const ownTeachingClass = classes\.find\(\(schoolClass\) => String\(schoolClass\.createdBy \|\| ""\) === String\(userStore\.userInfo\.userId \|\| ""\)\);/, + "任务评阅默认班级必须按当前教师匹配创建人" +); +assert.match( + reviewPanel, + /filters\.value\.classId = ownTeachingClass\?\.schoolClassId \|\| "";/, + "没有本人创建的班级时,任务评阅不应默认选择其他班级" +); + +console.log("task review defaults to the current teacher's own class");