|
@@ -73,8 +73,8 @@
|
|
|
:style="{ width: answerPaperScale, fontSize: answerPaperFontSize }"
|
|
|
>
|
|
|
<img
|
|
|
- draggable="false"
|
|
|
id="mark-body-paper"
|
|
|
+ draggable="false"
|
|
|
:src="curImageUrl"
|
|
|
:style="{
|
|
|
transform:
|
|
@@ -230,7 +230,7 @@ const curImageUrl = $computed(() =>
|
|
|
let student: StudentObjectiveInfo | null = $ref(null);
|
|
|
/** 后台数据错误,停止整个页面的流程 */
|
|
|
let dataError = $ref(false);
|
|
|
-let answerMap: Record<string, string> = {};
|
|
|
+let answerMap: Record<string, { answer: string; isRight: boolean }> = {};
|
|
|
|
|
|
interface AnswerTagType {
|
|
|
mainNumber: number;
|
|
@@ -238,7 +238,7 @@ interface AnswerTagType {
|
|
|
answer: string;
|
|
|
style: Record<string, string>;
|
|
|
}
|
|
|
-let answerTags = $ref([]);
|
|
|
+let answerTags = $ref<AnswerTagType[]>([]);
|
|
|
let optionsBlocks = $ref([]);
|
|
|
|
|
|
const answersComputed = $computed(() => {
|
|
@@ -292,7 +292,7 @@ async function getStudent(studentId: string) {
|
|
|
throw new Error("取学生信息出错: " + res.message);
|
|
|
}
|
|
|
|
|
|
- const stu = res.data;
|
|
|
+ const stu = res.data as StudentObjectiveInfo;
|
|
|
// stu.sheetUrls = [
|
|
|
// { index: 1, url: "/1-1.jpg" },
|
|
|
// { index: 2, url: "/1-2.jpg" },
|
|
@@ -303,7 +303,10 @@ async function getStudent(studentId: string) {
|
|
|
|
|
|
answerMap = {};
|
|
|
stu.answers.forEach((item) => {
|
|
|
- answerMap[`${item.mainNumber}_${item.subNumber}`] = item.answer;
|
|
|
+ answerMap[`${item.mainNumber}_${item.subNumber}`] = {
|
|
|
+ answer: item.answer,
|
|
|
+ isRight: item.answer === item.standardAnswer,
|
|
|
+ };
|
|
|
});
|
|
|
|
|
|
return stu;
|
|
@@ -404,17 +407,21 @@ function paperLoad() {
|
|
|
offsetLt[0];
|
|
|
const tagTop = fillPositions[0][1] - offsetLt[1];
|
|
|
|
|
|
+ const { answer, isRight } =
|
|
|
+ answerMap[`${result.main_number}_${result.sub_number}`] || {};
|
|
|
+
|
|
|
answerTags.push({
|
|
|
mainNumber: result.main_number,
|
|
|
subNumber: result.sub_number,
|
|
|
- answer: answerMap[`${result.main_number}_${result.sub_number}`],
|
|
|
+ answer,
|
|
|
style: {
|
|
|
height: ((100 * tagSize) / naturalHeight).toFixed(4) + "%",
|
|
|
fontSize: ((100 * 20) / tagSize).toFixed(4) + "%",
|
|
|
left: ((100 * tagLeft) / naturalWidth).toFixed(4) + "%",
|
|
|
top: ((100 * tagTop) / naturalHeight).toFixed(4) + "%",
|
|
|
position: "absolute",
|
|
|
- color: "#f53f3f",
|
|
|
+ color: isRight ? "#05b575" : "#f53f3f",
|
|
|
+ fontWeight: 600,
|
|
|
lineHeight: 1,
|
|
|
zIndex: 9,
|
|
|
},
|