|
@@ -78,7 +78,11 @@
|
|
|
/>
|
|
|
<div class="mark-main">
|
|
|
<mark-body @error="removeBrokenTask" />
|
|
|
- <mark-board-track v-if="store.isTrackMode" @submit="saveTaskToServer" />
|
|
|
+ <mark-board-track
|
|
|
+ v-if="store.isTrackMode"
|
|
|
+ isCheckAnswer
|
|
|
+ @submit="saveTaskToServer"
|
|
|
+ />
|
|
|
<mark-board-key-board
|
|
|
v-if="store.shouldShowMarkBoardKeyBoard"
|
|
|
@submit="saveTaskToServer"
|
|
@@ -99,6 +103,7 @@
|
|
|
<ShortCutModal />
|
|
|
<MarkBoardTrackDialog
|
|
|
v-if="store.isTrackMode"
|
|
|
+ isCheckAnswer
|
|
|
@submit="saveTaskToServer"
|
|
|
@allZeroSubmit="allZeroSubmit"
|
|
|
/>
|
|
@@ -289,19 +294,22 @@ const getMarkData = () => {
|
|
|
groupMap[groupNumber].specialTagList.push(track);
|
|
|
});
|
|
|
|
|
|
+ const modifiedQuestions = Object.keys(store.currentTaskModifyQuestion).filter(
|
|
|
+ (k) => store.currentTaskModifyQuestion[k]
|
|
|
+ );
|
|
|
+
|
|
|
let groups = Object.values(groupMap).map((item) => {
|
|
|
let qScore = {};
|
|
|
- item.trackList.forEach((track) => {
|
|
|
+ const trackList = item.trackList.filter((track) =>
|
|
|
+ modifiedQuestions.includes(`${track.mainNumber}_${track.subNumber}`)
|
|
|
+ );
|
|
|
+ if (!trackList.length) return null;
|
|
|
+
|
|
|
+ trackList.forEach((track) => {
|
|
|
const qno = `${track.mainNumber * 1000}${track.subNumber}`;
|
|
|
qScore[qno] = (qScore[qno] || 0) + track.score;
|
|
|
});
|
|
|
|
|
|
- // 过滤分数未修改小题的分组
|
|
|
- const groupChanged = Object.entries(qScore).some(
|
|
|
- ([qno, score]) => score !== taskQuestionInfo[qno].score
|
|
|
- );
|
|
|
- if (!groupChanged) return null;
|
|
|
-
|
|
|
let qScoreList = Object.entries(qScore).map(([qno, score]) => {
|
|
|
return {
|
|
|
qno: qno * 1,
|
|
@@ -314,6 +322,7 @@ const getMarkData = () => {
|
|
|
return {
|
|
|
...commomData,
|
|
|
...item,
|
|
|
+ trackList,
|
|
|
scoreList,
|
|
|
markerScore: calcSum(scoreList),
|
|
|
studentId: store.currentTask.studentId,
|
|
@@ -381,25 +390,25 @@ const saveTaskToServer = async () => {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (!store.isTrackMode) {
|
|
|
- markResult.trackList = [];
|
|
|
- } else {
|
|
|
- const trackScores =
|
|
|
- markResult.trackList
|
|
|
- .map((t) => Math.round((t.score || 0) * 100))
|
|
|
- .reduce((acc, s) => acc + s, 0) / 100;
|
|
|
- // console.log(markResult.trackList);
|
|
|
- // console.log(trackScores, markResult.markerScore);
|
|
|
-
|
|
|
- if (trackScores !== markResult.markerScore) {
|
|
|
- void message.error({
|
|
|
- content: "轨迹分与总分不一致,请检查。",
|
|
|
- duration: 3,
|
|
|
- key: mkey,
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
+ // if (!store.isTrackMode) {
|
|
|
+ // markResult.trackList = [];
|
|
|
+ // } else {
|
|
|
+ // const trackScores =
|
|
|
+ // markResult.trackList
|
|
|
+ // .map((t) => Math.round((t.score || 0) * 100))
|
|
|
+ // .reduce((acc, s) => acc + s, 0) / 100;
|
|
|
+ // // console.log(markResult.trackList);
|
|
|
+ // // console.log(trackScores, markResult.markerScore);
|
|
|
+
|
|
|
+ // if (trackScores !== markResult.markerScore) {
|
|
|
+ // void message.error({
|
|
|
+ // content: "轨迹分与总分不一致,请检查。",
|
|
|
+ // duration: 3,
|
|
|
+ // key: mkey,
|
|
|
+ // });
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
|
|
|
console.log("save task to server");
|
|
|
void message.loading({ content: "保存检查任务...", key: mkey });
|
|
@@ -417,7 +426,14 @@ const saveTaskToServer = async () => {
|
|
|
}
|
|
|
|
|
|
if (!isMultiStudent) {
|
|
|
- window.close();
|
|
|
+ void message.success({
|
|
|
+ content: "页面将在3秒钟之后关闭",
|
|
|
+ key: mkey,
|
|
|
+ duration: 2,
|
|
|
+ });
|
|
|
+ // setTimeout(() => {
|
|
|
+ // window.close();
|
|
|
+ // }, 3000);
|
|
|
return;
|
|
|
}
|
|
|
await getNextStudent();
|