|
@@ -1,6 +1,8 @@
|
|
|
import { computed, onMounted, reactive, ref, watch } from "vue";
|
|
|
import { openApi } from "@/api/open/type";
|
|
|
-export const useDriverExam = (requestFn: Promise<openApi.selectFreeQuestionInfoRes>) => {
|
|
|
+export const useDriverExam = (requestFn: Promise<openApi.selectFreeQuestionInfoRes>, config = {
|
|
|
+ watch: true
|
|
|
+}) => {
|
|
|
|
|
|
const falseNum = ref(0)
|
|
|
const trueNum = ref(0)
|
|
@@ -593,8 +595,10 @@ export const useDriverExam = (requestFn: Promise<openApi.selectFreeQuestionInfoR
|
|
|
};
|
|
|
const switchAnswerBySelect = (answer: string | string[], index: number) => {
|
|
|
let select = "";
|
|
|
+ console.log(answer)
|
|
|
if (Array.isArray(answer)) {
|
|
|
answer.forEach((item) => {
|
|
|
+
|
|
|
select = select + switchIndexBySelect(
|
|
|
list.value[index].optsArr.indexOf(item)
|
|
|
);
|
|
@@ -607,63 +611,78 @@ export const useDriverExam = (requestFn: Promise<openApi.selectFreeQuestionInfoR
|
|
|
}
|
|
|
return select;
|
|
|
};
|
|
|
- watch(listIndex, (newVal, oldVal) => {
|
|
|
- console.log(newVal, oldVal);
|
|
|
- //判断对错
|
|
|
- if (
|
|
|
- list.value[oldVal].questionType !== 3 &&
|
|
|
- !list.value[oldVal].isComplete &&
|
|
|
- list.value[oldVal].userAnswer.length
|
|
|
- ) {
|
|
|
- const userAnswer = list.value[oldVal].userAnswer as string;
|
|
|
- const answer = list.value[oldVal].answer;
|
|
|
- if (answer == userAnswer) {
|
|
|
- list.value[oldVal].isComplete = true;
|
|
|
- list.value[oldVal].isError = false;
|
|
|
- trueNum.value++;
|
|
|
- } else {
|
|
|
- list.value[oldVal].isComplete = true;
|
|
|
- list.value[oldVal].isError = true;
|
|
|
- falseNum.value++;
|
|
|
+ if (config.watch) {
|
|
|
+ watch(listIndex, (newVal, oldVal) => {
|
|
|
+ console.log(newVal, oldVal);
|
|
|
+ //判断对错
|
|
|
+ if (
|
|
|
+ list.value[oldVal].questionType !== 3 &&
|
|
|
+ !list.value[oldVal].isComplete &&
|
|
|
+ list.value[oldVal].userAnswer.length
|
|
|
+ ) {
|
|
|
+ const userAnswer = list.value[oldVal].userAnswer as string;
|
|
|
+ const answer = list.value[oldVal].answer;
|
|
|
+ if (answer == userAnswer) {
|
|
|
+ list.value[oldVal].isComplete = true;
|
|
|
+ list.value[oldVal].isError = false;
|
|
|
+ trueNum.value++;
|
|
|
+ } else {
|
|
|
+ list.value[oldVal].isComplete = true;
|
|
|
+ list.value[oldVal].isError = true;
|
|
|
+ falseNum.value++;
|
|
|
+ }
|
|
|
+ } else if (
|
|
|
+ list.value[oldVal].questionType == 3 &&
|
|
|
+ !list.value[oldVal].isComplete &&
|
|
|
+ list.value[oldVal].userAnswer.length
|
|
|
+ ) {
|
|
|
+ const userAnswer = Object.assign([], list.value[oldVal].userAnswer) as string[];
|
|
|
+ userAnswer.sort();
|
|
|
+ const answer = list.value[oldVal].answer.split("-");
|
|
|
+ answer.sort();
|
|
|
+ if (userAnswer.toString() == answer.toString()) {
|
|
|
+ list.value[oldVal].isComplete = true;
|
|
|
+ list.value[oldVal].isError = false;
|
|
|
+ trueNum.value++;
|
|
|
+ } else {
|
|
|
+ list.value[oldVal].isComplete = true;
|
|
|
+ list.value[oldVal].isError = true;
|
|
|
+ falseNum.value++;
|
|
|
+ }
|
|
|
}
|
|
|
- } else if (
|
|
|
- list.value[oldVal].questionType == 3 &&
|
|
|
- !list.value[oldVal].isComplete &&
|
|
|
- list.value[oldVal].userAnswer.length
|
|
|
- ) {
|
|
|
- const userAnswer = list.value[oldVal].userAnswer as string[];
|
|
|
- userAnswer.sort();
|
|
|
- const answer = list.value[oldVal].answer.split("-");
|
|
|
- answer.sort();
|
|
|
- if (userAnswer.toString() == answer.toString()) {
|
|
|
- list.value[oldVal].isComplete = true;
|
|
|
- list.value[oldVal].isError = false;
|
|
|
- trueNum.value++;
|
|
|
- } else {
|
|
|
- list.value[oldVal].isComplete = true;
|
|
|
- list.value[oldVal].isError = true;
|
|
|
- falseNum.value++;
|
|
|
+ //判断对错
|
|
|
+ //提示
|
|
|
+ if (
|
|
|
+ list.value[oldVal].isError &&
|
|
|
+ list.value[oldVal].questionType === 3 &&
|
|
|
+ list.value[oldVal].isComplete
|
|
|
+ ) {
|
|
|
+
|
|
|
+ alert(
|
|
|
+ "正确答案:" + switchAnswerBySelect(list.value[oldVal].answer.split('-'), oldVal)
|
|
|
+ );
|
|
|
+ } else if (
|
|
|
+ list.value[oldVal].isError &&
|
|
|
+ list.value[oldVal].questionType !== 3 &&
|
|
|
+ list.value[oldVal].isComplete
|
|
|
+ ) {
|
|
|
+ alert("正确答案:" + list.value[oldVal].answer);
|
|
|
}
|
|
|
+ //提示
|
|
|
+ });
|
|
|
+ }
|
|
|
+ const getCorrectRate = ()=>{
|
|
|
+ if(trueNum.value+falseNum.value){
|
|
|
+ Math.round((trueNum.value)/(trueNum.value+falseNum.value) * 100) / 100
|
|
|
+ return
|
|
|
+
|
|
|
}
|
|
|
- //判断对错
|
|
|
- //提示
|
|
|
- if (
|
|
|
- list.value[oldVal].isError &&
|
|
|
- list.value[oldVal].questionType !== 1 &&
|
|
|
- list.value[oldVal].isComplete
|
|
|
- ) {
|
|
|
- alert(
|
|
|
- "正确答案:" + switchAnswerBySelect(list.value[oldVal].answer, oldVal)
|
|
|
- );
|
|
|
- } else if (
|
|
|
- list.value[oldVal].isError &&
|
|
|
- list.value[oldVal].questionType == 1 &&
|
|
|
- list.value[oldVal].isComplete
|
|
|
- ) {
|
|
|
- alert("正确答案:" + list.value[oldVal].answer);
|
|
|
+ else{
|
|
|
+ return 0
|
|
|
}
|
|
|
- //提示
|
|
|
- });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
requestFn.then(res => {
|
|
|
res.rows.forEach((element) => {
|
|
@@ -685,11 +704,12 @@ export const useDriverExam = (requestFn: Promise<openApi.selectFreeQuestionInfoR
|
|
|
listIndex,
|
|
|
setUserAnswer,
|
|
|
getProblemTypeName,
|
|
|
+ getCorrectRate,
|
|
|
nextProblem,
|
|
|
preProblem,
|
|
|
switchIndexByJudge,
|
|
|
switchAnswerBySelect,
|
|
|
- switchIndexBySelect
|
|
|
+ switchIndexBySelect
|
|
|
|
|
|
}
|
|
|
|