From 2a177a25321e231bb86c88704feb94f4a7130780 Mon Sep 17 00:00:00 2001
From: yj <2077506045@qq.com>
Date: 星期四, 11 四月 2024 17:27:52 +0800
Subject: [PATCH] 优化LAQ、CIAQ、MAQ、API、JAQ产品的答题逻辑,防止客户误操作导致的流程卡点。

---
 src/views/exam/paper/job.vue |   37 ++++++++++++++++++++++++++++---------
 1 files changed, 28 insertions(+), 9 deletions(-)

diff --git a/src/views/exam/paper/job.vue b/src/views/exam/paper/job.vue
index 7f1db29..98b0fe8 100644
--- a/src/views/exam/paper/job.vue
+++ b/src/views/exam/paper/job.vue
@@ -23,13 +23,13 @@
             <el-card class="exampaper-item-box" v-if="titleItem.questionItems.length!==0">
               <el-form-item :key="questionItem.itemOrder" class="exam-question-item" label-width="0%"
                             v-for="questionItem in titleItem.questionItems" :id="'question-'+ questionItem.itemOrder">
-                <QuestionJobEdit @callNextSubject="callNext" :qType="questionItem.questionType" :question="questionItem"
+                <QuestionJobEdit @callSelected="callSelected" @callNextSubject="callNext" :qType="questionItem.questionType" :question="questionItem"
                               :answer="answer.answerItems[questionItem.itemOrder-1]"  :isReadOnly="autoNext"/>
               </el-form-item>
             </el-card>
           </el-row>
           <el-row class="do-align-center" v-if="order < form.titleItems.length - 1">
-            <el-button @click="preSubject" type="warning" v-if ="preDisable" round>{{$t('lastQuestion')}}</el-button>
+            <el-button @click="preSubject" type="warning" v-if ="preDisable" :disabled="preDisable2" round>{{$t('lastQuestion')}}</el-button>
             <el-button @click="nextSubject" type="primary" v-if ="nextDisable" round>{{$t('nextQuestion')}}</el-button>
           </el-row>
           <el-row class="do-align-center" v-else>
@@ -77,7 +77,6 @@
         titleItems: null,
         answerItems: [],
         verifyStatus: 2,
-        finish: 0,
         questionOrder: []
       },
       timer: null,
@@ -93,11 +92,13 @@
       submitDisable: false,
       doTime: 0,
       preDisable: false,
+      preDisable2: false,
       nextDisable: false,
       autoNext: true,
       isCallTain: false, // 鏄惁瑕佽皟鐢ㄦ嘲鍥藉洟闃熸帴鍙�
       isLangKaiStyle: false,
-      totalTitleNum: 0
+      totalTitleNum: 0,
+      selectedCount: 0
     }
   },
   created () {
@@ -229,6 +230,7 @@
     },
     nextSubject: function () {
       let _this = this
+      _this.preDisable2 = false
       // 璁剧疆涓婁竴棰樼粨鏉熸椂闂�
       _this.form.titleItems[_this.order].endTime = _this.formatDate(new Date(), 'yyyy-MM-dd hh:mm:ss')
       _this.isShowGuide(false)
@@ -294,11 +296,26 @@
           }
         })
       }
+      // JAQ鎶ュ憡鏈�鍚庡ぇ棰樺畬鎴� 鍚敤鎻愪氦鎸夐挳
+      let isCompleted1 = _this.answer.answerItems[_this.answer.answerItems.length - 2].completed;
+      let isCompleted2 = _this.answer.answerItems[_this.answer.answerItems.length - 1].completed;
+      if (isCompleted1 && isCompleted2) {
+        this.submitDisable = false
+      }
+
       if (jumpNextFlag) {
         _this.nextSubject()
-        this.submitDisable = false
-      } else {
-        this.submitDisable = true
+      }
+    },
+    // 瑙﹀彂閫変腑閫夐」
+    callSelected () {
+      let _this = this
+      if (!_this.preDisable) {
+        return
+      }
+      _this.selectedCount += 1
+      if (_this.selectedCount % 2 === 0) {
+        _this.preDisable2 = true
       }
     },
     submitForm () {
@@ -310,7 +327,9 @@
       for (let i = 0; i < _this.answer.answerItems.length; i++) {
         if (_this.answer.answerItems[i].content === null) {
           unFinish = true
-          _this.answer.finish = 0
+          // 鏈夋湭瀹屾垚鐨勭瓟棰樺簲璇ユ槸 2绛旈涓�
+          // 涔嬪墠鏄�0鏈鐞�
+          _this.answer.finish = 2
         }
       }
       if (unFinish) {
@@ -348,7 +367,7 @@
       let answerSubmit = _this.getSubmitAnswerValue()
       examPaperAnswerApi.answerSubmit(answerSubmit, _this.memberToken).then(re => {
         if (re.code === 1) {
-          _this.$router.push({ path: '/exam/finish', query: { name: _this.form.name, content: mess } })
+          _this.$router.push({ path: '/exam/finish', query: { name: _this.form.name, content: mess, tokenId: _this.memberToken } })
         } else {
           _this.$message.error(re.message + '/exam/finish')
         }

--
Gitblit v1.9.1