[测评系统]--前端(用户答题页面)
yj
2024-07-19 5e4bed2d67b26eeb7eab4d176bfabe3f527836e4
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,18 +92,20 @@
      submitDisable: false,
      doTime: 0,
      preDisable: false,
      preDisable2: false,
      nextDisable: false,
      autoNext: true,
      isCallTain: false, // 是否要调用泰国团队接口
      isLangKaiStyle: false,
      totalTitleNum: 0
      totalTitleNum: 0,
      selectedCount: 0
    }
  },
  created () {
    let _this = this
    // 多语言
    _this.setLangFlag(false)
    _this.form = this.$route.query.formDo
    _this.form = undefined
    if (_this.form !== {} && _this.form !== undefined) {
      _this.formLoading = true
      _this.remainTime = _this.form.suggestTime * 60
@@ -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)
@@ -293,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 () {
@@ -309,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) {
@@ -347,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')
        }