|
@@ -28,7 +28,7 @@
|
|
|
v-html="getDomByRichTextJSON(question.standardAnswerr)?.innerHTML"
|
|
|
/>
|
|
|
</div>
|
|
|
- <div v-if="route.name !== 'Mark'" style="color: blue">
|
|
|
+ <div v-if="showScore(question)" style="color: blue">
|
|
|
得分 / 总分 :{{
|
|
|
(question.score ?? "-") + " / " + question.totalScore
|
|
|
}}
|
|
@@ -50,6 +50,9 @@ import Viewer from "viewerjs";
|
|
|
import { useRoute } from "vue-router";
|
|
|
|
|
|
const route = useRoute();
|
|
|
+const isSeePaper = route.name === "StudentTrack";
|
|
|
+const showScore = (question: QuestionForRender) =>
|
|
|
+ route.name !== "Mark" && question.totalScore;
|
|
|
|
|
|
interface StudentAnswer {
|
|
|
mainNumber: number;
|
|
@@ -98,32 +101,65 @@ watch(
|
|
|
q.answer = [q.answer];
|
|
|
}
|
|
|
}
|
|
|
- // TODO: 最好变成有结构的v-for渲染
|
|
|
- for (const taskQuestion of store.currentTask?.questionList || []) {
|
|
|
- const questionForRender = {} as QuestionForRender;
|
|
|
-
|
|
|
- const q: StudentAnswer = stuQuestions.find(
|
|
|
- (v: StudentAnswer) =>
|
|
|
- v.mainNumber === taskQuestion.mainNumber &&
|
|
|
- v.subNumber == taskQuestion.subNumber
|
|
|
- ) || {
|
|
|
- mainNumber: taskQuestion.mainNumber,
|
|
|
- subNumber: taskQuestion.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.standardAnswerr = questionBody.answer;
|
|
|
- questionForRender.studentAnswer = q.answer;
|
|
|
- questionForRender.score = taskQuestion.score;
|
|
|
- questionForRender.totalScore = taskQuestion.maxScore;
|
|
|
- questions.value.push(questionForRender);
|
|
|
+ // 试卷轨迹显示全部题目
|
|
|
+ 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(
|
|
|
+ (v: StudentAnswer) =>
|
|
|
+ questionBody.unionOrder === v.mainNumber + "-" + v.subNumber
|
|
|
+ ) || {
|
|
|
+ mainNumber: mainNumber,
|
|
|
+ subNumber: subNumber,
|
|
|
+ answer: [],
|
|
|
+ };
|
|
|
+
|
|
|
+ const taskQuestion = (store.currentTask?.questionList || []).find(
|
|
|
+ (v) => v.mainNumber + "" == mainNumber && v.subNumber == subNumber
|
|
|
+ );
|
|
|
+
|
|
|
+ // 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.standardAnswerr = questionBody.answer;
|
|
|
+ questionForRender.studentAnswer = q.answer;
|
|
|
+ questionForRender.score = taskQuestion?.score || null;
|
|
|
+ questionForRender.totalScore = taskQuestion?.maxScore || 0;
|
|
|
+ questions.value.push(questionForRender);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (const taskQuestion of store.currentTask?.questionList || []) {
|
|
|
+ const questionForRender = {} as QuestionForRender;
|
|
|
+
|
|
|
+ const q: StudentAnswer = stuQuestions.find(
|
|
|
+ (v: StudentAnswer) =>
|
|
|
+ v.mainNumber === taskQuestion.mainNumber &&
|
|
|
+ v.subNumber == taskQuestion.subNumber
|
|
|
+ ) || {
|
|
|
+ mainNumber: taskQuestion.mainNumber,
|
|
|
+ subNumber: taskQuestion.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.standardAnswerr = questionBody.answer;
|
|
|
+ questionForRender.studentAnswer = q.answer;
|
|
|
+ questionForRender.score = taskQuestion.score;
|
|
|
+ questionForRender.totalScore = taskQuestion.maxScore;
|
|
|
+ questions.value.push(questionForRender);
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
{ immediate: true }
|