|
@@ -2,17 +2,22 @@
|
|
<div class="fix">
|
|
<div class="fix">
|
|
<div class="all-box-left">
|
|
<div class="all-box-left">
|
|
<div class="a-card is-always-shadow left-box left-box-normal">
|
|
<div class="a-card is-always-shadow left-box left-box-normal">
|
|
- <a-card>
|
|
|
|
- <div class="score-card">
|
|
|
|
- <div class="score-box">
|
|
|
|
- <div>考试名称:{{ form.examTitle }}</div>
|
|
|
|
- <div>考生姓名:{{ form.realName }}</div>
|
|
|
|
- <div>及格分数:<span class="numberClass">{{ form.qualifyScore }} 分</span></div>
|
|
|
|
- <div>客观题得分:<span class="numberClass">{{ form.objectiveScore || 0 }} 分</span>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </a-card>
|
|
|
|
|
|
+ <div style="text-align: center">
|
|
|
|
+ <a-button type="primary" style="width: 100px;margin-top: 20px" @click="commitPreview">
|
|
|
|
+ 提交批阅
|
|
|
|
+ </a-button>
|
|
|
|
+ </div>
|
|
|
|
+<!-- <a-card>-->
|
|
|
|
+<!-- <div class="score-card">-->
|
|
|
|
+<!-- <div class="score-box">-->
|
|
|
|
+<!-- <div>考试名称:{{ form.examTitle }}</div>-->
|
|
|
|
+<!-- <div>考生姓名:{{ form.realName }}</div>-->
|
|
|
|
+<!-- <div>及格分数:<span class="numberClass">{{ form.qualifyScore }} 分</span></div>-->
|
|
|
|
+<!-- <div>客观题得分:<span class="numberClass">{{ form.objectiveScore || 0 }} 分</span>-->
|
|
|
|
+<!-- </div>-->
|
|
|
|
+<!-- </div>-->
|
|
|
|
+<!-- </div>-->
|
|
|
|
+<!-- </a-card>-->
|
|
<a-card>
|
|
<a-card>
|
|
<a-row :gutter="8" style="font-size: 12px;margin-bottom: 20px">
|
|
<a-row :gutter="8" style="font-size: 12px;margin-bottom: 20px">
|
|
<a-col :span="3">
|
|
<a-col :span="3">
|
|
@@ -43,7 +48,7 @@
|
|
<div class="group-card" v-for="(item,index) in form.answerCardList" :key="index">
|
|
<div class="group-card" v-for="(item,index) in form.answerCardList" :key="index">
|
|
<template v-for="(mapItem,key) in item" :key="key">
|
|
<template v-for="(mapItem,key) in item" :key="key">
|
|
<a :href="'#anchor'+mapItem.indexList[0]" class="typeClass" :title="key">{{ key }}</a>
|
|
<a :href="'#anchor'+mapItem.indexList[0]" class="typeClass" :title="key">{{ key }}</a>
|
|
- <a-divider />
|
|
|
|
|
|
+ <a-divider/>
|
|
<div class="group-card-body">
|
|
<div class="group-card-body">
|
|
共 <span class="numberClass">{{ mapItem.questionCount }}</span> 题,共 <span
|
|
共 <span class="numberClass">{{ mapItem.questionCount }}</span> 题,共 <span
|
|
class="numberClass">{{ mapItem.questionScore }}</span> 分
|
|
class="numberClass">{{ mapItem.questionScore }}</span> 分
|
|
@@ -80,7 +85,7 @@
|
|
</div>
|
|
</div>
|
|
<template v-if="userExamQuestion.questionType != 6">
|
|
<template v-if="userExamQuestion.questionType != 6">
|
|
<div v-if="userExamQuestion.questionType == 4">
|
|
<div v-if="userExamQuestion.questionType == 4">
|
|
- <Tinymce v-model="userExamQuestion.answer" :disabled="true" />
|
|
|
|
|
|
+ <Tinymce v-model="userExamQuestion.answer" :disabled="true"/>
|
|
</div>
|
|
</div>
|
|
<div class="qu-answer" v-else>
|
|
<div class="qu-answer" v-else>
|
|
<div class="item"
|
|
<div class="item"
|
|
@@ -93,7 +98,7 @@
|
|
v-if="userExamQuestion.questionType!=5 && answerItem.isRight"
|
|
v-if="userExamQuestion.questionType!=5 && answerItem.isRight"
|
|
:style="{float:'right'}">
|
|
:style="{float:'right'}">
|
|
<template #icon>
|
|
<template #icon>
|
|
- <check-circle-outlined />
|
|
|
|
|
|
+ <check-circle-outlined/>
|
|
</template>
|
|
</template>
|
|
正确
|
|
正确
|
|
</a-tag>
|
|
</a-tag>
|
|
@@ -106,10 +111,10 @@
|
|
<template v-if="userExamQuestion.isRight!=null">
|
|
<template v-if="userExamQuestion.isRight!=null">
|
|
<template v-if="userExamQuestion.isRight">
|
|
<template v-if="userExamQuestion.isRight">
|
|
<a-alert message="部分答对了" type="warning" show-icon
|
|
<a-alert message="部分答对了" type="warning" show-icon
|
|
- v-if="userExamQuestion.actualScore < userExamQuestion.questionScore && userExamQuestion.actualScore > 0" />
|
|
|
|
- <a-alert message="答对了" type="success" show-icon v-else />
|
|
|
|
|
|
+ v-if="userExamQuestion.actualScore < userExamQuestion.questionScore && userExamQuestion.actualScore > 0"/>
|
|
|
|
+ <a-alert message="答对了" type="success" show-icon v-else/>
|
|
</template>
|
|
</template>
|
|
- <a-alert message="答错了" type="error" show-icon v-else />
|
|
|
|
|
|
+ <a-alert message="答错了" type="error" show-icon v-else/>
|
|
</template>
|
|
</template>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -158,7 +163,7 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div v-if="subQuestion.questionType == 4">
|
|
<div v-if="subQuestion.questionType == 4">
|
|
- <Tinymce v-model="subQuestion.answer" :disabled="true" />
|
|
|
|
|
|
+ <Tinymce v-model="subQuestion.answer" :disabled="true"/>
|
|
</div>
|
|
</div>
|
|
<div class="qu-answer">
|
|
<div class="qu-answer">
|
|
<div class="item"
|
|
<div class="item"
|
|
@@ -171,7 +176,7 @@
|
|
v-if="subQuestion.questionType!=5 && subQuestionAnswer.isRight"
|
|
v-if="subQuestion.questionType!=5 && subQuestionAnswer.isRight"
|
|
:style="{float:'right'}">
|
|
:style="{float:'right'}">
|
|
<template #icon>
|
|
<template #icon>
|
|
- <check-circle-outlined />
|
|
|
|
|
|
+ <check-circle-outlined/>
|
|
</template>
|
|
</template>
|
|
</a-tag>
|
|
</a-tag>
|
|
</div>
|
|
</div>
|
|
@@ -183,10 +188,10 @@
|
|
<template v-if="subQuestion.isRight!=null">
|
|
<template v-if="subQuestion.isRight!=null">
|
|
<template v-if="subQuestion.isRight">
|
|
<template v-if="subQuestion.isRight">
|
|
<a-alert message="部分答对了" type="warning" show-icon
|
|
<a-alert message="部分答对了" type="warning" show-icon
|
|
- v-if="subQuestion.actualScore < subQuestion.questionScore" />
|
|
|
|
- <a-alert message="答对了" type="success" show-icon v-else />
|
|
|
|
|
|
+ v-if="subQuestion.actualScore < subQuestion.questionScore"/>
|
|
|
|
+ <a-alert message="答对了" type="success" show-icon v-else/>
|
|
</template>
|
|
</template>
|
|
- <a-alert message="答错了" type="error" show-icon v-else />
|
|
|
|
|
|
+ <a-alert message="答错了" type="error" show-icon v-else/>
|
|
</template>
|
|
</template>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -229,10 +234,10 @@
|
|
判题:
|
|
判题:
|
|
<CheckCircleFilled
|
|
<CheckCircleFilled
|
|
:style="{color: buttonColorClass(subQuestion.isRight,'rightButton'),fontSize:'24px'}"
|
|
:style="{color: buttonColorClass(subQuestion.isRight,'rightButton'),fontSize:'24px'}"
|
|
- @click="buttonSubSubmit(userExamQuestion.questionIndex,subQuestion.questionIndex,true)" />
|
|
|
|
|
|
+ @click="buttonSubSubmit(userExamQuestion.questionIndex,subQuestion.questionIndex,true)"/>
|
|
<CloseCircleFilled
|
|
<CloseCircleFilled
|
|
:style="{color: buttonColorClass(subQuestion.isRight,'errorButton'),fontSize:'24px',marginLeft:'16px'}"
|
|
:style="{color: buttonColorClass(subQuestion.isRight,'errorButton'),fontSize:'24px',marginLeft:'16px'}"
|
|
- @click="buttonSubSubmit(userExamQuestion.questionIndex,subQuestion.questionIndex,false)" />
|
|
|
|
|
|
+ @click="buttonSubSubmit(userExamQuestion.questionIndex,subQuestion.questionIndex,false)"/>
|
|
</div>
|
|
</div>
|
|
<div class="item">
|
|
<div class="item">
|
|
得分:
|
|
得分:
|
|
@@ -270,10 +275,10 @@
|
|
判题:
|
|
判题:
|
|
<CheckCircleFilled
|
|
<CheckCircleFilled
|
|
:style="{color: buttonColorClass(userExamQuestion.isRight,'rightButton'),fontSize:'24px'}"
|
|
:style="{color: buttonColorClass(userExamQuestion.isRight,'rightButton'),fontSize:'24px'}"
|
|
- @click="buttonSubmit(userExamQuestion.questionIndex,true)" />
|
|
|
|
|
|
+ @click="buttonSubmit(userExamQuestion.questionIndex,true)"/>
|
|
<CloseCircleFilled
|
|
<CloseCircleFilled
|
|
:style="{color: buttonColorClass(userExamQuestion.isRight,'errorButton'),fontSize:'24px',marginLeft:'16px'}"
|
|
:style="{color: buttonColorClass(userExamQuestion.isRight,'errorButton'),fontSize:'24px',marginLeft:'16px'}"
|
|
- @click="buttonSubmit(userExamQuestion.questionIndex,false)" />
|
|
|
|
|
|
+ @click="buttonSubmit(userExamQuestion.questionIndex,false)"/>
|
|
</div>
|
|
</div>
|
|
<div class="item">
|
|
<div class="item">
|
|
得分:
|
|
得分:
|
|
@@ -292,27 +297,23 @@
|
|
</a-card>
|
|
</a-card>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div style="text-align: center">
|
|
|
|
- <a-button type="primary" style="width: 100px;margin-top: 20px" @click="commitPreview">
|
|
|
|
- 提交批阅
|
|
|
|
- </a-button>
|
|
|
|
- </div>
|
|
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
<script lang="ts" setup>
|
|
-import { ref } from "vue";
|
|
|
|
-import { userExamResultDetail } from "/@/views/buss/exam/exam/Exam.api";
|
|
|
|
-import { submitPreview } from "/@/views/buss/exam/examreview/ExamReview.api";
|
|
|
|
-import { useMessage } from "/@/hooks/web/useMessage";
|
|
|
|
-import { Anchor, AnchorLink } from "ant-design-vue";
|
|
|
|
-import { CheckCircleFilled, CheckCircleOutlined, CloseCircleFilled } from "@ant-design/icons-vue";
|
|
|
|
-import { useRoute, useRouter } from "vue-router";
|
|
|
|
-import { Tinymce } from "/@/components/Tinymce";
|
|
|
|
-
|
|
|
|
-const { createMessage } = useMessage();
|
|
|
|
|
|
+import {ref} from "vue";
|
|
|
|
+import {userExamResultDetail} from "/@/views/buss/exam/exam/Exam.api";
|
|
|
|
+import {submitPreview, userExamResultDetails} from "/@/views/buss/exam/examreview/ExamReview.api";
|
|
|
|
+import {useMessage} from "/@/hooks/web/useMessage";
|
|
|
|
+import {Anchor, AnchorLink} from "ant-design-vue";
|
|
|
|
+import {CheckCircleFilled, CheckCircleOutlined, CloseCircleFilled} from "@ant-design/icons-vue";
|
|
|
|
+import {useRoute, useRouter} from "vue-router";
|
|
|
|
+import {Tinymce} from "/@/components/Tinymce";
|
|
|
|
+
|
|
|
|
+const {createMessage} = useMessage();
|
|
const route = useRoute();
|
|
const route = useRoute();
|
|
-const userExamId = route.params?.id ?? -1;
|
|
|
|
|
|
+let userExamId = route.params?.id ?? -1;
|
|
const paperId = route.params?.paperId ?? -1;
|
|
const paperId = route.params?.paperId ?? -1;
|
|
const form: any = ref<any>({
|
|
const form: any = ref<any>({
|
|
userExamQuestionList: []
|
|
userExamQuestionList: []
|
|
@@ -322,9 +323,10 @@ const router = useRouter();
|
|
initFormData();
|
|
initFormData();
|
|
|
|
|
|
async function initFormData() {
|
|
async function initFormData() {
|
|
- let params = { userExamId: userExamId,'paperId':paperId };
|
|
|
|
|
|
+ let params = {userExamId: userExamId, 'paperId': paperId};
|
|
const data = await userExamResultDetail(params);
|
|
const data = await userExamResultDetail(params);
|
|
- form.value = { ...data };
|
|
|
|
|
|
+ console.log(data)
|
|
|
|
+ form.value = {...data};
|
|
}
|
|
}
|
|
|
|
|
|
//改变分值触发,如果已经判为错题,则不给分
|
|
//改变分值触发,如果已经判为错题,则不给分
|
|
@@ -490,18 +492,35 @@ function commitPreview() {
|
|
examPreviews: examPreviews
|
|
examPreviews: examPreviews
|
|
};
|
|
};
|
|
submitPreview(params).then(() => {
|
|
submitPreview(params).then(() => {
|
|
- setTimeout(function() {
|
|
|
|
- //关闭当前窗口
|
|
|
|
- window.close();
|
|
|
|
- //打开考试结果详情页
|
|
|
|
- let url = router.resolve({
|
|
|
|
- path: `/exam/userexamresult/examDetail/` + userExamId+"/"+paperId
|
|
|
|
- });
|
|
|
|
- window.open(url.href, "_blank");
|
|
|
|
|
|
+ setTimeout(function () {
|
|
|
|
+ nextPaper(paperId);
|
|
|
|
+ // //关闭当前窗口
|
|
|
|
+ // window.close();
|
|
|
|
+ // //打开考试结果详情页
|
|
|
|
+ // let url = router.resolve({
|
|
|
|
+ // path: `/exam/userexamresult/examDetail/` + userExamId+"/"+paperId
|
|
|
|
+ // });
|
|
|
|
+ // window.open(url.href, "_blank");
|
|
}, 1000);
|
|
}, 1000);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+async function nextPaper(id) {
|
|
|
|
+ // userExamResultDetails({'paperId':id}).then(data=>{
|
|
|
|
+ // console.log(data)
|
|
|
|
+ // })
|
|
|
|
+ let params = {'paperId': id};
|
|
|
|
+ const data = await userExamResultDetails(params);
|
|
|
|
+ userExamId = data.id
|
|
|
|
+ form.value = {...data};
|
|
|
|
+ let url = router.resolve({
|
|
|
|
+ path: `/exam/examReview/${userExamId}/${paperId}`,
|
|
|
|
+ })
|
|
|
|
+ window.open(url.href, '_blank')
|
|
|
|
+ setTimeout(()=>{
|
|
|
|
+ window.close();
|
|
|
|
+ },500)
|
|
|
|
+}
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
<style scoped>
|