|
@@ -44,11 +44,7 @@ import { useMarkStore } from "@/store";
|
|
|
import { Task } from "@/types";
|
|
|
import vls from "@/utils/storage";
|
|
|
|
|
|
-import {
|
|
|
- getSingleStudentTaskOfStudentTrack,
|
|
|
- getSingleStudentCardData,
|
|
|
-} from "@/api/studentTrackPage";
|
|
|
-import { studentObjectiveConfirmData } from "@/api/checkPage";
|
|
|
+import { getStudentTrack } from "@/api/studentTrackPage";
|
|
|
import { doLogout } from "@/api/markPage";
|
|
|
|
|
|
import MarkTool from "../mark/toolbar/MarkTool.vue";
|
|
@@ -64,49 +60,80 @@ function logout() {
|
|
|
async function updateTask() {
|
|
|
const mkey = "fetch_task_key";
|
|
|
void message.info({ content: "获取任务中...", duration: 1.5, key: mkey });
|
|
|
- let res = await getSingleStudentTaskOfStudentTrack(studentId);
|
|
|
-
|
|
|
- if (res.data.studentId) {
|
|
|
- const rawTask = res.data;
|
|
|
-
|
|
|
- if (!res.data.sheetUrls?.length) {
|
|
|
- rawTask.sheetUrls = rawTask.sheetUrls || [];
|
|
|
- markStore.message = "暂无数据";
|
|
|
- } else {
|
|
|
- // 获取客观题选项信息
|
|
|
- const objectiveRes = await studentObjectiveConfirmData(studentId);
|
|
|
- const objectiveData = objectiveRes.data;
|
|
|
-
|
|
|
- const answerMap = {} as Task["answerMap"];
|
|
|
- objectiveData.answers.forEach((item) => {
|
|
|
- answerMap[`${item.mainNumber}_${item.subNumber}`] = {
|
|
|
- answer: item.answer,
|
|
|
- totalScore: item.totalScore,
|
|
|
- score: item.score,
|
|
|
- isRight: item.answer === item.standardAnswer,
|
|
|
- };
|
|
|
- });
|
|
|
-
|
|
|
- // 获取题卡数据
|
|
|
- const cardRes = await getSingleStudentCardData(studentId);
|
|
|
- const cardData = cardRes.data?.content
|
|
|
- ? JSON.parse(cardRes.data.content)
|
|
|
- : { pages: [] };
|
|
|
-
|
|
|
- rawTask.answerMap = answerMap;
|
|
|
- rawTask.recogDatas = objectiveData.sheetUrls.map(
|
|
|
- (item) => item.recogData
|
|
|
- );
|
|
|
- rawTask.cardData = cardData.pages;
|
|
|
- }
|
|
|
-
|
|
|
- rawTask.sliceUrls = [...rawTask.sheetUrls];
|
|
|
- markStore.currentTask = rawTask;
|
|
|
- markStore.setting.doubleTrack = true;
|
|
|
- } else {
|
|
|
- markStore.message = res.data.message;
|
|
|
+ const res = await getStudentTrack(studentId);
|
|
|
+
|
|
|
+ if (!res.data?.studentId) {
|
|
|
+ void message.success({
|
|
|
+ content: "无任务",
|
|
|
+ key: mkey,
|
|
|
+ });
|
|
|
+ markStore.message = res.data?.message;
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
+ if (!res.data?.sheetUrls?.length) {
|
|
|
+ markStore.message = "暂无数据";
|
|
|
+ void message.success({
|
|
|
+ content: "无任务",
|
|
|
+ key: mkey,
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const taskData = res.data;
|
|
|
+ const rawTask: Task = {
|
|
|
+ examId: taskData.examId,
|
|
|
+ studentId: taskData.studentId,
|
|
|
+ secretNumber: taskData.secretNumber,
|
|
|
+ courseCode: taskData.courseCode,
|
|
|
+ courseName: taskData.courseName,
|
|
|
+ paperNumber: taskData.paperNumber,
|
|
|
+ studentCode: taskData.studentCode,
|
|
|
+ studentName: taskData.studentName,
|
|
|
+ paperType: taskData.paperType,
|
|
|
+ objectiveScore: taskData.objectiveScore || 0,
|
|
|
+ markerScore:
|
|
|
+ (taskData.objectiveScore || 0) + (taskData.subjectiveScore || 0),
|
|
|
+ sheetUrls: taskData.sheetUrls.map((item) => item.url),
|
|
|
+ sliceUrls: [],
|
|
|
+ questionList: taskData.subjectiveQuestions,
|
|
|
+ answerMap: {},
|
|
|
+ recogDatas: [],
|
|
|
+ cardData: [],
|
|
|
+ markAreas: taskData.subjectiveQuestions.map((item) => {
|
|
|
+ return {
|
|
|
+ mainNumber: item.mainNumber,
|
|
|
+ subNumber: item.subNumber,
|
|
|
+ questionType: item.questionType,
|
|
|
+ splitConfig: item.picList || [],
|
|
|
+ };
|
|
|
+ }),
|
|
|
+ };
|
|
|
+
|
|
|
+ // 获取客观题选项信息
|
|
|
+ const answerMap = {} as Task["answerMap"];
|
|
|
+ taskData.objectiveQuestions.forEach((item) => {
|
|
|
+ answerMap[`${item.mainNumber}_${item.subNumber}`] = {
|
|
|
+ answer: item.answer,
|
|
|
+ totalScore: item.totalScore,
|
|
|
+ score: item.score,
|
|
|
+ isRight: item.answer === item.standardAnswer,
|
|
|
+ };
|
|
|
+ });
|
|
|
+
|
|
|
+ // 获取题卡数据
|
|
|
+ const cardData: { pages: Task["cardData"] } = taskData.cardContent
|
|
|
+ ? JSON.parse(taskData.cardContent)
|
|
|
+ : { pages: [] };
|
|
|
+
|
|
|
+ rawTask.answerMap = answerMap;
|
|
|
+ rawTask.recogDatas = taskData.sheetUrls.map((item) => item.recogData);
|
|
|
+ rawTask.cardData = cardData.pages;
|
|
|
+
|
|
|
+ rawTask.sliceUrls = [...rawTask.sheetUrls];
|
|
|
+ markStore.currentTask = rawTask;
|
|
|
+ markStore.setting.doubleTrack = true;
|
|
|
+
|
|
|
void message.success({
|
|
|
content: res.data.studentId ? "获取成功" : "无任务",
|
|
|
key: mkey,
|