Ver código fonte

fix(questionnaire): align live future options

Developer 3 semanas atrás
pai
commit
bec4f23b8c
2 arquivos alterados com 17 adições e 8 exclusões
  1. 11 8
      pagesPublish/questionnaireFill.vue
  2. 6 0
      tests/perillScore.test.js

+ 11 - 8
pagesPublish/questionnaireFill.vue

@@ -56,7 +56,7 @@
 	import CusNotice from '@/components/CusNotice/index2.vue'
 	import CusTeamInfo from '@/components/CusTeamInfo/index.vue'
 	import CusTeamUser from '@/components/CusTeamUser/index.vue'
-	const { validateFutureExpectation } = require('@/utils/perillScore.js')
+	const { validateFutureExpectation, normalizeFutureExpectationOptions } = require('@/utils/perillScore.js')
 	export default {
 		components:{ CusNotice, QuestionItem, CusTeamInfo, CusTeamUser },
 		data(){
@@ -140,19 +140,22 @@
 					.then((res) => {
 						if (res.data.code !== 0) return this.$showToast(res.data.msg);
 						if(res.data.data.length===0) return this.$showToast('暂无问卷');
-						const answerMap = new Map();
-						if (questionnaire && this.teamQuestionnaireId == questionnaire.key) {
-							questionnaire.list.forEach((q) => answerMap.set(q.id, q.answer));
-						}
-						
-						this.userAnswerTemp = res.data.data[0].userAnswer.map(u=>{
+						const answerMap = new Map();
+						if (questionnaire && this.teamQuestionnaireId == questionnaire.key) {
+							questionnaire.list.forEach((q) => answerMap.set(q.id, q.answer));
+						}
+						const questionItems = res.data.data.map(item => Object.assign({}, item, {
+							userAnswer: normalizeFutureExpectationOptions(item.userAnswer)
+						}));
+						
+						this.userAnswerTemp = questionItems[0].userAnswer.map(u=>{
 							return {
 								assessmentMethod:u.assessmentMethod,
 								value:''
 							}
 						}) 
 						let uaTemp = JSON.parse(JSON.stringify(this.userAnswerTemp))
-						this.list = res.data.data.map(item => {
+						this.list = questionItems.map(item => {
 							let _a = answerMap.get(item.id);
 							return {
 								...item,

+ 6 - 0
tests/perillScore.test.js

@@ -31,4 +31,10 @@ const questionnaireConfig = fs.readFileSync(
 )
 assert.doesNotMatch(questionnaireConfig, /<el-option label="重要性" :value="2"><\/el-option>/)
 
+const questionnaireFill = fs.readFileSync(
+	path.join(__dirname, '../pagesPublish/questionnaireFill.vue'),
+	'utf8'
+)
+assert.match(questionnaireFill, /normalizeFutureExpectationOptions\(item\.userAnswer\)/)
+
 console.log('perill score rules: PASS')