提交 9d5aa06e authored 作者: lihuihui's avatar lihuihui

updata

上级 f5e3a594
...@@ -21,63 +21,38 @@ ...@@ -21,63 +21,38 @@
</li> </li>
</ul> </ul>
</div> </div>
<!-- <div class="question">
<template v-for="(item, index) in dataList">
<div :key="index">
<div class="title">{{ questionType[item.type] }}</div>
<ul>
<template v-for="(cItem, cIndex) in item.question_list">
<li class="">{{ cItem.num }}</li>
<template v-if="requestData[item.id]">
<template v-if="requestData[item.id][cItem.id]">
<template v-if="requestData[item.id][cItem.id].sign">
<li @click="go(cItem.id)" :data-id="cItem.id" :key="cIndex" class="active2">{{ cItem.num }}</li>
</template>
<template v-else>
<li @click="go(cItem.id)" :data-id="cItem.id" v-if="requestData[item.id][cItem.id].answer.length != 0" :key="cIndex" class="active1">{{ cItem.num }}</li>
<li @click="go(cItem.id)" :data-id="cItem.id" v-else :key="cIndex" class="active3">{{ cItem.num }}</li>
</template>
</template>
<template v-else>
<li @click="go(cItem.id)" :data-id="cItem.id" :key="cIndex" class="active3">{{ cItem.num }}</li>
</template>
</template>
<template v-else>
<li @click="go(cItem.id)" :data-id="cItem.id" :key="cIndex" class="active3">{{ cItem.num }}</li>
</template>
</template>
</ul>
</div>
</template>
</div> -->
<div class="question"> <div class="question">
<template> <template v-if="answerData['1'].data.length !=0">
<div> <div class="title" >{{ answerData['1'].title }}</div>
<!-- <div class="title">{{ questionType[item.type] }}</div> --> <ul>
<ul> <template v-for="(item, index) in answerData['1'].data">
<template v-for="(item, index) in dataList"> <li @click="go(item.id)" :data-id="item.id" :key="index" :class="item.sign == true ? 'active2' : item.answer == undefined ? 'active3' : item.answer.length == 0 ? 'acitve3' : 'active1'">{{ item.num }}</li>
<template v-for="(cItem, cIndex) in item.question_list"> </template>
<template v-if="requestData[item.id]"> </ul>
<template v-if="requestData[item.id][cItem.id]"> </template>
<template v-if="requestData[item.id][cItem.id].sign"> <template v-if="answerData['2'].data.length !=0">
<li :key="cIndex+'-'+index" @click="go(cItem.id)" :data-id="cItem.id" class="active2">{{ cItem.num }}</li> <div class="title" >{{ answerData['2'].title }}</div>
</template> <ul>
<template v-else> <template v-for="(item, index) in answerData['2'].data">
<li :key="cIndex+'-'+index" @click="go(cItem.id)" :data-id="cItem.id" v-if="requestData[item.id][cItem.id].answer.length != 0" class="active1">{{ cItem.num }}</li> <li @click="go(item.id)" :data-id="item.id" :key="index" :class="item.sign == true ? 'active2' : item.answer == undefined ? 'active3' : item.answer.length == 0 ? 'acitve3' : 'active1'">{{ item.num }}</li>
<li :key="cIndex+'-'+index" @click="go(cItem.id)" :data-id="cItem.id" v-else class="active3">{{ cItem.num }}</li> </template>
</template> </ul>
</template> </template>
<template v-else> <template v-if="answerData['5'].data.length !=0">
<li :key="cIndex+'-'+index" @click="go(cItem.id)" :data-id="cItem.id" class="active3">{{ cItem.num }}</li> <div class="title" >{{ answerData['5'].title }}</div>
</template> <ul>
</template> <template v-for="(item, index) in answerData['5'].data">
<template v-else> <li @click="go(item.id)" :data-id="item.id" :key="index" :class="item.sign == true ? 'active2' : item.answer == undefined ? 'active3' : item.answer.length == 0 ? 'acitve3' : 'active1'">{{ item.num }}</li>
<li :key="cIndex+'-'+index" @click="go(cItem.id)" :data-id="cItem.id" class="active3">{{ cItem.num }}</li> </template>
</template> </ul>
</template> </template>
</template> <template v-if="answerData['6'].data.length !=0">
</ul> <div class="title" >{{ answerData['6'].title }}</div>
</div> <ul>
<template v-for="(item, index) in answerData['6'].data">
<li @click="go(item.id)" :data-id="item.id" :key="index" :class="item.sign == true ? 'active2' : item.answer == undefined ? 'active3' : item.answer.length == 0 ? 'acitve3' : 'active1'">{{ item.num }}</li>
</template>
</ul>
</template> </template>
</div> </div>
</div> </div>
...@@ -98,12 +73,36 @@ export default { ...@@ -98,12 +73,36 @@ export default {
default () { default () {
return {} return {}
} }
},
clickStatus: {
type: Number,
default () {
return {}
}
} }
}, },
mounted() { mounted() {
}, },
data() { data() {
return { return {
answerData: {
1: {
title: '单选题:',
data: []
},
2: {
title: '多选题:',
data: []
},
5: {
title: '案例题:',
data: []
},
6: {
title: '判断题:',
data: []
}
},
cardData: {}, cardData: {},
countIndex: 1, countIndex: 1,
questionType: { questionType: {
...@@ -145,9 +144,6 @@ export default { ...@@ -145,9 +144,6 @@ export default {
} }
}, },
computed: { computed: {
changeData() {
return this.questionsData
},
dataList() { dataList() {
// const clone = this.clone(this.questionsData) // const clone = this.clone(this.questionsData)
// const data = this.duplicates(clone.questions) // const data = this.duplicates(clone.questions)
...@@ -160,19 +156,44 @@ export default { ...@@ -160,19 +156,44 @@ export default {
num += item.question_list.length num += item.question_list.length
return item return item
}) })
},
changeData() {
return this.clickStatus
} }
}, },
watch: { watch: {
changeData: { changeData() {
handler(newV, oldV) { this.answerData = {
this.$forceUpdate() 1: {
}, title: '单选题:',
deep: true data: []
}, },
questionsData: { 2: {
handler(newV, oldV) { title: '多选题:',
// this.duplicates(this.questionsData.questions) data: []
},
5: {
title: '案例题:',
data: []
},
6: {
title: '判断题:',
data: []
}
} }
let num = 1
this.questionsData.questions.map(item => {
item.question_list.map((c, index) => {
c.num = num + index
if (Object.prototype.hasOwnProperty.call(this.requestData, item.id)) {
if (Object.prototype.hasOwnProperty.call(this.requestData[item.id], c.id)) {
c = Object.assign(this.requestData[item.id][c.id], c)
}
}
this.answerData[item.type].data.push(c)
})
num += item.question_list.length
})
} }
} }
} }
...@@ -233,7 +254,7 @@ export default { ...@@ -233,7 +254,7 @@ export default {
list-style: none; list-style: none;
margin-top: .3rem; margin-top: .3rem;
padding: 0 0.6rem; padding: 0 0.6rem;
// border-bottom: 0.01rem solid #EEEEEE; border-bottom: 0.01rem solid #EEEEEE;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
li{ li{
......
...@@ -49,42 +49,43 @@ ...@@ -49,42 +49,43 @@
</li> </li>
</ul> </ul>
</div> </div>
<!-- <div class="question">
<template v-for="(item, index) in dataList">
<div :key="index">
<div class="title">{{ questionType[item.type] }}</div>
<ul>
<template v-for="(cItem, cIndex) in item.question_list">
<template v-if="requestData[item.id]">
<template v-if="requestData[item.id][cItem.id]">
<template v-if="requestData[item.id][cItem.id].answer.length != 0">
<template v-if="questionsData.score_items[item.id]">
<li @click="go(cItem.id)" :data-id="cItem.id" :key="cIndex" :class="questionsData.score_items[item.id][cItem.id].is_right ? 'active1' : 'active2'">{{ cItem.num }}</li>
</template>
<template v-else>
<li @click="go(cItem.id)" :data-id="cItem.id" :key="cIndex" class="active3">{{ cItem.num }}</li>
</template>
</template>
<template v-else>
<li @click="go(cItem.id)" :data-id="cItem.id" :key="cIndex" class="active3">{{ cItem.num }}</li>
</template>
</template>
<template v-else>
<li @click="go(cItem.id)" :data-id="cItem.id" :key="cIndex" class="active3">{{ cItem.num }}</li>
</template>
</template>
<template v-else>
<li @click="go(cItem.id)" :data-id="cItem.id" :key="cIndex" class="active3">{{ cItem.num }}</li>
</template>
</template>
</ul>
</div>
</template>
</div> -->
<div class="question"> <div class="question">
<template v-if="answerData['1'].data.length !=0">
<div class="title" >{{ answerData['1'].title }}</div>
<ul>
<template v-for="(item, index) in answerData['1'].data">
<li @click="go(item.id)" :data-id="item.id" :key="index" :class="item.answer == undefined ? 'active3' : item.is_right ? 'active1' : 'active2'">{{ item.num }}</li>
</template>
</ul>
</template>
<template v-if="answerData['2'].data.length !=0">
<div class="title" >{{ answerData['2'].title }}</div>
<ul>
<template v-for="(item, index) in answerData['2'].data">
<li @click="go(item.id)" :data-id="item.id" :key="index" :class="item.answer == undefined ? 'active3' : item.is_right ? 'active1' : 'active2'">{{ item.num }}</li>
</template>
</ul>
</template>
<template v-if="answerData['5'].data.length !=0">
<div class="title" >{{ answerData['5'].title }}</div>
<ul>
<template v-for="(item, index) in answerData['5'].data">
<li @click="go(item.id)" :data-id="item.id" :key="index" :class="item.answer == undefined ? 'active3' : item.is_right ? 'active1' : 'active2'">{{ item.num }}</li>
</template>
</ul>
</template>
<template v-if="answerData['6'].data.length !=0">
<div class="title" >{{ answerData['6'].title }}</div>
<ul>
<template v-for="(item, index) in answerData['6'].data">
<li @click="go(item.id)" :data-id="item.id" :key="index" :class="item.answer == undefined ? 'active3' : item.is_right ? 'active1' : 'active2'">{{ item.num }}</li>
</template>
</ul>
</template>
</div>
<!-- <div class="question">
<template> <template>
<div> <div>
<!-- <div class="title">{{ questionType[item.type] }}</div> -->
<ul> <ul>
<template v-for="(item, index) in dataList"> <template v-for="(item, index) in dataList">
<template v-for="(cItem, cIndex) in item.question_list"> <template v-for="(cItem, cIndex) in item.question_list">
...@@ -114,7 +115,7 @@ ...@@ -114,7 +115,7 @@
</ul> </ul>
</div> </div>
</template> </template>
</div> </div> -->
</div> </div>
</div> </div>
<div :class="ratioNum == 100 ? 'st-btn cent' : 'st-btn'" v-if="title === '随堂小测' || title === '模拟考试' || title === '知识点小测'"> <div :class="ratioNum == 100 ? 'st-btn cent' : 'st-btn'" v-if="title === '随堂小测' || title === '模拟考试' || title === '知识点小测'">
...@@ -133,6 +134,24 @@ export default { ...@@ -133,6 +134,24 @@ export default {
name: 'ExamEnd', name: 'ExamEnd',
data() { data() {
return { return {
answerData: {
1: {
title: '单选题:',
data: []
},
2: {
title: '多选题:',
data: []
},
5: {
title: '案例题:',
data: []
},
6: {
title: '判断题:',
data: []
}
},
questionType: { questionType: {
1: '单选题:', 1: '单选题:',
2: '多选题:', 2: '多选题:',
...@@ -177,16 +196,6 @@ export default { ...@@ -177,16 +196,6 @@ export default {
}, },
methods: { methods: {
goAbilityExam() { goAbilityExam() {
// if (this.isWeapp) {
// wx.miniProgram.navigateTo({ url: `/pages/web/index?src=${window.location.origin}/exam/index?t=1` })
// } else {
// this.$router.push({
// path: '/exam/index',
// query: {
// t: 1
// }
// })
// }
this.$router.replace({ this.$router.replace({
path: '/exam/index', path: '/exam/index',
query: { query: {
...@@ -221,7 +230,43 @@ export default { ...@@ -221,7 +230,43 @@ export default {
} else { } else {
this.ratioNum = 0 this.ratioNum = 0
} }
this.changeData()
})
},
changeData() {
this.answerData = {
1: {
title: '单选题:',
data: []
},
2: {
title: '多选题:',
data: []
},
5: {
title: '案例题:',
data: []
},
6: {
title: '判断题:',
data: []
}
}
let num = 1
this.questionsData.questions.map(item => {
item.question_list.map((c, index) => {
c.num = num + index
c = Object.assign(this.questionsData.score_items[item.id][c.id], c)
if (Object.prototype.hasOwnProperty.call(this.questionsData.answers, item.id)) {
if (Object.prototype.hasOwnProperty.call(this.questionsData.answers[item.id], c.id)) {
c = Object.assign(this.questionsData.answers[item.id][c.id], c)
}
}
this.answerData[item.type].data.push(c)
})
num += item.question_list.length
}) })
console.log(this.answerData)
} }
} }
} }
......
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
</template> </template>
</template> </template>
<swiper-slide v-show="questionsData.questions.length"> <swiper-slide v-show="questionsData.questions.length">
<card @cardChange="cardChange" @showCard="showCard" :questionsData="questionsData" :requestData="requestData"></card> <card @cardChange="cardChange" @showCard="showCard" :questionsData="questionsData" :requestData="requestData" :clickStatus="clickStatus"></card>
</swiper-slide> </swiper-slide>
</swiper> </swiper>
</div> </div>
...@@ -154,6 +154,7 @@ export default { ...@@ -154,6 +154,7 @@ export default {
data () { data () {
const _this = this const _this = this
return { return {
clickStatus: 0,
questionCount: Number, questionCount: Number,
classHide: true, classHide: true,
nextBtnShow: true, nextBtnShow: true,
...@@ -168,6 +169,7 @@ export default { ...@@ -168,6 +169,7 @@ export default {
autoHeight: true, autoHeight: true,
on: { on: {
slideChangeTransitionStart: function() { slideChangeTransitionStart: function() {
_this.clickStatus = Date.parse(new Date())
_this.getIsSign() _this.getIsSign()
if (this.activeIndex === _this.questionsData.sheet.question_count) { if (this.activeIndex === _this.questionsData.sheet.question_count) {
_this.topicCard.isShow = true _this.topicCard.isShow = true
...@@ -355,6 +357,7 @@ export default { ...@@ -355,6 +357,7 @@ export default {
} }
}, },
showCard() { showCard() {
this.clickStatus = Date.parse(new Date())
if (this.swiper.activeIndex !== this.questionsData.sheet.question_count) { if (this.swiper.activeIndex !== this.questionsData.sheet.question_count) {
this.swiperSign = this.swiper.activeIndex this.swiperSign = this.swiper.activeIndex
} else { } else {
...@@ -363,7 +366,6 @@ export default { ...@@ -363,7 +366,6 @@ export default {
document.getElementById('bottom-view').scrollTop = 0 document.getElementById('bottom-view').scrollTop = 0
this.topicCard.isShow = true this.topicCard.isShow = true
this.swiper.slideTo(this.questionsData.sheet.question_count, 0, false) this.swiper.slideTo(this.questionsData.sheet.question_count, 0, false)
// this.scrollDom()
}, },
// 标记 // 标记
signQuestion() { signQuestion() {
...@@ -375,6 +377,7 @@ export default { ...@@ -375,6 +377,7 @@ export default {
duration: 500, duration: 500,
message: '已完成标记' message: '已完成标记'
}) })
this.clickStatus = Date.parse(new Date())
} }
const off = () => { const off = () => {
this.signText = '标记' this.signText = '标记'
...@@ -382,6 +385,7 @@ export default { ...@@ -382,6 +385,7 @@ export default {
duration: 500, duration: 500,
message: '已取消标记' message: '已取消标记'
}) })
this.clickStatus = Date.parse(new Date())
} }
if (!this.requestData[itemCid]) { if (!this.requestData[itemCid]) {
this.requestData[itemCid] = { this.requestData[itemCid] = {
...@@ -499,6 +503,7 @@ export default { ...@@ -499,6 +503,7 @@ export default {
} }
} }
} }
this.clickStatus = Date.parse(new Date())
this.$forceUpdate() this.$forceUpdate()
}, },
// 多选事件 // 多选事件
...@@ -548,6 +553,7 @@ export default { ...@@ -548,6 +553,7 @@ export default {
} }
cData.opaVal = opaArr.toString().replace(new RegExp(',', 'g'), '') cData.opaVal = opaArr.toString().replace(new RegExp(',', 'g'), '')
}) })
this.clickStatus = Date.parse(new Date())
this.$forceUpdate() this.$forceUpdate()
}, },
// 页面过高局部滚动 // 页面过高局部滚动
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论