From de761e39a25368312999fa7a0be13a7f9cff9e34 Mon Sep 17 00:00:00 2001
From: linzhijie <1003392067@qq.com>
Date: 星期四, 13 四月 2023 17:39:30 +0800
Subject: [PATCH] 新增CIAQ模板

---
 src/views/exam/paper/career_interests.vue |  547 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/router.js                             |   36 ++-
 2 files changed, 571 insertions(+), 12 deletions(-)

diff --git a/src/router.js b/src/router.js
index 7d65a90..7e01cfd 100644
--- a/src/router.js
+++ b/src/router.js
@@ -119,18 +119,30 @@
         }
       ]
     },
-		{
-		  path: '/exam',
-		  component: Layout,
-		  children: [
-		    {
-		      path: 'values',
-		      component: () => import('@/views/exam/paper/values'),
-		      name: 'ExamPaperValues',
-		      meta: { title: 'values' }
-		    }
-		  ]
-		}
+    {
+      path: '/exam',
+      component: Layout,
+      children: [
+        {
+          path: 'values',
+          component: () => import('@/views/exam/paper/values'),
+          name: 'ExamPaperValues',
+          meta: { title: 'values' }
+        }
+      ]
+    },
+    {
+      path: '/exam',
+      component: Layout,
+      children: [
+        {
+          path: 'career_interests',
+          component: () => import('@/views/exam/paper/career_interests'),
+          name: 'ExamPaperCareerInterests',
+          meta: { title: 'career_interests' }
+        }
+      ]
+    }
   ]
 })
 
diff --git a/src/views/exam/paper/career_interests.vue b/src/views/exam/paper/career_interests.vue
new file mode 100644
index 0000000..56970ce
--- /dev/null
+++ b/src/views/exam/paper/career_interests.vue
@@ -0,0 +1,547 @@
+<template>
+  <div>
+    <el-container  class="app-item-contain">
+      <el-header class="align-center" v-if="guide">
+        <h1></h1>
+      </el-header>
+      <el-main style="padding-top: 3%;">
+        <div v-html="guideDescirption" v-if="guide" :style="ismobile?'padding-top: 2%;':'padding-top: 2%;margin: 0 auto;width:66%'"></div>
+        <el-row class="do-align-center" v-if="guide">
+          <el-button @click="startDo" type="primary" :disable="startDoDisable">{{$t('start')}}</el-button>
+        </el-row >
+        <el-form :model="form" ref="form" v-loading="formLoading" label-width="100%" v-else>
+          <el-row :key="index"  v-for="(titleItem,index) in titleItems">
+            <div class="q-content">{{titleItem.description}}</div>
+            <el-card class="exampaper-item-box" v-if="titleItem.questionItems.length!==0"  style="border:2px solid #2b90ff;">
+              <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"
+                              :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-row>
+          <el-row class="do-align-center" v-else>
+            <el-button @click="preSubject" type="warning" v-if ="preDisable" round>{{$t('lastQuestion')}}</el-button>
+            <el-button @click="submitForm" type="primary" :disabled="submitDisable" round>{{$t('submission')}}</el-button>
+          </el-row>
+            </el-card>
+          </el-row>
+        </el-form>
+
+      </el-main>
+    </el-container>
+    <el-row class="do-exam-title footer">
+      <el-col :span="24">
+        <!--<el-popover placement="top" title="棰樼洰鍒楄〃" width="200" trigger="click" ref="popovertag">-->
+          <!--<el-tag type="success" slot="reference">棰樼洰</el-tag>-->
+          <!--<span :key="item.itemOrder" v-for="(item) in answer.answerItems">-->
+             <!--<el-tag :type="questionCompleted(item.completed)" class="do-exam-title-tag"-->
+                     <!--&gt;{{item.itemOrder}}</el-tag>-->
+        <!--</span>-->
+        <!--</el-popover>-->
+        <span class="do-exam-time">
+          <!--<label>{{$t('remainingTime')}}</label>-->
+          <!--<label>{{formatSecondsG(remainTime,$t('hour'),$t('min'),$t('second'))}}</label>-->
+        </span>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, mapGetters, mapMutations } from 'vuex'
+import { formatSeconds, formatSecondsG, formatDate } from '@/utils'
+import QuestionEdit from '../components/QuestionEdit'
+import examPaperApi from '@/api/examPaper'
+import examPaperAnswerApi from '@/api/examPaperAnswer'
+import demographyApi from '@/api/demography'
+
+export default {
+  name: 'personality',
+  components: { QuestionEdit },
+  data () {
+    return {
+      form: {},
+      formLoading: false,
+      answer: {
+        questionId: null,
+        doTime: 0,
+        answerItems: [],
+        verifyStatus: 2
+      },
+      timer: null,
+      problemLength: 0,
+      titleItemsLength: 0,
+      remainTime: 0,
+      titleItemName: '', // 鑰冭瘯绗簩鏍囬
+      itemOrder: '', // 棰樼洰鐨勫簭鍙�
+      questionItem: {}, // 棰樼洰
+      titleItems: [],
+      order: 0,
+      guide: false,
+      answered: [],
+      submitDisable: true,
+      doTime: 0,
+      preDisable: false,
+      nextDisable: false,
+      partOrder: 0,
+      parts: [],
+      guideTitle: '',
+      guideDescirption: '',
+      isCallTain: '',
+      memberName: '',
+      itemSize: '', // 棰樼洰闀垮害
+      startDoDisable: true,
+      ismobile: false
+    }
+  },
+  created: function () {
+    let _this = this
+    _this.ismobile = /ipad|iphone|midp|rv:1.2.3.4|ucweb|android|windows ce|windows mobile/.test(navigator.userAgent.toLowerCase())
+    // 澶氳瑷�
+    _this.setLangFlag(false)
+    _this.form = this.$route.query.formDo
+    if (_this.form !== {} && _this.form !== undefined) {
+      _this.formLoading = true
+      _this.remainTime = _this.form.suggestTime * 60
+      _this.problemLength = _this.form.titleItems[0].questionItems.length - 1
+      _this.titleItemsLength = _this.form.titleItems.length
+      _this.titleItems.push(_this.form.titleItems[0])
+      _this.questionItem = _this.form.titleItems[0].questionItems[0]
+      _this.partOrder = _this.questionItem.partOrder
+      _this.itemOrder = _this.form.titleItems[0].questionItems[0].itemOrder
+      _this.timeReduce()
+      _this.initAnswer()
+      _this.formLoading = false
+      _this.memberName = _this.form.memberName
+      _this.itemSize = _this.form.titleItems[0].questionItems.length
+    } else {
+      _this.formLoading = true
+      // 闃叉鍒锋柊鎴愪簡涓嶅悓鐨勮瑷�
+      demographyApi.queryDemographyParamInfo(_this.memberToken).then(
+        re => {
+          if (re.response[0].langType !== null || re.response[0].langType.trim() !== '') {
+            _this.setLangType(re.response[0].langType)
+          }
+          // 鍔犺浇棰樼洰
+          examPaperApi.select(_this.memberToken, _this.langType).then(re => {
+            _this.form = re.response
+            _this.remainTime = re.response.suggestTime * 60
+            _this.problemLength = _this.form.titleItems[0].questionItems.length - 1
+            _this.titleItemsLength = _this.form.titleItems.length
+            _this.titleItems.push(_this.form.titleItems[0])
+            _this.itemOrder = _this.form.titleItems[0].questionItems[_this.order].itemOrder
+            _this.itemSize = _this.form.titleItems[0].questionItems.length
+            _this.questionItem = _this.form.titleItems[0].questionItems[_this.order]
+            _this.partOrder = _this.questionItem.partOrder
+            _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
+                  _this.answer.answerItems[parseInt(it.itemOrder) - 1].completed = true
+                })
+              }
+
+              for (let i = 0; i < _this.answer.answerItems.length; i++) {
+                if (!_this.answer.answerItems[i].completed || _this.answer.answerItems[i].content === null || _this.answer.answerItems[i].content === '') {
+                  _this.questionItem = _this.form.titleItems[0].questionItems[i]
+                  _this.partOrder = _this.questionItem.partOrder
+                  _this.itemOrder = _this.form.titleItems[0].questionItems[i].itemOrder
+                  _this.order = i
+                  _this.preDisable = true
+                  break
+                }
+
+                if (_this.isForFinish(i)) {
+                  _this.$router.push({ path: '/exam/finish', query: { name: '', content: _this.$t('finishMsg'), tokenId: _this.memberToken } })
+                }
+              }
+              // 濡傛灉涓婁竴棰樹笉鏄湰娈碉紝鍒欎笉鑳借繑鍥炰笂涓�娈�
+              if (this.isDiffPartOrder()) {
+                _this.preDisable = false
+              }
+
+              if (this.isDiffPartOrder()) {
+                _this.showNextGuide(re.response.signalObject, false)
+              }
+            }).catch(e => {
+              // _this.$message.error('棰樼洰鏌ヨ寮傚父')
+            })
+          }).catch(e => {
+            _this.$message.info(_this.$t('noquestionMsg'))
+          })
+        }
+      ).catch(e => {
+      })
+    }
+  },
+  mounted () {
+  },
+  beforeDestroy () {
+    window.clearInterval(this.timer)
+  },
+  methods: {
+    formatSeconds (theTime) {
+      return formatSeconds(theTime)
+    },
+    formatSecondsG (theTime, hour, min, second) {
+      return formatSecondsG(theTime, hour, min, second)
+    },
+    formatDate (time, formatsrc) {
+      return formatDate(time, formatsrc)
+    },
+    timeReduce: function () {
+      let _this = this
+      _this.answer.doTime += _this.doTime
+      this.timer = setInterval(function () {
+        if (_this.answer.doTime <= 0) {
+          _this.answer.doTime = 0
+        }
+        ++_this.answer.doTime
+      }, 1000)
+    },
+    questionCompleted (completed) {
+      return this.enumFormat(this.doCompletedTag, completed)
+    },
+    goAnchor (selector) {
+      let _this = this
+      let num = parseInt(selector.substr(10)) - 1
+      this.itemOrder = _this.form.titleItems[0].questionItems[num].itemOrder
+      this.questionItem = _this.form.titleItems[0].questionItems[num]
+      _this.order = num
+      setTimeout(function () {
+        _this.$el.querySelector(selector).scrollIntoView({ behavior: 'instant', block: 'center', inline: 'nearest' })
+      }, 200)
+      _this.$refs['popovertag'].doClose()
+    },
+    initAnswer () {
+      this.answer.id = this.form.id
+      this.answer.questionOrder = this.form.questionOrder
+      let titleItemArray = this.form.titleItems
+      for (let tIndex in titleItemArray) {
+        let questionArray = titleItemArray[tIndex].questionItems
+        for (let qIndex in questionArray) {
+          let question = questionArray[qIndex]
+          this.answer.answerItems.push({ title: question.title, permanentId: question.permanentId, questionId: question.id, content: null, contentArray: [], completed: false, itemOrder: question.itemOrder, lastContent: null, startTime: question.startTime, endTime: question.endTime, partOrder: question.partOrder, questionReport: {}, readOnly: false })
+        }
+      }
+
+      // 鍒濆鍖栧紑濮嬫椂闂达紝璁剧疆绗竴涓椂闂�
+      for (let i = 0; i < this.answer.answerItems.length; i++) {
+        if (this.answer.answerItems[i].startTime == null || this.answer.answerItems[i].startTime.trim() === '') {
+          this.answer.answerItems[i].startTime = this.formatDate(new Date(), 'yyyy-MM-dd hh:mm:ss')
+          break
+        }
+      }
+    },
+    isContentNotEmpty: function (num) {
+      let _this = this
+      return _this.answer.answerItems[num].content !== '' && _this.answer.answerItems[num].content !== null && _this.answer.answerItems[num].content.trim() !== ''
+    },
+    nextQuestion: function (nowPartOrder) {
+      let _this = this
+      let num = ++_this.order
+      _this.itemOrder = _this.form.titleItems[0].questionItems[num].itemOrder
+      // 璺冲埌娌℃湁绛旂殑棰樼洰
+      while (_this.isContentNotEmpty(num) && num !== _this.answer.answerItems.length - 1) {
+        num = ++_this.order
+        this.getEmptySubjct(num)
+      }
+      _this.questionItem = _this.form.titleItems[0].questionItems[num]
+      _this.partOrder = _this.questionItem.partOrder
+      if (_this.partOrder !== nowPartOrder) {
+        _this.isShowGuide(true)
+      }
+      _this.preDisable = true
+      _this.nextDisable = false
+      _this.answer.answerItems[_this.order].startTime = _this.formatDate(new Date(), 'yyyy-MM-dd hh:mm:ss')
+
+      // 濡傛灉鏄渶鍚庝竴涓苟涓斿凡缁忓畬鎴愪簡锛屽氨鎻愪氦
+      if (num === _this.answer.answerItems.length - 1 && _this.isForFinish(num)) {
+        this.submitForm()
+      }
+    },
+    nextQuestionOrder: function (nowPartOrder) {
+      if (this.order < this.problemLength) {
+        this.nextQuestion(nowPartOrder)
+      } else {
+        this.submitDisable = false
+      }
+    },
+    isNextShowGuide: function (nowPartOrder) {
+      let _this = this
+      // 鏈鐨勬瘡涓�棰橀兘鎵撳畬瑕佹寚瀵艰
+      let showGuideFlag = true
+      for (let i = 0; i < _this.answer.answerItems.length; i++) {
+        if (_this.form.titleItems[0].questionItems[i].partOrder === nowPartOrder && !_this.isContentNotEmpty(i)) {
+          showGuideFlag = false
+        }
+      }
+      return showGuideFlag
+    },
+    catThaiSubmit: function (answerSubmit) {
+      answerSubmit.isCallTain = 'CallThai'
+    },
+    getEmptySubjct: function (order) {
+      let _this = this
+      _this.itemOrder = _this.form.titleItems[0].questionItems[order].itemOrder
+      _this.questionItem = _this.form.titleItems[0].questionItems[order]
+      _this.partOrder = _this.questionItem.partOrder
+      _this.preDisable = false
+      _this.answer.answerItems[order].readOnly = false
+      // _this.answer.answerItems[order].content = ''
+      // _this.answer.answerItems[order].completed = false
+      _this.order = order
+    },
+    isNotEmpty (obj) {
+      return obj !== null && obj !== undefined && obj !== ''
+    },
+    isEmpty (obj) {
+      return !this.isNotEmpty(obj)
+    },
+    nextSubject: function () {
+      let _this = this
+      _this.isShowGuide(false)
+      let nowPartOrder = _this.partOrder
+      // 璁剧疆涓婁竴棰樼殑缁撴潫鏃堕棿
+      this.answer.answerItems[_this.order].endTime = _this.formatDate(new Date(), 'yyyy-MM-dd hh:mm:ss')
+      // 寰幆娌℃湁绛旂殑棰樼洰,杩欓噷鍚屾椂鍐冲畾浜嗛棶绛旈鎵撳畬鍙互杩涘叆涓嬩竴棰�
+      for (let i = 0; i < _this.order; i++) {
+        if (!this.isContentNotEmpty(i)) {
+          // 杩斿洖涔嬪墠娌″仛鐨勯偅閬撻
+          this.getEmptySubjct(i)
+          return
+        }
+        // 濡傛灉寰幆鍒版渶鍚庝竴棰樺氨鎻愪氦
+        if (_this.isForFinish(i)) {
+          _this.submitForm()
+          return
+        }
+      }
+
+      // 鍏ㄩ儴绛斿畬浜嗗氨鍙互鎻愪氦浜�,浣嗘槸濡傛灉鏄渶鍚庝竴棰樺氨鑷繁鎻愪氦
+      for (let i = 0; i < _this.answer.answerItems.length; i++) {
+        if (!_this.isContentNotEmpty(i)) {
+          break
+        }
+        if (i === _this.answer.answerItems.length - 1 && _this.order !== _this.answer.answerItems.length - 1) {
+          _this.submitForm()
+          return
+        }
+      }
+      this.answer.answerItems[_this.order].readOnly = true
+      let answerSubmit = _this.getSubmitAnswerValue(nowPartOrder)
+      // 宸茬粡绛斿埌浜嗘渶鍚庝竴棰樹簡,涓嶇敤鑷姩璺冲埌涓嬩竴棰�
+      if (this.order + 1 > this.problemLength) {
+        this.submitDisable = false
+        return
+      }
+      examPaperAnswerApi.answerSubmit(answerSubmit, _this.memberToken).then(re => {
+        if (re.code !== 1) {
+          _this.$message.error(re.message)
+          throw (re.message)
+        }
+
+        // 灞曠ず鎸囧璇�
+        if (this.isNextShowGuide(nowPartOrder)) {
+          // 灞曠ず鎸囧璇�
+          _this.showNextGuide(re.response.signalObject, true)
+        } else {
+          this.nextQuestionOrder(nowPartOrder)
+        }
+      }).catch(e => {
+        _this.reloadPage(e)
+      })
+    },
+    getSubmitAnswerValue (nowPartOrder) {
+      let _this = this
+      let answerSubmit = JSON.parse(JSON.stringify(_this.answer))
+      answerSubmit.answerItems.forEach(answerItem => {
+        // 棰樼洰鎶ヨ〃锛屽鏋滄病鏈夌粨鏉熸椂闂达紝寮�濮嬫椂闂翠篃涓嶉渶瑕�
+        if (answerItem.endTime == null || answerItem.endTime === '') {
+          answerItem.startTime = ''
+        }
+        answerItem.questionReport = { questionOrder: answerItem.questionId, questionTitle: answerItem.title, permanentId: answerItem.permanentId, startTime: answerItem.startTime, endTime: answerItem.endTime, langType: _this.langType, partOrder: answerItem.partOrder, answer: answerItem.content }
+      })
+      answerSubmit.langType = _this.langType
+      answerSubmit.isCallTain = _this.isCallTain
+      answerSubmit.partOrder = nowPartOrder
+      answerSubmit.itemOrder = _this.itemOrder
+      return answerSubmit
+    },
+    preSubject () {
+      let _this = this
+      _this.isShowGuide(false)
+      if (_this.order > 0) {
+        let num = --_this.order
+        _this.itemOrder = _this.form.titleItems[0].questionItems[num].itemOrder
+        _this.questionItem = _this.form.titleItems[0].questionItems[num]
+        _this.partOrder = _this.questionItem.partOrder
+        _this.preDisable = false
+        _this.nextDisable = true
+        _this.answer.answerItems[_this.order].readOnly = false
+      }
+    },
+    submitForm () {
+      let _this = this
+      _this.submitDisable = true
+      window.clearInterval(_this.timer)
+      _this.formLoading = true
+      let unFinish = false
+      for (let i = 0; i < _this.answer.answerItems.length; i++) {
+        if (_this.answer.answerItems[i].content === null) {
+          unFinish = true
+          // 鏈夋湭瀹屾垚鐨勭瓟棰樺簲璇ユ槸 2绛旈涓�
+          // 涔嬪墠鏄�0鏈鐞�
+          _this.answer.finish = 2
+        }
+      }
+      if (unFinish) {
+        // 鐩存帴鍋滅暀鍦ㄦ病鏈夋墦瀹岀殑棰樼洰
+        for (let i = 0; i < _this.answer.answerItems.length; i++) {
+          if (!_this.isContentNotEmpty(i)) {
+            _this.questionItem = _this.form.titleItems[0].questionItems[i]
+            _this.partOrder = _this.questionItem.partOrder
+            _this.itemOrder = _this.form.titleItems[0].questionItems[i].itemOrder
+            _this.order = i
+            _this.preDisable = true
+            break
+          }
+          _this.formLoading = false
+          _this.submitDisable = false
+        }
+      } else {
+        _this.answer.verifyStatus = 1
+        _this.answer.finish = 1
+        _this.submitAnswer(_this.$t('finishPersonalityInfo'))
+      }
+    },
+    startDo: function () {
+      let _this = this
+      _this.guide = false
+      _this.isCallTain = ''
+    },
+    submitAnswer: function (mess) {
+      let _this = this
+      this.answer.answerItems[_this.order].endTime = this.formatDate(new Date(), 'yyyy-MM-dd hh:mm:ss')
+      // 鎻愪氦涔嬪墠鎻愪氦鏈�鍚庝竴娈�
+      let answerSubmit = _this.getSubmitAnswerValue(_this.partOrder)
+      _this.catThaiSubmit(answerSubmit)
+      let loading = _this.$loading({
+        lock: false,
+        text: _this.$t('uploadInfo'),
+        spinner: 'el-icon-loading'
+      })
+      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, tokenId: _this.memberToken } })
+        } else {
+          _this.$message.error(re.message + '/exam/finish')
+        }
+        _this.formLoading = false
+      }).catch(e => {
+        _this.reloadPage(e)
+        loading.close()
+      })
+    },
+    showNextGuide: function (signalObject, nextQuestion) {
+      let _this = this
+      _this.guideDescirption = signalObject.signalDescription
+      if (_this.guideDescirption !== null && _this.guideDescirption !== undefined && _this.guideDescirption !== '') {
+        _this.isShowGuide(true)
+        _this.preDisable = false
+      } else {
+        throw (signalObject.message)
+      }
+      if (Object.keys(_this.guideDescirption).length === 0) {
+        _this.isShowGuide(false)
+        _this.preDisable = false
+      }
+      _this.startDoDisable = false
+      if (!nextQuestion) {
+        return
+      }
+      _this.nextQuestionOrder()
+    },
+    isNull: function (obj) {
+      return obj === null || obj === undefined
+    },
+    isShowGuide (flag) {
+      let _this = this
+      _this.guide = flag
+      // _this.isCallTain = flag ? 'callTain' : ''
+    },
+    reloadPage (e) {
+      let _this = this
+      let mes = ''
+      if (e.message !== null && e.message !== undefined && e.message.indexOf('timeout') !== -1) {
+        mes = _this.$t('submitTimeout') + ',' + 'order:' + _this.order + ',' + e.message// 鎻愪氦鍚庡彴瓒呮椂
+      } else {
+        mes = JSON.stringify(e) + ',' + 'order:' + _this.order + ',' + e.message
+      }
+      // 璋冭瘯鐢�
+      // _this.$router.push({ path: '/exam/exception', query: { name: _this.form.name, content: _this.$t('submitExceptionInfo') + '<br>' + mes } })
+      _this.$router.push({ path: '/exam/exception', query: { name: _this.form.name, content: _this.$t('submitExceptionInfo') } })
+      _this.formLoading = false
+      _this.submitDisable = false
+    },
+    isForFinish (i) {
+      return i === this.answer.answerItems.length - 1 && (this.answer.answerItems[i].content !== null && this.answer.answerItems[i].content !== '')
+    },
+    isDiffPartOrder: function () {
+      let _this = this
+      return _this.form.titleItems[0].questionItems[_this.order].partOrder !== _this.form.titleItems[0].questionItems[_this.order - 1].partOrder
+    },
+    ...mapMutations('user', ['setLangType']),
+    ...mapMutations('user', ['setLangFlag'])
+  },
+  computed: {
+    ...mapGetters('enumItem', ['enumFormat']),
+    ...mapState('enumItem', { doCompletedTag: state => state.exam.question.answer.doCompletedTag }),
+    ...mapState('user', { memberToken: state => state.memberToken }),
+    ...mapState('user', { langType: state => state.langType }),
+    ...mapState('user', { langFlag: state => state.langFlag }),
+    ...mapState('exam', { doUrl: state => state.doUrl })
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+  .align-center {
+    text-align: center;
+  }
+
+  .exam-question-item {
+    padding: 10px;
+    font-size: large;
+
+    .el-form-item__label {
+      font-size: large !important;
+    }
+  }
+
+  .question-title-padding {
+    padding-left: 25px;
+    padding-right: 25px;
+  }
+  .footer {
+    position: absolute;
+    position: fixed;
+    z-index: 1000;
+    bottom: 0px;
+  }
+</style>

--
Gitblit v1.9.1