|
@@ -122,19 +122,19 @@ watch(
|
|
|
if (!store.currentTask?.jsonUrl) return;
|
|
|
const res = await updateStudentAnswerJSON();
|
|
|
|
|
|
- const stuQuestions = res.data; // TODO: add type
|
|
|
- for (const q of stuQuestions) {
|
|
|
- if (q.answer && !Array.isArray(q.answer)) {
|
|
|
- q.answer = [q.answer];
|
|
|
+ const stuAnswers = res.data; // TODO: add type
|
|
|
+ for (const ans of stuAnswers) {
|
|
|
+ if (ans.answer && !Array.isArray(ans.answer)) {
|
|
|
+ ans.answer = [ans.answer];
|
|
|
}
|
|
|
}
|
|
|
- // 试卷轨迹显示全部题目
|
|
|
+ // 查看原卷显示全部题目
|
|
|
if (isSeePaper) {
|
|
|
for (const questionBody of store.setting.subject.questions || []) {
|
|
|
const questionForRender = {} as QuestionForRender;
|
|
|
|
|
|
const [mainNumber, subNumber] = questionBody.unionOrder.split("-");
|
|
|
- const q: StudentAnswer = stuQuestions.find(
|
|
|
+ const stuAns: StudentAnswer = stuAnswers.find(
|
|
|
(v: StudentAnswer) =>
|
|
|
questionBody.unionOrder ===
|
|
|
[v.mainNumber, v.subNumber, v.subIndex]
|
|
@@ -146,20 +146,17 @@ watch(
|
|
|
answer: [],
|
|
|
};
|
|
|
const taskQuestion = (store.currentTask?.questionList || []).find(
|
|
|
- (v) => v.mainNumber + "" == mainNumber && v.subNumber == subNumber
|
|
|
+ (v) =>
|
|
|
+ [v.mainNumber, v.subNumber].join("-") === questionBody.unionOrder
|
|
|
);
|
|
|
|
|
|
- // const questionBody = store.setting.subject.questions.find(
|
|
|
- // (ques) => ques.unionOrder === `${q.mainNumber}-${q.subNumber}`
|
|
|
- // );
|
|
|
- // if (!questionBody) continue;
|
|
|
questionForRender.unionOrder = questionBody.unionOrder;
|
|
|
questionForRender.parentBody = questionBody.parentBody;
|
|
|
questionForRender.body = questionBody.body;
|
|
|
questionForRender.options = questionBody.options;
|
|
|
questionForRender.objective = questionBody.objective;
|
|
|
questionForRender.standardAnswer = questionBody.answer;
|
|
|
- questionForRender.studentAnswer = q.answer;
|
|
|
+ questionForRender.studentAnswer = stuAns.answer;
|
|
|
questionForRender.score = taskQuestion?.score || null;
|
|
|
questionForRender.totalScore = taskQuestion?.maxScore || 0;
|
|
|
questions.value.push(questionForRender);
|
|
@@ -168,25 +165,29 @@ watch(
|
|
|
for (const taskQuestion of store.currentTask?.questionList || []) {
|
|
|
const questionForRender = {} as QuestionForRender;
|
|
|
|
|
|
- const q: StudentAnswer = stuQuestions.find(
|
|
|
+ const { mainNumber, subNumber } = taskQuestion;
|
|
|
+ const questionBody = store.setting.subject.questions.find(
|
|
|
+ (ques) => ques.unionOrder === `${mainNumber}-${subNumber}`
|
|
|
+ );
|
|
|
+ if (!questionBody) continue;
|
|
|
+
|
|
|
+ const stuAns: StudentAnswer = stuAnswers.find(
|
|
|
(v: StudentAnswer) =>
|
|
|
- v.mainNumber === taskQuestion.mainNumber &&
|
|
|
- v.subNumber == taskQuestion.subNumber
|
|
|
+ questionBody.unionOrder ===
|
|
|
+ [v.mainNumber, v.subNumber, v.subIndex]
|
|
|
+ .filter((v) => typeof v !== "undefined")
|
|
|
+ .join("-")
|
|
|
) || {
|
|
|
- mainNumber: taskQuestion.mainNumber,
|
|
|
- subNumber: taskQuestion.subNumber,
|
|
|
+ mainNumber: mainNumber,
|
|
|
+ subNumber: subNumber,
|
|
|
answer: [],
|
|
|
};
|
|
|
|
|
|
- const questionBody = store.setting.subject.questions.find(
|
|
|
- (ques) => ques.unionOrder === `${q.mainNumber}-${q.subNumber}`
|
|
|
- );
|
|
|
- if (!questionBody) continue;
|
|
|
questionForRender.unionOrder = questionBody.unionOrder;
|
|
|
questionForRender.parentBody = questionBody.parentBody;
|
|
|
questionForRender.body = questionBody.body;
|
|
|
questionForRender.standardAnswer = questionBody.answer;
|
|
|
- questionForRender.studentAnswer = q.answer;
|
|
|
+ questionForRender.studentAnswer = stuAns.answer;
|
|
|
questionForRender.score = taskQuestion.score;
|
|
|
questionForRender.totalScore = taskQuestion.maxScore;
|
|
|
questions.value.push(questionForRender);
|