From d1eecb4abff242f3f3a642e56de99dd2793adc8a Mon Sep 17 00:00:00 2001
From: 84702473 <84702473@qq.com>
Date: 星期六, 04 三月 2023 23:40:12 +0800
Subject: [PATCH] 价值观测试产品
---
src/lang/zh.js | 22
src/lang/en.js | 21
src/views/exam/paper/values.vue | 1555 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
package.json | 2
src/router.js | 14
5 files changed, 1,610 insertions(+), 4 deletions(-)
diff --git a/package.json b/package.json
index 18e8d34..3955f9c 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,7 @@
"dependencies": {
"axios": "^0.19.0",
"core-js": "^2.6.9",
- "element-ui": "^2.10.1",
+ "element-ui": "^2.14.1",
"es6-promise": "^4.2.8",
"js-cookie": "2.2.0",
"normalize.css": "8.0.1",
diff --git a/src/lang/en.js b/src/lang/en.js
index 1b3817e..7f88b40 100644
--- a/src/lang/en.js
+++ b/src/lang/en.js
@@ -53,5 +53,24 @@
finishPersonalityInfo: 'You have completed the personality quetionnaire, and the data has been successfully uploaded to the server and saved. ',
finishPersonalityDownInfo: 'You may click the red button below to download your test report.',
langWelcomeThai: '喔⑧复喔權笖喔掂笗喔笝喔`副喔氞釜喔灌箞喙�喔о箛喔氞箘喔嬥涪喙屶釜喔赤斧喔`副喔氞笚喔赤箒喔氞笟喔椸笖喔腑喔氞競喔竾',
- langOptionThai: '喔佮福喔膏笓喔侧箑喔ム阜喔竵喔犩覆喔┼覆 喙佮弗喔班竸喔ム复喔� 鈥溹笖喔赤箑喔權复喔權竵喔侧福喔曕箞喔�.'
+ langOptionThai: '喔佮福喔膏笓喔侧箑喔ム阜喔竵喔犩覆喔┼覆 喙佮弗喔班竸喔ム复喔� 鈥溹笖喔赤箑喔權复喔權竵喔侧福喔曕箞喔�.',
+ values_finishValuesInfo:'The test is over! All your option data have been uploaded to the server and saved. You can close the browser and exit the answer interface.',
+ values_nextStepTips_del_unnecessary:'Please delete redundant selections',
+ values_nextStepTips_add_enough:'Please add enough choices',
+ values_title:'Pre-Sort Your Responses',
+ values_title_description:'For each statement,click the pictures that aligns most with your view.',
+ next:'Next Step',
+ pre:'Pre Step',
+ commit:'Commit',
+ values_cur_step:'Current step',
+ values_step_tips1:'Select the most ',
+ values_step_tips2:'like me for ',
+ values_step_tips3:' pictures',
+ values_step_tips4:'did not ',
+ values_select_tips:'Select from the following figure',
+ values_select:'Select',
+ values_select_exchange:'exchange',
+ values_mostLikeMe:'Most like me ',
+ values_mostUnLikeMe:'Most unlike me',
+ values_no_select:'No picture optional'
}
diff --git a/src/lang/zh.js b/src/lang/zh.js
index 628b60f..d80093e 100644
--- a/src/lang/zh.js
+++ b/src/lang/zh.js
@@ -53,5 +53,25 @@
finishPersonalityInfo: '鎮ㄥ凡缁忓畬鎴愪簡浜烘牸娴嬭瘯闂嵎锛屾暟鎹凡缁忔垚鍔熺殑涓婁紶鑷虫湇鍔″櫒锛屽苟宸茬粡淇濆瓨濂姐��',
finishPersonalityDownInfo: '鎮ㄥ彲浠ョ偣鍑讳笅闈㈢孩鑹叉寜閽笅杞芥偍鐨勭粨鏋滄姤鍛娿��',
langWelcomeThai: '喔⑧复喔權笖喔掂笗喔笝喔`副喔氞釜喔灌箞喙�喔о箛喔氞箘喔嬥涪喙屶釜喔赤斧喔`副喔氞笚喔赤箒喔氞笟喔椸笖喔腑喔氞競喔竾',
- langOptionThai: '喔佮福喔膏笓喔侧箑喔ム阜喔竵喔犩覆喔┼覆 喙佮弗喔班竸喔ム复喔� 鈥溹笖喔赤箑喔權复喔權竵喔侧福喔曕箞喔�.'
+ langOptionThai: '喔佮福喔膏笓喔侧箑喔ム阜喔竵喔犩覆喔┼覆 喙佮弗喔班竸喔ム复喔� 鈥溹笖喔赤箑喔權复喔權竵喔侧福喔曕箞喔�.',
+ values_finishValuesInfo: '娴嬭瘯缁撴潫锛佹偍鐨勬墍鏈夐�夐」鏁版嵁宸茬粡涓婁紶鑷虫湇鍔″櫒锛屽苟宸蹭繚瀛樺ソ銆傛偍鍙互鍏抽棴娴忚鍣紝閫�鍑虹瓟棰樼晫闈€��',
+ values_nextStepTips_del_unnecessary:'璇峰垹闄ゅ浣欑殑閫夋嫨',
+ values_nextStepTips_add_enough:'璇锋坊鍔犺冻澶熺殑閫夋嫨',
+ values_title:'棰勫厛鎺掑簭鎮ㄧ殑鍥炵瓟',
+ values_title_description:'瀵逛簬姣忎釜璇彞锛屽崟鍑讳笌瑙嗗浘鏈�瀵归綈鐨勫浘鏍囥��',
+ next:'涓嬩竴姝�',
+ pre:'涓婁竴姝�',
+ commit:'鎻愪氦',
+ values_cur_step:'褰撳墠姝ラ',
+ values_step_tips1:'閫夋嫨鏈�',
+ values_step_tips2:'鍍忔垜鐨�',
+ values_step_tips3:'涓浘鐗�',
+ values_step_tips4:'涓�',
+ values_select_tips:'浠庝笅鍥句腑閫夋嫨',
+ values_select:'閫変腑',
+ values_select_exchange:'瀵硅皟',
+ values_mostLikeMe:'鏈�鍍忔垜',
+ values_mostUnLikeMe:'鏈�涓嶅儚鎴�',
+ values_no_select:'鏃犲浘鍙��'
+
}
diff --git a/src/router.js b/src/router.js
index 8e831c6..7d65a90 100644
--- a/src/router.js
+++ b/src/router.js
@@ -118,7 +118,19 @@
meta: { title: '' }
}
]
- }
+ },
+ {
+ path: '/exam',
+ component: Layout,
+ children: [
+ {
+ path: 'values',
+ component: () => import('@/views/exam/paper/values'),
+ name: 'ExamPaperValues',
+ meta: { title: 'values' }
+ }
+ ]
+ }
]
})
diff --git a/src/views/exam/paper/values.vue b/src/views/exam/paper/values.vue
new file mode 100644
index 0000000..d8da3b6
--- /dev/null
+++ b/src/views/exam/paper/values.vue
@@ -0,0 +1,1555 @@
+<template>
+ <div>
+ <el-container class="app-item-contain step1" v-if="step === 'step1'">
+ <el-header class="">
+ <h1>{{$t('values_title')}}</h1>
+ </el-header>
+ <el-main class="" style="padding-top: 3%;">
+ <div>
+ {{$t('values_title_description')}}
+ </div>
+ <div style="display: flex;justify-content: flex-start;padding: 10px 0;">
+ <el-button @click="step1_start" type="primary" v-if="!step1Start">{{$t('start')}}</el-button>
+ <el-button style="margin-top: 12px;" @click="step1_next" v-if="(step1Start && itemSize>0)">{{$t('next')}}</el-button>
+ </div>
+ <div class="mullinediv" v-if="step1Start">
+ <div v-for="question in questionItems" class="mullinediv-item" v-if="isNull(question.analyze)">
+ <el-image :src="question.imgUrl" lazy :preview-src-list="[question.imgUrl]"></el-image>
+ <div style="display: flex; justify-content: space-between;padding: 5px 10px;margin-top: -5px;">
+ <i class="el-icon-success" @click="likeMe(question.id)"></i>
+ <i class="el-icon-question" @click="iAmNotSure(question.id)"></i>
+ <i class="el-icon-error" @click="unLikeMe(question.id)"></i>
+ </div>
+ </div>
+ </div>
+ </el-main>
+ </el-container>
+ <el-container class="app-item-contain step2" v-if="step === 'step2'">
+ <el-main class="">
+ <div>
+ <div class="tag-group">
+ <span class="tag-group__title" style="padding-right: 20px;">{{$t('values_cur_step')}}锛坽{step2SubStep}} / {{step2ScoreRanges.length}})</span>
+ <el-tag
+ v-for="item in step2ScoreRanges"
+ :key="item.itemOrder"
+ :type="getStep2StepTagType(item.step)"
+ style="margin: 0 2px;font-size: 26px;"
+ size="large"
+ effect="light">
+ {{ item.quantity }}
+ </el-tag>
+ </div>
+ <div style="display: flex;justify-content: space-between;">
+ <div style="line-height: 50px;text-indent: 2em;">
+ {{$t('values_step_tips1')}}{{(step2SubStep % 2 == 0)?$t('values_step_tips4'):''}}{{$t('values_step_tips2')}}{{getStep2StepItem(step2SubStep).quantity}}{{$t('values_step_tips3')}}
+ </div>
+ <div style="display: flex;justify-content: flex-end;">
+ <el-button style="" @click="step2_pre" v-if="step2SubStep>1">{{$t('pre')}}</el-button>
+ <el-button style="" @click="step2_next">{{$t('next')}}</el-button>
+ </div>
+ </div>
+ </div>
+ <div>
+ <el-divider content-position="left"><span :style="'padding: 0 10px;background-color: ' + ((getStep2StepItem(step2SubStep).selected>getStep2StepItem(step2SubStep).quantity)?'red;':'#c8c3c3;')">{{getStep2StepItem(step2SubStep).selected}} / {{getStep2StepItem(step2SubStep).quantity}}</span> </el-divider>
+ <div style="">
+ <div class="inlinediv">
+ <div v-for="question in questionItems" class="mullinediv-item" v-if="getStep2StepItem(step2SubStep).itemOrder == question.subjectId">
+ <el-image :src="question.imgUrl" lazy :preview-src-list="[question.imgUrl]"></el-image>
+ <div style="display: flex;justify-content: center;padding: 5px 10px;"><!--/*background-color: #c8c3c3;*/-->
+ <i class="el-icon-delete" @click="step2Delete(question.id,getStep2StepItem(step2SubStep).itemOrder)"></i>
+ <!-- <i class="el-icon-zoom-in"></i> -->
+ </div>
+ </div>
+ </div>
+ </div>
+ <el-divider content-position="left">{{$t('values_select_tips')}}</el-divider>
+ <div style="height: auto;overflow: auto;">
+ <div class="mullinediv" style="" v-if="questionItems && questionItems.length>0">
+ <div v-for="question in questionItems" class="mullinediv-item" v-if="isNull(question.subjectId)">
+ <el-image :src="question.imgUrl" lazy :preview-src-list="[question.imgUrl]"></el-image>
+ <div style="display: flex; justify-content: center;padding: 5px 10px;margin-top: -5px;">
+ <el-checkbox @change="checked=>step2Add(checked,question.id,getStep2StepItem(step2SubStep).itemOrder)">{{$t('values_select')}}</el-checkbox>
+ <!-- <i class="el-icon-check"></i> -->
+ <!-- <i class="el-icon-zoom-in"></i> -->
+ </div>
+ </div>
+ </div>
+ <div class="mullinediv" style="" v-if="sumUnSelectedNum()<=0">
+ {{$t('values_no_select')}}
+ </div>
+ </div>
+ </div>
+ </el-main>
+ </el-container>
+ <el-container class="app-item-contain step3" v-if="step === 'step3'">
+ <el-main class="">
+ <div style="display:flex;">
+ <div style="display: inline-block;min-width: 110px;text-align: right;">
+ <div class="mul-inlinediv-row mul-inlinediv-lineheight" v-for="(item,index) in step2ScoreRanges">
+ {{(index == 0)?$t('values_mostLikeMe'):''}}{{(index == (step2ScoreRanges.length-1))?$t('values_mostUnLikeMe'):''}} {{item.deviate}}
+ </div>
+ </div>
+ <div class="mul-inlinediv-box">
+ <div class="mul-inlinediv" v-for="item in step2ScoreRanges">
+ <div class="mul-inlinediv-row">
+ <div v-for="question in questionItems" class="mullinediv-item" v-if="question.subjectId == item.itemOrder">
+ <el-image :src="question.imgUrl" lazy :preview-src-list="[question.imgUrl]"></el-image>
+ <div style="display: flex;justify-content: center;padding: 5px 10px;"><!--/*background-color: #c8c3c3;*/-->
+ <el-checkbox v-model="question['checked']" @change="checked=>step3Change(checked,question)" :disabled="(step3ChangeSrc.subjectId != question.subjectId || step3ChangeSrc.id == question.id)?false:true">
+ {{(step3ChangeSrc.id==null)?$t('values_select'):(question.id==step3ChangeSrc.id)?$t('values_select'):$t('values_select_exchange')}}
+ </el-checkbox>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div style="display: flex;justify-content: center;">
+ <el-button style="margin-top: 12px;" @click="step3_commit" :disabled="submitDisable">{{$t('commit')}}</el-button>
+ </div>
+ </el-main>
+ </el-container>
+ <el-row class="do-exam-title footer">
+ <el-col :span="24">
+ <span class="do-exam-time">
+ </span>
+ </el-col>
+ </el-row>
+ </div>
+</template>
+
+<script>
+import { mapState, mapGetters, mapMutations } from 'vuex'
+import { formatDate } from '@/utils'
+import examPaperApi from '@/api/examPaper'
+import examPaperAnswerApi from '@/api/examPaperAnswer'
+import demographyApi from '@/api/demography'
+
+export default {
+ name: 'values',
+ data () {
+ return {
+ step:'step1',
+ step1Start:false,
+ step1SelectedNum:0,
+ step2ScoreRanges: [
+ // {
+ // "itemOrder": 1,
+ // "quantity": 2,
+ // "score": 5,
+ // "completed": false,
+ // "questionReports": null
+ // }
+ ],
+ step2ScoreRangesDefault: [
+ {
+ "itemOrder": 0,
+ "quantity": 0,
+ "score": 0,
+ "completed": false,
+ "questionReports": null,
+ "step":0,
+ "selected":0
+ }
+ ],
+ step2SubStep:1,
+ step3ChangeSrc:{
+ "id": null,
+ "subjectId": null,
+ },
+ form: {
+ "id": 92,
+ "level": 1,
+ "subjectId": null,
+ "paperType": 1,
+ "name": "VAQ",
+ "suggestTime": null,
+ "limitDateTime": null,
+ "titleItems": [
+ {
+ "guide": "",
+ "name": "",
+ "description": "",
+ "permanentId": null,
+ "questionOrder": 0,
+ "questionReport": null,
+ "questionItems": [
+ {
+ "id": 786,
+ "questionType": 1,
+ "subjectId": null,
+ "title": "楹诲皢妗�",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": null,
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 1,
+ "questionOrder": 0,
+ "permanentId": "VAQ00001",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 1,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://127.0.0.1:8090/profile/images/2022/12/26/b698d623e7c9a55d9017ffa08477b121.jpg"
+ },
+ {
+ "id": 787,
+ "questionType": 1,
+ "subjectId": null,
+ "title": "楹诲皢妗�2",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": null,
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 2,
+ "questionOrder": 1,
+ "permanentId": "VAQ00002",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 2,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://127.0.0.1:8090/profile/images/2022/12/26/123f79ad0cc38507368c22b8a7ec9b09.jpg"
+ },
+ {
+ "id": 788,
+ "questionType": 1,
+ "subjectId": null,
+ "title": "娴嬭瘯1",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": null,
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 3,
+ "questionOrder": 2,
+ "permanentId": "VAQ00003",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 3,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://127.0.0.1:8090/profile/images/2023/01/09/6b80baab47a9eba6ceeec5a723397109.jpg"
+ },
+ {
+ "id": 789,
+ "questionType": 1,
+ "subjectId": null,
+ "title": "娴嬭瘯2",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": null,
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 4,
+ "questionOrder": 3,
+ "permanentId": "VAQ00004",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 4,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://127.0.0.1:8090/profile/images/2023/01/09/3f8e18280f1d47362c69b18e80ddf1a3.jpg"
+ },
+ {
+ "id": 790,
+ "questionType": 1,
+ "subjectId": null,
+ "title": "娴嬭瘯3",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": null,
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 5,
+ "questionOrder": 4,
+ "permanentId": "VAQ00005",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 5,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://127.0.0.1:8090/profile/images/2023/01/09/447616cb14745241f0ac700b56d0770b.jpg"
+ }
+ ],
+ "startTime": null,
+ "endTime": null,
+ "parts": [],
+ "scoreRanges": [
+ {
+ "itemOrder": 1,
+ "quantity": 2,
+ "score": 5,
+ "completed": false,
+ "questionReports": null
+ },
+ {
+ "itemOrder": 2,
+ "quantity": 1,
+ "score": 10,
+ "completed": false,
+ "questionReports": null
+ },
+ {
+ "itemOrder": 3,
+ "quantity": 2,
+ "score": 5,
+ "completed": false,
+ "questionReports": null
+ }
+ ]
+ }
+ ],
+ "score": null,
+ "guide": "VAQ",
+ "questionOrder": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4
+ ],
+ "parts": [],
+ "questionTemplateId": "values",
+ "reportTemplateId": "61",
+ "memberName": "test4",
+ "optionOrder": null,
+ "timeOut": null,
+ "jobDescriptionFile": null
+ },
+ formLoading: false,
+ answer: {
+ questionId: null,
+ doTime: 0,
+ answerItems: [],
+ verifyStatus: 2
+ },
+ timer: null,
+
+ titleItemsLength: 0,
+ remainTime: 0,
+ titleItemName: '', // 鑰冭瘯绗簩鏍囬
+ itemOrder: '', // 棰樼洰鐨勫簭鍙�
+ questionItem: {}, // 棰樼洰
+ questionItems: [], // 棰樼洰闆�
+ itemSize: '', // 棰樼洰闀垮害
+ titleItems: [],
+
+ order: 0,
+ guide: false,
+ answered: [],
+ submitDisable: false,
+ doTime: 0,
+ preDisable: false,
+ nextDisable: false,
+ partOrder: 0,
+ parts: [],
+ guideTitle: '',
+ guideDescirption: '',
+ isCallTain: '',
+ memberName: '',
+ startDoDisable: true,
+
+ }
+ },
+ created: function () {
+ console.log("created......",this.$route.query.formDo,typeof(this.$route.query.formDo))
+ //console.log(".....................Test. config start......................")
+ //if(this.memberToken == '' || this.memberToken == undefined) this.setMemberTocken("4bdcf437-185c-4f4e-9528-382c99509ea6")
+ //console.log(".....................Test. config ednd.......................")
+ let _this = this
+ // 澶氳瑷�
+ _this.setLangFlag(false)
+ _this.form = this.$route.query.formDo
+ if (_this.form !== {} && _this.form !== undefined && typeof(_this.form) !== "string") {
+ _this.formLoading = true
+ _this.remainTime = _this.form.suggestTime * 60
+ _this.titleItemsLength = _this.form.titleItems.length
+ _this.titleItems.push(_this.form.titleItems[0])
+ _this.questionItem = _this.form.titleItems[0].questionItems[0]
+ _this.questionItems = _this.form.titleItems[0].questionItems
+ _this.partOrder = _this.questionItem.partOrder
+ _this.itemOrder = _this.form.titleItems[0].questionItems[0].itemOrder
+ _this.itemSize = _this.form.titleItems[0].questionItems.length
+ _this.timeReduce()
+ _this.initAnswer()
+ _this.formLoading = false
+ _this.memberName = _this.form.memberName
+ _this.initStep2ScoreRanges(_this.form.titleItems[0].scoreRanges)
+
+ } else {
+ _this.formLoading = true
+ // 闃叉鍒锋柊鎴愪簡涓嶅悓鐨勮瑷�
+ demographyApi.queryDemographyParamInfo(_this.memberToken).then(
+ re => {
+ console.log('queryDemographyParamInfo...',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 => {
+ console.log('select...',re)
+ _this.form = re.response
+ _this.remainTime = re.response.suggestTime * 60
+ _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.questionItems = _this.form.titleItems[0].questionItems
+ _this.partOrder = _this.questionItem.partOrder
+ _this.initAnswer()
+ _this.formLoading = false
+ _this.memberName = _this.form.memberName
+ _this.initStep2ScoreRanges(_this.form.titleItems[0].scoreRanges)
+
+ 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 () {
+ //console.log("mounted......")
+ },
+ beforeDestroy () {
+ window.clearInterval(this.timer)
+ },
+ methods: {
+ step1_start(){
+ this.step = "step1"
+ this.step1Start = true
+ this.questionItems.sort(function(i2, i1){return (i2.id - i1.id)})
+ //console.log('step1_start...',this.questionItems)
+ },
+ step1_next(){
+ this.step = "step2"
+ this.sortQuestions()
+ this.caculateScoreRangeSelectedById(this.getStep2StepItem(this.step2SubStep).itemOrder)
+ },
+ step2_pre(){
+ if(this.step2SubStep > 1){
+ this.step2SubStep = this.step2SubStep - 1
+ }
+ },
+ step2_next(){
+ let _this = this
+ let stepItem = this.getStep2StepItem(this.step2SubStep)
+ if(stepItem.selected == stepItem.quantity || this.sumUnSelectedNum() == 0 ){
+ _this.answer.verifyStatus = 2
+ _this.submitSubAnswer()
+
+ this.step2SubStep = this.step2SubStep + 1
+ if(this.step2SubStep > this.step2ScoreRanges.length){
+ this.step = "step3"
+ }
+
+ this.sortQuestions()
+ this.caculateScoreRangeSelectedById(this.getStep2StepItem(this.step2SubStep).itemOrder)
+ } else {
+ //this.$message.error(_this.$t('noquestionMsg'))
+ if(stepItem.selected > stepItem.quantity){
+ this.$message.error(_this.$t('values_nextStepTips_del_unnecessary'))
+ } else {
+ this.$message.error(_this.$t('values_nextStepTips_add_enough'))
+ }
+ }
+ },
+ step2Delete(qid,sid){
+ this.resetQuestionItemsValueById(qid,"subjectId",null)//鍊熺敤subjectId锛屽瓨鍌�
+ this.caculateScoreRangeSelectedById(sid,-1)
+ },
+ step2Add(value,qid,sid){
+ //console.log("step2Add....",value,qid,sid)
+ this.resetQuestionItemsValueById(qid,"subjectId",sid)//鍊熺敤subjectId锛屽瓨鍌�
+ this.caculateScoreRangeSelectedById(sid,1)
+ },
+ step3Change(value,question){
+ console.log('step3Change...',this.step3ChangeSrc)
+ if(this.step3ChangeSrc.id == null){
+ //棣栨鐐瑰嚮锛屼复鏃跺瓨鍌�
+ this.step3ChangeSrc.id = question.id
+ this.step3ChangeSrc.subjectId = question.subjectId
+ for (let item of this.questionItems) {
+ if(item.id == question.id) item['checked'] = true
+ }
+ } else {
+ if(this.step3ChangeSrc.id == question.id){
+ //瀵硅皟鑷繁
+ } else {
+ //瀵硅皟
+ this.resetQuestionItemsValueById(this.step3ChangeSrc.id,"subjectId",question.subjectId)//鍊熺敤subjectId锛屽瓨鍌�
+ this.resetQuestionItemsValueById(question.id,"subjectId",this.step3ChangeSrc.subjectId)//鍊熺敤subjectId锛屽瓨鍌�
+ }
+ //娓呯悊
+ this.step3ChangeSrc.id = null
+ this.step3ChangeSrc.subjectId = null
+ for (let item of this.questionItems) {
+ item['checked'] = false
+ }
+ }
+ },
+ sumUnSelectedNum(){
+ let count = 0
+ for (let item of this.questionItems) {
+ if(this.isNull(item['subjectId'])){
+ count = count + 1
+ }
+ }
+ return count
+ },
+ step3_commit(){
+ let _this = this
+ window.clearInterval(_this.timer)
+ _this.submitDisable = true
+ _this.formLoading = true
+ _this.answer.verifyStatus = 1
+ _this.answer.finish = 1
+ _this.submitAnswer(_this.$t('values_finishValuesInfo'))
+ },
+ getLikeTypeByScoreRangeItemOrder(itemOrder){
+ let step = 0
+ for (let item of this.step2ScoreRanges) {
+ if(item.itemOrder === itemOrder){
+ step = item['step']
+ break
+ }
+ }
+ return this.getLikeType(step)
+ },
+ getLikeType(step){
+ if(this.step2ScoreRanges.length % 2 == 0){//鍋舵暟姝ラ
+ if(step % 2 == 0){
+ //2-UnLike
+ return 2
+ } else {
+ //0-Like
+ return 0
+ }
+ } else {//濂囨暟姝ラ
+ if(step == this.step2ScoreRanges.length) {
+ //1-NotSure
+ return 1
+ } else {
+ if(step % 2 == 0){
+ //2-UnLike
+ return 2
+ } else {
+ //0-Like
+ return 0
+ }
+ }
+ }
+ },
+ sortQuestions(){
+ let type = this.getLikeType(this.step2SubStep)
+ switch (type) {
+ case 0://0:鏈�鍍忔垜
+ this.questionItems.sort(function(i2, i1){return (i2.analyze == 'Like')?-1:1})
+ break
+ case 1://1:鏈夌枒闂�
+ this.questionItems.sort(function(i2, i1){return (i2.analyze == 'NotSure')?-1:1})
+ break
+ case 2://2:鏈�涓嶅儚鎴�
+ this.questionItems.sort(function(i2, i1){return (i2.analyze == 'UnLike')?-1:1})
+ break
+ }
+ },
+
+ likeMe(id){
+ this.step1SelectedNum = this.step1SelectedNum + 1
+ this.resetQuestionItemsValueById(id,"analyze","Like")//鍊熺敤analyze锛屽瓨鍌�
+ },
+ iAmNotSure(id){
+ this.step1SelectedNum = this.step1SelectedNum + 1
+ this.resetQuestionItemsValueById(id,"analyze","NotSure")
+ },
+ unLikeMe(id){
+ this.step1SelectedNum = this.step1SelectedNum + 1
+ this.resetQuestionItemsValueById(id,"analyze","UnLike")
+ },
+ resetQuestionItemsValueById(id,key,value){
+ for (let item of this.questionItems) {
+ if(item.id === id){
+ item[key] = value
+ if("subjectId" == key){
+ item['content'] = this.getLikeTypeByScoreRangeItemOrder(value)
+ }
+ }
+ }
+ //console.log('resetQuestionItems...',id,key,value,this.questionItems)
+ },
+ caculateScoreRangeSelectedById(id,value){
+ let sum = 0
+ for (let item of this.questionItems) {
+ if(item.subjectId === id){
+ sum = sum + 1
+ }
+ }
+ for (let item of this.step2ScoreRanges) {
+ if(item.itemOrder === id){
+ item['selected'] = sum
+ }
+ }
+ },
+ initTestData(){
+ let _this = this
+ //for test
+ _this.step2ScoreRanges = [].concat([
+ {
+ "itemOrder": 1,
+ "quantity": 1,
+ "score": 5,
+ "completed": false,
+ "questionReports": null
+ },
+ {
+ "itemOrder": 2,
+ "quantity": 2,
+ "score": 5,
+ "completed": false,
+ "questionReports": null
+ },
+ {
+ "itemOrder": 3,
+ "quantity": 10,
+ "score": 5,
+ "completed": false,
+ "questionReports": null
+ },
+ {
+ "itemOrder": 4,
+ "quantity": 2,
+ "score": 5,
+ "completed": false,
+ "questionReports": null
+ },
+ {
+ "itemOrder": 5,
+ "quantity": 1,
+ "score": 5,
+ "completed": false,
+ "questionReports": null
+ },
+ // {
+ // "itemOrder": 6,
+ // "quantity": 2,
+ // "score": 5,
+ // "completed": false,
+ // "questionReports": null
+ // },
+ // {
+ // "itemOrder": 7,
+ // "quantity": 2,
+ // "score": 5,
+ // "completed": false,
+ // "questionReports": null
+ // },
+ // {
+ // "itemOrder": 8,
+ // "quantity": 2,
+ // "score": 5,
+ // "completed": false,
+ // "questionReports": null
+ // },
+ ])
+
+ _this.questionItems = _this.questionItems.concat([
+ {
+ "id": 100,
+ "questionType": 1,
+ "subjectId": 3,
+ "title": "楹诲皢妗�",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": "Like",
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 1,
+ "questionOrder": 0,
+ "permanentId": "VAQ00001",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 1,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://47.114.179.216:8090/profile/images/2022/12/26/b698d623e7c9a55d9017ffa08477b121.jpg"
+ },
+ {
+ "id": 101,
+ "questionType": 1,
+ "subjectId": 3,
+ "title": "楹诲皢妗�",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": "UnLike",
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 1,
+ "questionOrder": 0,
+ "permanentId": "VAQ00001",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 1,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://47.114.179.216:8090/profile/images/2022/12/26/b698d623e7c9a55d9017ffa08477b121.jpg"
+ },
+ {
+ "id": 102,
+ "questionType": 1,
+ "subjectId": 3,
+ "title": "楹诲皢妗�",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": "NotSure",
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 1,
+ "questionOrder": 0,
+ "permanentId": "VAQ00001",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 1,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://47.114.179.216:8090/profile/images/2022/12/26/b698d623e7c9a55d9017ffa08477b121.jpg"
+ },
+ {
+ "id": 103,
+ "questionType": 1,
+ "subjectId": 3,
+ "title": "楹诲皢妗�",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": "Like",
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 1,
+ "questionOrder": 0,
+ "permanentId": "VAQ00001",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 1,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://47.114.179.216:8090/profile/images/2022/12/26/b698d623e7c9a55d9017ffa08477b121.jpg"
+ },
+ {
+ "id": 104,
+ "questionType": 1,
+ "subjectId": 3,
+ "title": "楹诲皢妗�",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": "UnLike",
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 1,
+ "questionOrder": 0,
+ "permanentId": "VAQ00001",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 1,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://47.114.179.216:8090/profile/images/2022/12/26/b698d623e7c9a55d9017ffa08477b121.jpg"
+ },
+ {
+ "id": 105,
+ "questionType": 1,
+ "subjectId": 1,
+ "title": "楹诲皢妗�",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": "NotSure",
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 1,
+ "questionOrder": 0,
+ "permanentId": "VAQ00001",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 1,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://47.114.179.216:8090/profile/images/2022/12/26/b698d623e7c9a55d9017ffa08477b121.jpg"
+ },
+ {
+ "id": 106,
+ "questionType": 1,
+ "subjectId": 1,
+ "title": "楹诲皢妗�",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": "Like",
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 1,
+ "questionOrder": 0,
+ "permanentId": "VAQ00001",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 1,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://47.114.179.216:8090/profile/images/2022/12/26/b698d623e7c9a55d9017ffa08477b121.jpg"
+ },
+ {
+ "id": 107,
+ "questionType": 1,
+ "subjectId": 2,
+ "title": "楹诲皢妗�",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": "NotSure",
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 1,
+ "questionOrder": 0,
+ "permanentId": "VAQ00001",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 1,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://47.114.179.216:8090/profile/images/2022/12/26/b698d623e7c9a55d9017ffa08477b121.jpg"
+ },
+ {
+ "id": 108,
+ "questionType": 1,
+ "subjectId": 2,
+ "title": "楹诲皢妗�",
+ "gradeLevel": null,
+ "items": [
+ {
+ "prefix": "1",
+ "content": "0",
+ "score": "0"
+ }
+ ],
+ "analyze": "NotSure",
+ "correctArray": null,
+ "correct": null,
+ "score": "0",
+ "difficult": null,
+ "itemOrder": 1,
+ "questionOrder": 0,
+ "permanentId": "VAQ00001",
+ "questionReport": null,
+ "startTime": null,
+ "endTime": null,
+ "partOrder": 1,
+ "parentQuestionId": null,
+ "template": null,
+ "questionNumber": null,
+ "content": null,
+ "imgUrl": "http://47.114.179.216:8090/profile/images/2022/12/26/b698d623e7c9a55d9017ffa08477b121.jpg"
+ },
+ ])
+ },
+ initStep2ScoreRanges(arr){
+ let _this = this
+ _this.step2ScoreRanges = _this.step2ScoreRanges.concat(arr)
+ //this.initTestData()
+ let s = 1
+ let a = 2//-2
+ let max = _this.step2ScoreRanges.length
+ let max4O = (max % 2 == 0)?(max):(max+1)
+ let max4J = (max % 2 == 0)?(max+1):(max)
+ let deviate = 0//鍋忕鍊�
+ for (let i = 0; i < _this.step2ScoreRanges.length; i++) {
+ //璁剧疆姣忛」step鏁�
+ if(a > 0){//+
+ if(s < max){
+ _this.step2ScoreRanges[i]['step'] = s
+ a = 2
+ s = s + a
+ } else if(s == max) {
+ _this.step2ScoreRanges[i]['step'] = s
+ a = -2
+ s = s + 1
+ } else {
+ _this.step2ScoreRanges[i]['step'] = s - 1
+ a = -2
+ s = s - 1
+ }
+ } else {//-
+ s = s + a
+ _this.step2ScoreRanges[i]['step'] = s
+ }
+ //璁剧疆姣忛」step鍋忕鏈�鍚巗tep鐨勬璐熻窛绂诲�硷紙濂囨暟step姝e亸绂伙紝鍋舵暟step璐熷亸绂伙級
+ if(_this.step2ScoreRanges[i]['step'] % 2 == 0){//鍋舵暟
+ deviate = (max4O - _this.step2ScoreRanges[i]['step']) - (max4O - _this.step2ScoreRanges[i]['step'])/2
+ _this.step2ScoreRanges[i]['deviate'] = 0 - deviate
+ } else {
+ deviate = (max4J - _this.step2ScoreRanges[i]['step']) - (max4J - _this.step2ScoreRanges[i]['step'])/2
+ _this.step2ScoreRanges[i]['deviate'] = deviate
+ }
+ //璁剧疆姣忛」宸查�夋嫨鐨勬暟閲�
+ _this.step2ScoreRanges[i]['selected'] = 0
+ }
+ console.log('initStep2ScoreRanges...',this.step2ScoreRanges)
+ },
+ getStep2StepTagType(step){
+ if(this.step2SubStep > step){
+ return ''
+ } else if(this.step2SubStep == step){
+ return 'success'
+ } else {
+ return 'info'
+ }
+ },
+ getStep2StepItem(step){
+ //console.log('getStep2StepItem',step,this.step2ScoreRanges)
+ let _this = this
+ for (let i = 0; i < _this.step2ScoreRanges.length; i++) {
+ if(_this.step2ScoreRanges[i]['step'] == step){
+ return _this.step2ScoreRanges[i]
+ }
+ }
+ return _this.step2ScoreRangesDefault[0];
+ },
+ 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: question.content, contentArray: [], completed: false, itemOrder: question.itemOrder, lastContent: null, startTime: question.startTime, endTime: question.endTime, partOrder: question.partOrder, questionReport: {}, readOnly: false, imgUrl: question.imgUrl})
+ }
+ }
+
+ // 鍒濆鍖栧紑濮嬫椂闂达紝璁剧疆绗竴涓椂闂�
+ 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.itemSize - 1) {
+ 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.itemSize - 1) {
+ this.submitDisable = false
+ return
+ }
+ // 濡傛灉鏄渶鍚庝竴棰樺氨涓婇潰鎻愪氦浜嗭紝涓嶄細璧板埌杩欓噷
+ let loading = null
+ if (this.isNextShowGuide(nowPartOrder)) {
+ this.catThaiSubmit(answerSubmit)
+ loading = _this.$loading({
+ lock: false,
+ text: _this.$t('nextPartInfo'),
+ spinner: 'el-icon-loading'
+ })
+ }
+ examPaperAnswerApi.answerSubmit(answerSubmit, _this.memberToken).then(re => {
+ if (_this.isNotEmpty(loading)) {
+ loading.close()
+ }
+ 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 => {
+ if (_this.isNotEmpty(loading)) {
+ loading.close()
+ }
+ _this.reloadPage(e)
+ })
+ },
+ getSubmitAnswerValue (nowPartOrder) {
+ let _this = this
+ let answerSubmit = JSON.parse(JSON.stringify(_this.answer))
+ //add answerItems
+ answerSubmit.answerItems.forEach(answerItem => {
+ // 棰樼洰鎶ヨ〃锛屽鏋滄病鏈夌粨鏉熸椂闂达紝寮�濮嬫椂闂翠篃涓嶉渶瑕�
+ if (answerItem.endTime == null || answerItem.endTime === '') {
+ answerItem.startTime = ''
+ }
+ answerItem.completed = true
+ //answerItem.content = this.getLikeTypeByScoreRangeItemOrder(answerItem.subjectId)
+ answerItem.questionReport = {
+ questionOrder: answerItem.questionId,
+ questionTitle: answerItem.title,
+ permanentId: answerItem.permanentId,
+ startTime: answerItem.startTime,
+ endTime: answerItem.endTime,
+ langType: _this.langType,
+ partOrder: answerItem.partOrder,
+ imgUrl: answerItem.imgUrl,
+ answer: answerItem.content }
+ })
+ answerSubmit.langType = _this.langType
+ answerSubmit.isCallTain = _this.isCallTain
+ answerSubmit.partOrder = nowPartOrder
+ answerSubmit.itemOrder = _this.itemOrder
+ //add scoreRanges
+ if(_this.step2SubStep >= _this.step2ScoreRanges.length){
+ answerSubmit['scoreRanges'] = _this.form.titleItems[0].scoreRanges
+ } else {
+ let item = _this.getStep2StepItem(_this.step2SubStep)
+ console.log('getStep2StepItem',_this.step2SubStep,item)
+ answerSubmit['scoreRanges'] = []
+ answerSubmit['scoreRanges'].push(item)
+ }
+ console.log('answerSubmit.scoreRanges=',answerSubmit['scoreRanges'])
+ for (let item of answerSubmit['scoreRanges']) {
+ item['completed'] = true
+ item['questionReports'] = []
+ for (let question of _this.questionItems) {
+ if(question.subjectId === item.itemOrder){
+ item['questionReports'].push({
+ questionOrder:question.questionOrder, //棰樼洰ID
+ questionTitle:question.questionTitle, //棰樼洰鏍囬
+ permanentId:question.permanentId, //棰樼洰姘镐箙缂栧彿
+ startTime:question.startTime, //绛旈寮�濮嬫椂闂�
+ endTime:question.endTime, //绛旈缁撴潫鏃堕棿
+ langType:question.langType, //绛旈璇█
+ partOrder:question.partOrder, //鍒嗙墖
+ imgUrl:question.imgUrl, //鍥剧墖鍦板潃
+ answer:question.content //棰樼洰绛旀
+ })
+ }
+ }
+ }
+ 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
+ }
+ },
+ submitSubAnswer: function () {
+ 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)
+ 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) {
+ console.log('answerSubmit...',re)
+ }
+ _this.formLoading = false
+ }).catch(e => {
+ _this.reloadPage(e)
+ loading.close()
+ })
+ },
+ 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)
+ 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', ['setMemberTocken']),
+ ...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>
+ .app-item-contain{
+ margin-top: 45px;
+ }
+ .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>
+<style lang="scss" scpoed>
+ .mul-inlinediv-box{
+ overflow: auto;
+ display: block;
+ -webkit-box-flex: 1;
+ }
+ .mul-inlinediv {
+ overflow-y: hidden;
+ overflow-x: auto;
+ white-space: nowrap;
+ border: 1px solid gray;
+ padding: 10px 0;
+ width: fit-content;
+ }
+ .mul-inlinediv div div{
+ display: inline-table;
+ vertical-align: top;
+ width: 180px;
+ margin: 0 2px;
+ }
+ .mul-inlinediv-row{
+ min-height: 210px;
+ margin: 0 10px;
+ }
+ .mul-inlinediv-lineheight{
+ line-height: 210px;
+ padding: 10px 0;
+ }
+ .inlinediv {
+ overflow-y: hidden;
+ overflow-x: auto;
+ white-space: nowrap;
+ min-height: 180px;
+ display: flex;
+ }
+ .inlinediv div{
+ display: inline-table;
+ vertical-align: top;
+ width: 100px;
+ margin: auto 2px;
+ }
+ .mullinediv{
+ display: contents;
+ }
+ .mullinediv-item{
+ display: flex;display:
+ inline-block;
+ width: 180px;
+ margin: 5px 4px;
+ }
+ .mullinediv-item:hover {
+ }
+ img:hover {
+ transform: scale(2);
+ // -ms-transform: scale(2);
+ // -webkit-transform: scale(2);
+ // -o-transform: scale(2);
+ // -moz-transform: scale(2);
+ transition-duration: 0.5s;
+ }
+ .container {
+ padding: 32px 20px;
+ .configuration {
+ width: 600px;
+ }
+ }
+
+ .bg-purple {
+ background: #d3dce6;
+ }
+</style>
--
Gitblit v1.9.1