JXDS18FUJT 2 жил өмнө
parent
commit
dbfe0ffaed

+ 20 - 0
src/api/question/question.ts

@@ -0,0 +1,20 @@
+import request from "../request"
+
+export default {
+    questionInfoSelectSxQuestionInfo(params: {
+        excellIssueName: string
+        excellSort:number
+        liceBus?:'1'|'2'
+        liceCar?:'1'|'2'
+        liceMoto?:'1'|'2'
+        liceTruck:'1'|'2'
+        subject:number
+    }):Promise<any> {
+        return request({
+            params,
+            url: "/student/question/info/selectSxQuestionInfo",
+            method: 'get'
+
+        })
+    }
+}

+ 16 - 0
src/api/question/type.d.ts

@@ -0,0 +1,16 @@
+interface Res {
+    code: number,
+    msg: string
+
+}
+export declare namespace questionApi {
+    interface selectSxQuestionInfo extends Res {
+        data:{
+            createTime?:string
+            updateTime?:string
+            sequeIssue?:string
+            sequeIssueName:string
+        }[]
+      
+}
+}

+ 75 - 55
src/hooks/exam/driverExam.ts

@@ -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
 
   }
 

+ 2 - 49
src/views/driverExam/index.vue

@@ -124,7 +124,7 @@
           <div class="font-bold flex">
             <div class="inline-block">
               <div>剩余时间</div>
-              <div class="pl20">00:39:00</div>
+              <div class="pl20">39:00</div>
             </div>
 
             <div
@@ -146,7 +146,7 @@
         <div class="flex cursor-pointer mt20">
           <!-- 答案列表 -->
           <div
-            @click="setUserAnswer(_item)"
+            @click="list[listIndex].isComplete?'':setUserAnswer(_item)"
             v-for="(_item, _index) in list[listIndex].optsArr"
             :key="_index"
             class="w46 lh46 h46 answer-select font20 font-bold mr15 flex-grow-0"
@@ -210,59 +210,12 @@ export default defineComponent({
   name: "driverExam",
   setup() {
 
-
-    //  let switchIndexToLetter = (index: number) => {
-    //   let name = "";
-    //   switch (index) {
-    //     case 0:
-    //       name = "A";
-    //       break;
-    //     case 1:
-    //       name = "B";
-    //       break;
-    //     case 2:
-    //       name = "C";
-    //       break;
-    //     case 3:
-    //       name = "D";
-    //       break;
-    //   }
-    //   return name
-    // };
-    // onMounted(() => {
-    //   api.open
-    //     .questionInfoSelectFreeQuestionInfo({
-    //       subject: 4,
-    //     })
-    //     .then((res) => {
-    //       res.rows.forEach((element) => {
-    //         element.optsArr = element.opts.split("-");
-    //         if (element.questionType !== 3) {
-    //           element.userAnswer = "";
-    //         } else if (element.questionType == 3) {
-    //           element.userAnswer = [];
-    //         }
-    //       });
-    //       list.value = res.rows;
-    //     });
-    // });
     return {
       alertVisible: ref(false),
       dialogVisible: ref(false),
       ...useDriverExam(api.open.questionInfoSelectFreeQuestionInfo({
         subject:4
       }))
-      // list: list,
-      // listIndex,
-      // falseNum,
-      // trueNum,
-      // nextProblem,
-      // preProblem,
-      // getProblemTypeName,
-      // setUserAnswer,
-      // switchIndexBySelect,
-      // switchIndexByJudge,
-      // switchAnswerBySelect,
     };
   },