|
|
@@ -118,7 +118,12 @@
|
|
|
<div class="assignment-body">
|
|
|
<!-- 课程作业标题 -->
|
|
|
<div class="assignment-title-section">
|
|
|
- <h3 class="assignment-full-title">{{ selectedAssignment.courseName }}:{{ selectedAssignment.assignmentName }}</h3>
|
|
|
+ <h3 class="assignment-full-title">
|
|
|
+ {{ selectedAssignment.courseName }}:{{ selectedAssignment.assignmentName }}
|
|
|
+ <span class="assignment-type-badge" :class="getAssignmentTypeClass(selectedAssignment.type)">
|
|
|
+ {{ getAssignmentTypeLabel(selectedAssignment.type) }}
|
|
|
+ </span>
|
|
|
+ </h3>
|
|
|
</div>
|
|
|
|
|
|
<!-- 搜索筛选栏 -->
|
|
|
@@ -433,12 +438,15 @@
|
|
|
const assignment = course.assignments.find(a => a.assignmentId === assignmentId)
|
|
|
if (assignment) {
|
|
|
assignment.active = true
|
|
|
+ // 从rawAssignments中获取完整的作业信息,包括type
|
|
|
+ const fullAssignment = rawAssignments.find(a => a.assignmentId === assignmentId)
|
|
|
// 设置选中的作业信息
|
|
|
selectedAssignment.value = {
|
|
|
assignmentId: assignment.assignmentId,
|
|
|
assignmentName: assignment.assignmentName,
|
|
|
courseName: course.courseName,
|
|
|
- courseId: course.courseId
|
|
|
+ courseId: course.courseId,
|
|
|
+ type: fullAssignment?.type || ''
|
|
|
}
|
|
|
|
|
|
// 加载相关数据
|
|
|
@@ -671,18 +679,49 @@
|
|
|
return status === 'LATE_SUBMITTED' || status === 'LATE_SUBMITTED_CORRECTED'
|
|
|
}
|
|
|
|
|
|
+ // 获取作业类型标签文本
|
|
|
+ const getAssignmentTypeLabel = (type: string) => {
|
|
|
+ if (!type) return ''
|
|
|
+ if (type === 'AI_SPEAKING' || type === 'AI口语') return 'AI口语'
|
|
|
+ if (type === 'WRITING' || type === '写作') return '写作'
|
|
|
+ return type
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取作业类型标签样式
|
|
|
+ const getAssignmentTypeClass = (type: string) => {
|
|
|
+ if (!type) return ''
|
|
|
+ if (type === 'AI_SPEAKING' || type === 'AI口语') return 'type-ai-speaking'
|
|
|
+ if (type === 'WRITING' || type === '写作') return 'type-writing'
|
|
|
+ return ''
|
|
|
+ }
|
|
|
+
|
|
|
// 处理批改操作
|
|
|
const handleCorrect = (row: StudentAssignmentStatusDTO) => {
|
|
|
console.log('批改学生作业:', row)
|
|
|
|
|
|
- // 跳转到批改页面,路径为 home/assignment/:assignmentId/correct,并传递studentId参数
|
|
|
if (selectedAssignment.value) {
|
|
|
- router.push({
|
|
|
- path: `/home/assignment/${selectedAssignment.value.assignmentId}/correct`,
|
|
|
- query: {
|
|
|
- studentId: row.studentId.toString()
|
|
|
- }
|
|
|
- })
|
|
|
+ const assignmentType = selectedAssignment.value.type
|
|
|
+
|
|
|
+ // 根据作业类型跳转到不同的批改页面
|
|
|
+ if (assignmentType === 'AI_SPEAKING' || assignmentType === 'AI口语') {
|
|
|
+ // 跳转到口语作业批改页面
|
|
|
+ router.push({
|
|
|
+ path: `/home/assignment/${selectedAssignment.value.assignmentId}/airecord`,
|
|
|
+ query: {
|
|
|
+ userId: row.studentId.toString(),
|
|
|
+ assignmentId: selectedAssignment.value.assignmentId.toString(),
|
|
|
+ assignmentName: selectedAssignment.value.assignmentName
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ // 跳转到写作作业批改页面(默认)
|
|
|
+ router.push({
|
|
|
+ path: `/home/assignment/${selectedAssignment.value.assignmentId}/correct`,
|
|
|
+ query: {
|
|
|
+ studentId: row.studentId.toString()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1244,6 +1283,30 @@ export default {
|
|
|
color: #333;
|
|
|
margin: 0;
|
|
|
font-family: "Noto Sans SC", sans-serif;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 12px;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 作业类型标签样式 */
|
|
|
+ .assignment-type-badge {
|
|
|
+ padding: 4px 12px;
|
|
|
+ border-radius: 4px;
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 500;
|
|
|
+ display: inline-flex;
|
|
|
+ align-items: center;
|
|
|
+ font-family: "Noto Sans SC", sans-serif;
|
|
|
+ }
|
|
|
+
|
|
|
+ .type-ai-speaking {
|
|
|
+ background-color: #70BBD9;
|
|
|
+ color: white;
|
|
|
+ }
|
|
|
+
|
|
|
+ .type-writing {
|
|
|
+ background-color: #7ADBB0;
|
|
|
+ color: white;
|
|
|
}
|
|
|
|
|
|
/* 筛选区域样式 */
|