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 | 20 ++++++++-
src/views/exam/components/QuestionEdit.vue | 1
src/views/exam/paper/career_interests.vue | 20 ++++++++-
src/views/exam/paper/personality.vue | 21 +++++++++-
src/views/exam/components/QuestionJobEdit.vue | 1
5 files changed, 54 insertions(+), 9 deletions(-)
diff --git a/src/views/exam/components/QuestionEdit.vue b/src/views/exam/components/QuestionEdit.vue
index c9ac768..cafdbec 100644
--- a/src/views/exam/components/QuestionEdit.vue
+++ b/src/views/exam/components/QuestionEdit.vue
@@ -93,6 +93,7 @@
if (this.answer.content === null || this.answer.content.trim() === '') {
return
}
+ _this.$emit('callSelected')
setTimeout(function () {
_this.$emit('callNextSubject')
}, 500)
diff --git a/src/views/exam/components/QuestionJobEdit.vue b/src/views/exam/components/QuestionJobEdit.vue
index bc856bd..b2b5abb 100644
--- a/src/views/exam/components/QuestionJobEdit.vue
+++ b/src/views/exam/components/QuestionJobEdit.vue
@@ -101,6 +101,7 @@
if (this.answer.content === null || this.answer.content.trim() === '') {
return
}
+ _this.$emit('callSelected')
setTimeout(function () {
_this.$emit('callNextSubject')
}, 500)
diff --git a/src/views/exam/paper/career_interests.vue b/src/views/exam/paper/career_interests.vue
index 0051930..3a79cce 100644
--- a/src/views/exam/paper/career_interests.vue
+++ b/src/views/exam/paper/career_interests.vue
@@ -16,15 +16,15 @@
<div class="align-center"><span style="font-size: small; float: left">{{$t('examinee')}}{{memberName}}</span><span style="margin-top: 0px;padding-right: 11%">鈼弡{form.name}}鈼�</span></div>
<hr style="border : 1px dashed #b3d8ff;" />
<el-form-item :key="itemOrder" label-width="1px">
- <QuestionEdit @callNextSubject="nextSubject" :qType="questionItem.questionType" :question="questionItem"
+ <QuestionEdit @callSelected="callSelected" @callNextSubject="nextSubject" :qType="questionItem.questionType" :question="questionItem"
:answer="answer.answerItems[questionItem.itemOrder-1]" :qLabel="questionItem.serialNumber+'/'+questionItem.serialNumberCount"/>
</el-form-item>
<hr style="border : 0.5px dashed #b3d8ff;" />
<div style="color: red;font-size: smaller" v-if="partOrder == 1">{{$t('pleaseAnswerCarefullyCiaq')}}</div>
<div style="color: red;font-size: smaller" v-if="partOrder != 1">{{$t('pleaseAnswerCarefully')}}</div>
<el-row class="do-align-center" v-if="order < problemLength">
- <el-button @click="preSubject" type="warning" v-if ="preDisable" round>{{$t('lastQuestion')}}</el-button>
- <el-button @click="nextSubject" type="primary" v-if ="nextDisable" round>{{$t('nextQuestion')}}</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" :disabled="nextDisable2" round>{{$t('nextQuestion')}}</el-button>
</el-row>
<el-row class="do-align-center" v-else>
<el-button @click="preSubject" type="warning" v-if ="preDisable" round>{{$t('lastQuestion')}}</el-button>
@@ -88,7 +88,9 @@
submitDisable: true,
doTime: 0,
preDisable: false,
+ preDisable2: false,
nextDisable: false,
+ nextDisable2: false,
partOrder: 0,
parts: [],
guideTitle: '',
@@ -363,6 +365,8 @@
},
nextSubject: function () {
let _this = this
+ _this.preDisable2 = true
+ _this.nextDisable2 = true
_this.isShowGuide(false)
let nowPartOrder = _this.partOrder
// 璁剧疆涓婁竴棰樼殑缁撴潫鏃堕棿
@@ -416,9 +420,18 @@
} else {
this.nextQuestionOrder(nowPartOrder)
}
+ _this.preDisable2 = false
+ _this.nextDisable2 = false
}).catch(e => {
_this.reloadPage(e)
+ _this.preDisable2 = false
+ _this.nextDisable2 = false
})
+ },
+ callSelected: function () {
+ let _this = this
+ _this.preDisable2 = true
+ _this.nextDisable2 = true
},
getSubmitAnswerValue (nowPartOrder) {
let _this = this
@@ -439,6 +452,7 @@
},
preSubject () {
let _this = this
+ _this.nextDisable2 = false
_this.isShowGuide(false)
if (_this.order > 0) {
// 娓呯┖鏈鐨勯�夋嫨
diff --git a/src/views/exam/paper/job.vue b/src/views/exam/paper/job.vue
index 13d0f9b..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>
@@ -92,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 () {
@@ -228,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)
@@ -304,6 +307,17 @@
_this.nextSubject()
}
},
+ // 瑙﹀彂閫変腑閫夐」
+ callSelected () {
+ let _this = this
+ if (!_this.preDisable) {
+ return
+ }
+ _this.selectedCount += 1
+ if (_this.selectedCount % 2 === 0) {
+ _this.preDisable2 = true
+ }
+ },
submitForm () {
let _this = this
_this.submitDisable = true
diff --git a/src/views/exam/paper/personality.vue b/src/views/exam/paper/personality.vue
index 4422e2a..9c28327 100644
--- a/src/views/exam/paper/personality.vue
+++ b/src/views/exam/paper/personality.vue
@@ -16,14 +16,14 @@
<div class="align-center"><span style="font-size: small; float: left">{{$t('examinee')}}{{memberName}}</span><span style="margin-top: 0px;padding-right: 11%">鈼弡{form.name}}鈼�</span></div>
<hr style="border : 1px dashed #b3d8ff;" />
<el-form-item :key="itemOrder" label-width="1px">
- <QuestionEdit @callNextSubject="nextSubject" :qType="questionItem.questionType" :question="questionItem"
+ <QuestionEdit @callSelected="callSelected" @callNextSubject="nextSubject" :qType="questionItem.questionType" :question="questionItem"
:answer="answer.answerItems[questionItem.itemOrder-1]" :qLabel="itemOrder+'/'+itemSize"/>
</el-form-item>
<hr style="border : 0.5px dashed #b3d8ff;" />
<div style="color: red;font-size: smaller">{{$t('pleaseAnswerCarefully')}}</div>
<el-row class="do-align-center" v-if="order < problemLength">
- <el-button @click="preSubject" type="warning" v-if ="preDisable" round>{{$t('lastQuestion')}}</el-button>
- <el-button @click="nextSubject" type="primary" v-if ="nextDisable" round>{{$t('nextQuestion')}}</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" :disabled="nextDisable2" round>{{$t('nextQuestion')}}</el-button>
</el-row>
<el-row class="do-align-center" v-else>
<el-button @click="preSubject" type="warning" v-if ="preDisable" round>{{$t('lastQuestion')}}</el-button>
@@ -88,7 +88,9 @@
submitDisable: true,
doTime: 0,
preDisable: false,
+ preDisable2: false,
nextDisable: false,
+ nextDisable2: false,
partOrder: 0,
parts: [],
guideTitle: '',
@@ -327,6 +329,8 @@
},
nextSubject: function () {
let _this = this
+ _this.preDisable2 = true
+ _this.nextDisable2 = true
_this.isShowGuide(false)
let nowPartOrder = _this.partOrder
// 璁剧疆涓婁竴棰樼殑缁撴潫鏃堕棿
@@ -357,6 +361,7 @@
}
this.answer.answerItems[_this.order].readOnly = true
let answerSubmit = _this.getSubmitAnswerValue(nowPartOrder)
+
// 宸茬粡绛斿埌浜嗘渶鍚庝竴棰樹簡,涓嶇敤鑷姩璺冲埌涓嬩竴棰�
if (this.order + 1 > this.problemLength) {
this.submitDisable = false
@@ -388,12 +393,21 @@
} else {
this.nextQuestionOrder(nowPartOrder)
}
+ _this.preDisable2 = false
+ _this.nextDisable2 = false
}).catch(e => {
if (_this.isNotEmpty(loading)) {
loading.close()
}
_this.reloadPage(e)
+ _this.preDisable2 = false
+ _this.nextDisable2 = false
})
+ },
+ callSelected: function () {
+ let _this = this
+ _this.preDisable2 = true
+ _this.nextDisable2 = true
},
getSubmitAnswerValue (nowPartOrder) {
let _this = this
@@ -413,6 +427,7 @@
},
preSubject () {
let _this = this
+ _this.nextDisable2 = false
_this.isShowGuide(false)
if (_this.order > 0) {
// 娓呯┖鏈鐨勯�夋嫨
--
Gitblit v1.9.1