[测评系统]--前端(用户答题页面)
阳洁
2024-02-29 36ee391002b46deca205c3c9cdf63de5f8a0861e
src/views/exam/paper/personality.vue
@@ -142,12 +142,10 @@
            _this.initAnswer()
            _this.formLoading = false
            _this.memberName = _this.form.memberName
            examPaperApi.selectTokenId(_this.memberToken).then(re => {
              _this.answered = re.response.examItemOrderAndContentList
              _this.doTime = re.response.doTime
              _this.timeReduce()
              if (_this.answered !== null) {
                _this.answered.forEach(it => {
                  _this.answer.answerItems[parseInt(it.itemOrder) - 1].content = it.content
@@ -166,7 +164,7 @@
                }
                if (_this.isForFinish(i)) {
                  _this.$router.push({ path: '/exam/finish', query: { name: '', content: _this.$t('finishMsg') } })
                  _this.$router.push({ path: '/exam/finish', query: { name: '', content: _this.$t('finishMsg'), tokenId: _this.memberToken } })
                }
              }
              // 如果上一题不是本段,则不能返回上一段
@@ -187,11 +185,26 @@
      ).catch(e => {
      })
    }
  },
  mounted () {
  },
  beforeDestroy () {
    window.clearInterval(this.timer)
  },
  watch: {
    guideDescirption: function (newVal, oldVal) {
      // 处理指导语,更换变量
      if (newVal) {
        if (this.form) {
          let productType = this.form.productType
          if (productType === 'API_Fan') {
            newVal = newVal.replace('%%company%%', this.form.reportCompany)
            this.guideDescirption = newVal
          }
        }
      }
    }
  },
  methods: {
    formatSeconds (theTime) {
@@ -402,6 +415,13 @@
      let _this = this
      _this.isShowGuide(false)
      if (_this.order > 0) {
        // 清空本题的选择
        _this.answer.answerItems[_this.order].content = null
        _this.answer.answerItems[_this.order].completed = false
        _this.answer.answerItems[_this.order].questionReport = null
        _this.answer.answerItems[_this.order].readOnly = false
        // 设置回到上一题
        let num = --_this.order
        _this.itemOrder = _this.form.titleItems[0].questionItems[num].itemOrder
        _this.questionItem = _this.form.titleItems[0].questionItems[num]
@@ -420,7 +440,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) {
@@ -440,7 +462,16 @@
      } else {
        _this.answer.verifyStatus = 1
        _this.answer.finish = 1
        _this.submitAnswer(_this.$t('finishPersonalityInfo'))
        if (this.form) {
          let productType = this.form.productType
          if (productType === 'API_Fan') {
            _this.submitAnswer(_this.$t('finishPersonalityInfo_apifan'))
          } else {
            _this.submitAnswer(_this.$t('finishPersonalityInfo'))
          }
        } else {
          _this.submitAnswer(_this.$t('finishPersonalityInfo'))
        }
      }
    },
    startDo: function () {
@@ -462,7 +493,18 @@
      examPaperAnswerApi.answerSubmit(answerSubmit, _this.memberToken).then(re => {
        loading.close()
        if (re.code === 1) {
          _this.$router.push({ path: '/exam/finish', query: { name: _this.form.name, content: mess } })
          // 特殊处理 LAQ测试包 MAQ+CAQ
          if (_this.form.name.indexOf('LAQ') !== -1) {
            console.log('答完题,看看要不要去CAQ1')
            examPaperApi.select(_this.memberToken, _this.langType).then(re => {
              _this.form = re.response
              _this.$router.push({ path: '/guide/index', query: { formDo: _this.form } })
            }).catch(e => {
              _this.$message.error(_this.$t('noquestionMsg'))
            })
          } else {
            _this.$router.push({ path: '/exam/finish', query: { name: _this.form.name, content: mess, tokenId: _this.memberToken } })
          }
        } else {
          _this.$message.error(re.message + '/exam/finish')
        }