|
|
@@ -22,8 +22,8 @@
|
|
|
<rich-text :nodes="bank.content"></rich-text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="pad_8 titBox">
|
|
|
- <template v-if="bank.type == 1">
|
|
|
+ <template v-if="bank.type == 1">
|
|
|
+ <view class="pad_8 titBox no-margin">
|
|
|
<view v-if="!bank.ques">
|
|
|
<view v-for="(item, index) in bank.jsonStr" :key="index" class="lisSty" @click="radioSelect(item.optionsId,bankIndex)">
|
|
|
<view class="activeTI">{{ ast[index] }}</view>
|
|
|
@@ -36,28 +36,30 @@
|
|
|
<view class="flex_auto">{{ item.content }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view v-if="bank.ques">
|
|
|
- <view class="pad_8 answer">
|
|
|
- <view>正确答案:{{ast[bank.ans-1]}}</view>
|
|
|
- <view v-if="!explain">我的答案:{{ast[bank.ques-1]}}</view>
|
|
|
- </view>
|
|
|
- <view class="pad_8 answerInfos">
|
|
|
- <view class="answerTitle">答案解析</view>
|
|
|
- <view class="answerContent">
|
|
|
- <rich-text :nodes="bank.analysisContent"></rich-text>
|
|
|
- </view>
|
|
|
+ </view>
|
|
|
+ <view v-if="bank.ques">
|
|
|
+ <view class="pad_8 answer">
|
|
|
+ <view>正确答案:{{ast[bank.ans-1]}}</view>
|
|
|
+ <view v-if="!explain">我的答案:{{ast[bank.ques-1]}}</view>
|
|
|
+ </view>
|
|
|
+ <view class="pad_8 answerInfos">
|
|
|
+ <view class="answerTitle">答案解析</view>
|
|
|
+ <view class="answerContent">
|
|
|
+ <rich-text :nodes="bank.analysisContent"></rich-text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="bank.type == 2">
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template v-if="bank.type == 2">
|
|
|
+ <view class="pad_8 titBox no-margin">
|
|
|
<view v-if="!bank.ques">
|
|
|
<view v-for="(item, index) in bank.jsonStr" :key="index" class="lisSty" @click="checkboxSelect(item.optionsId,bankIndex,index)">
|
|
|
<view :class="{checked:item.checked}" class="activeTI">{{ ast[index] }}</view>
|
|
|
<view class="flex_auto">{{ item.content }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view v-if="!bank.ques" class="submit_checkbox" @click="checkboxSubmit(bankIndex)">
|
|
|
+ <view v-if="!bank.ques" class="submit_checkbox" :class="{disabled:!isCheckboxChecked(bank.jsonStr)}" @click="checkboxSubmit(bankIndex)">
|
|
|
确认答案
|
|
|
</view>
|
|
|
<view v-if="bank.ques">
|
|
|
@@ -66,25 +68,27 @@
|
|
|
<view class="flex_auto">{{ item.content }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view v-if="bank.ques">
|
|
|
- <view class="pad_8 answer">
|
|
|
- <view>正确答案:
|
|
|
- <text v-for="(ansItem,ansItemIndex) in bank.ans" :key="ansItemIndex">{{ast[ansItem-1]}}</text>
|
|
|
- </view>
|
|
|
- <view v-if="!explain">我的答案:
|
|
|
- <text v-for="(quesItem,quesItemIndex) in bank.ques" :key="quesItemIndex">{{ast[quesItem-1]}}</text>
|
|
|
- </view>
|
|
|
+ </view>
|
|
|
+ <view v-if="bank.ques">
|
|
|
+ <view class="pad_8 answer">
|
|
|
+ <view>正确答案:
|
|
|
+ <text v-for="(ansItem,ansItemIndex) in bank.ans" :key="ansItemIndex">{{ast[ansItem-1]}}</text>
|
|
|
</view>
|
|
|
- <view class="pad_8 answerInfos">
|
|
|
- <view class="answerTitle">答案解析</view>
|
|
|
- <view class="answerContent">
|
|
|
- <rich-text :nodes="bank.analysisContent"></rich-text>
|
|
|
- </view>
|
|
|
+ <view v-if="!explain">我的答案:
|
|
|
+ <text v-for="(quesItem,quesItemIndex) in bank.ques" :key="quesItemIndex">{{ast[quesItem-1]}}</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="bank.type == 3">
|
|
|
+ <view class="pad_8 answerInfos">
|
|
|
+ <view class="answerTitle">答案解析</view>
|
|
|
+ <view class="answerContent">
|
|
|
+ <rich-text :nodes="bank.analysisContent"></rich-text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template v-if="bank.type == 3">
|
|
|
+ <view class="pad_8 titBox no-margin">
|
|
|
<view v-if="!bank.ques">
|
|
|
<view v-for="(item, index) in judge" :key="index" class="lisSty" @click="judgeSelect(index,bankIndex)">
|
|
|
<view class="activeTI">{{ ast[index] }}</view>
|
|
|
@@ -97,23 +101,25 @@
|
|
|
{{ item }}
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view v-if="bank.ques">
|
|
|
- <view class="pad_8 answer">
|
|
|
- <view>正确答案:{{ast[bank.ans]}}</view>
|
|
|
- <view v-if="!explain">我的答案:{{ast[bank.ques]}}</view>
|
|
|
- </view>
|
|
|
- <view class="pad_8 answerInfos">
|
|
|
- <view class="answerTitle">答案解析</view>
|
|
|
- <view class="answerContent">
|
|
|
- <rich-text :nodes="bank.analysisContent"></rich-text>
|
|
|
- </view>
|
|
|
+ </view>
|
|
|
+ <view v-if="bank.ques">
|
|
|
+ <view class="pad_8 answer">
|
|
|
+ <view>正确答案:{{ast[bank.ans]}}</view>
|
|
|
+ <view v-if="!explain">我的答案:{{ast[bank.ques]}}</view>
|
|
|
+ </view>
|
|
|
+ <view class="pad_8 answerInfos">
|
|
|
+ <view class="answerTitle">答案解析</view>
|
|
|
+ <view class="answerContent">
|
|
|
+ <rich-text :nodes="bank.analysisContent"></rich-text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </template>
|
|
|
-
|
|
|
-
|
|
|
- <!-- 简答题 -->
|
|
|
- <template v-if="bank.type == 5">
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 简答题 -->
|
|
|
+ <template v-if="bank.type == 5">
|
|
|
+ <view class="pad_8 titBox">
|
|
|
<view class="ans">
|
|
|
<view class="ans_input" v-if="!bank.ques">
|
|
|
<view class="top flex">
|
|
|
@@ -139,26 +145,28 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view v-if="bank.ques">
|
|
|
- <view class="pad_8 answerInfos">
|
|
|
- <view class="answerTitle">答案解析:</view>
|
|
|
- <view class="answerContent">
|
|
|
- <rich-text :nodes="bank.analysisContent"></rich-text>
|
|
|
- </view>
|
|
|
+ </view>
|
|
|
+ <view v-if="bank.ques">
|
|
|
+ <view class="pad_8 answerInfos">
|
|
|
+ <view class="answerTitle">答案解析:</view>
|
|
|
+ <view class="answerContent">
|
|
|
+ <rich-text :nodes="bank.analysisContent"></rich-text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </template>
|
|
|
-
|
|
|
- <!-- 案例题 -->
|
|
|
- <template v-if="bank.type == 4">
|
|
|
- <view class="tabs">
|
|
|
- <view class="tab" :class="{current:tabIndex == bank.current}" :key="tabIndex" v-for="(tab,tabIndex) in bank.jsonStr" @click="tabSelect(tabIndex,bankIndex)">问题{{tabIndex}}</view>
|
|
|
- </view>
|
|
|
- <view v-for="(ansItem,ansIndex) in bank.jsonStr" v-if="bank.current == ansIndex" :key="ansIndex">
|
|
|
- <view class="titles">
|
|
|
- <rich-text :nodes="ansItem.content"></rich-text>
|
|
|
- </view>
|
|
|
- <template v-if="ansItem.type == 1">
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <!-- 案例题 -->
|
|
|
+ <template v-if="bank.type == 4">
|
|
|
+ <view class="tabs">
|
|
|
+ <view class="tab" :class="{current:tabIndex == bank.current}" :key="tabIndex" v-for="(tab,tabIndex) in bank.jsonStr" @click="tabSelect(tabIndex,bankIndex)">问题{{tabIndex}}</view>
|
|
|
+ </view>
|
|
|
+ <view v-for="(ansItem,ansIndex) in bank.jsonStr" v-if="bank.current == ansIndex" :key="ansIndex">
|
|
|
+ <template v-if="ansItem.type == 1">
|
|
|
+ <view class="pad_8 titBox">
|
|
|
+ <view class="titles">
|
|
|
+ <rich-text :nodes="ansItem.content"></rich-text>
|
|
|
+ </view>
|
|
|
<view v-if="!bank.ques[ansIndex]">
|
|
|
<view v-for="(option, childIndex) in ansItem.optionsList" :key="childIndex" class="lisSty" @click="radioSelectChild(option.optionsId,ansIndex,bankIndex)">
|
|
|
<view class="activeTI">{{ ast[childIndex] }}</view>
|
|
|
@@ -171,28 +179,33 @@
|
|
|
<rich-text :nodes="option.content"></rich-text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view v-if="bank.ques[ansIndex]">
|
|
|
- <view class="pad_8 answer">
|
|
|
- <view>正确答案:{{ast[bank.ans[ansIndex]-1]}}</view>
|
|
|
- <view v-if="!explain">我的答案:{{ast[bank.ques[ansIndex]-1]}}</view>
|
|
|
- </view>
|
|
|
- <view class="pad_8 answerInfos">
|
|
|
- <view class="answerTitle">答案解析</view>
|
|
|
- <view class="answerContent">
|
|
|
- <rich-text :nodes="option.analysisContent"></rich-text>
|
|
|
- </view>
|
|
|
+ </view>
|
|
|
+ <view v-if="bank.ques[ansIndex]">
|
|
|
+ <view class="pad_8 answer">
|
|
|
+ <view>正确答案:{{ast[bank.ans[ansIndex]-1]}}</view>
|
|
|
+ <view v-if="!explain">我的答案:{{ast[bank.ques[ansIndex]-1]}}</view>
|
|
|
+ </view>
|
|
|
+ <view class="pad_8 answerInfos">
|
|
|
+ <view class="answerTitle">答案解析</view>
|
|
|
+ <view class="answerContent">
|
|
|
+ <rich-text :nodes="option.analysisContent"></rich-text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="ansItem.type == 2">
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template v-if="ansItem.type == 2">
|
|
|
+ <view class="pad_8 titBox">
|
|
|
+ <view class="titles">
|
|
|
+ <rich-text :nodes="ansItem.content"></rich-text>
|
|
|
+ </view>
|
|
|
<view v-if="!bank.ques[ansIndex]">
|
|
|
<view v-for="(option, childindex) in ansItem.optionsList" :key="childindex" class="lisSty" @click="checkboxSelectChild(bankIndex,ansIndex,childindex)">
|
|
|
<view :class="{checked:option.checked}" class="activeTI">{{ ast[childindex] }}</view>
|
|
|
<rich-text :nodes="option.content"></rich-text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view v-if="!bank.ques[ansIndex]" class="submit_checkbox" @click="checkboxSubmitChild(bankIndex,ansIndex)">
|
|
|
+ <view v-if="!bank.ques[ansIndex]" class="submit_checkbox" :class="{disabled:!isCheckboxChecked(ansItem.optionsList)}" @click="checkboxSubmitChild(bankIndex,ansIndex)">
|
|
|
确认答案
|
|
|
</view>
|
|
|
<view v-if="bank.ques && bank.ques[ansIndex]">
|
|
|
@@ -201,25 +214,30 @@
|
|
|
<rich-text :nodes="option.content"></rich-text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view v-if="bank.ques[ansIndex]">
|
|
|
- <view class="pad_8 answer">
|
|
|
- <view>正确答案:
|
|
|
- <text v-for="(ansItem1,ansItemIndex1) in bank.ans[ansIndex]" :key="ansItemIndex1">{{ast[ansItem1-1]}}</text>
|
|
|
- </view>
|
|
|
- <view v-if="!explain">我的答案:
|
|
|
- <text v-for="(quesItem,quesItemIndex) in bank.ques[ansIndex]" :key="quesItemIndex">{{ast[quesItem-1]}}</text>
|
|
|
- </view>
|
|
|
+ </view>
|
|
|
+ <view v-if="bank.ques[ansIndex]">
|
|
|
+ <view class="pad_8 answer">
|
|
|
+ <view>正确答案:
|
|
|
+ <text v-for="(ansItem1,ansItemIndex1) in bank.ans[ansIndex]" :key="ansItemIndex1">{{ast[ansItem1-1]}}</text>
|
|
|
</view>
|
|
|
- <view class="pad_8 answerInfos">
|
|
|
- <view class="answerTitle">答案解析</view>
|
|
|
- <view class="answerContent">
|
|
|
- <rich-text :nodes="ansItem.analysisContent"></rich-text>
|
|
|
- </view>
|
|
|
+ <view v-if="!explain">我的答案:
|
|
|
+ <text v-for="(quesItem,quesItemIndex) in bank.ques[ansIndex]" :key="quesItemIndex">{{ast[quesItem-1]}}</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="ansItem.type == 3">
|
|
|
+ <view class="pad_8 answerInfos">
|
|
|
+ <view class="answerTitle">答案解析</view>
|
|
|
+ <view class="answerContent">
|
|
|
+ <rich-text :nodes="ansItem.analysisContent"></rich-text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template v-if="ansItem.type == 3">
|
|
|
+ <view class="pad_8 titBox">
|
|
|
+ <view class="titles">
|
|
|
+ <rich-text :nodes="ansItem.content"></rich-text>
|
|
|
+ </view>
|
|
|
<view v-if="!bank.ques[ansIndex]">
|
|
|
<view v-for="(option, childindex) in judge" :key="childindex" class="lisSty" @click="judgeSelectChild(ansIndex,childindex,bankIndex)">
|
|
|
<view class="activeTI">{{ ast[childindex] }}</view>
|
|
|
@@ -231,24 +249,31 @@
|
|
|
<text :class="{right:(childindex == bank.ques[ansIndex]) || (childindex == bank.ans[ansIndex]),wrong:(childindex == bank.ques[ansIndex]) && (bank.ques[ansIndex] != bank.ans[ansIndex])}" class="activeTI">{{ ast[childindex] }}</text>
|
|
|
{{ option }}
|
|
|
</view>
|
|
|
- </view>
|
|
|
- <view v-if="bank.ques[ansIndex]">
|
|
|
- <view class="pad_8 answer">
|
|
|
- <view>正确答案:{{ast[bank.ans[ansIndex]]}}</view>
|
|
|
- <view v-if="!explain">我的答案:{{ast[bank.ques[ansIndex]]}}</view>
|
|
|
- </view>
|
|
|
- <view class="pad_8 answerInfos">
|
|
|
- <view class="answerTitle">答案解析</view>
|
|
|
- <view class="answerContent">
|
|
|
- <rich-text :nodes="ansItem.analysisContent"></rich-text>
|
|
|
- </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view v-if="bank.ques[ansIndex]">
|
|
|
+ <view class="pad_8 answer">
|
|
|
+ <view>正确答案:{{ast[bank.ans[ansIndex]]}}</view>
|
|
|
+ <view v-if="!explain">我的答案:{{ast[bank.ques[ansIndex]]}}</view>
|
|
|
+ </view>
|
|
|
+ <view class="pad_8 answerInfos">
|
|
|
+ <view class="answerTitle">答案解析</view>
|
|
|
+ <view class="answerContent">
|
|
|
+ <rich-text :nodes="ansItem.analysisContent"></rich-text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </template>
|
|
|
-
|
|
|
-
|
|
|
- <!-- 简答题 -->
|
|
|
- <template v-if="ansItem.type == 5">
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 简答题 -->
|
|
|
+ <template v-if="ansItem.type == 5">
|
|
|
+ <view class="pad_8 titBox_title">
|
|
|
+ <view class="titles">
|
|
|
+ <rich-text :nodes="ansItem.content"></rich-text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="pad_8 titBox_title">
|
|
|
<view class="ans">
|
|
|
<view class="ans_input" v-if="!bank.ques[ansIndex]">
|
|
|
<view class="top flex">
|
|
|
@@ -274,22 +299,20 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view v-if="bank.ques[ansIndex]">
|
|
|
- <view class="pad_8 answerInfos">
|
|
|
- <view class="answerTitle">答案解析</view>
|
|
|
- <view class="answerContent">
|
|
|
- <rich-text :nodes="ansItem.analysisContent"></rich-text>
|
|
|
- </view>
|
|
|
+ </view>
|
|
|
+ <view v-if="bank.ques[ansIndex]">
|
|
|
+ <view class="pad_8 answerInfos">
|
|
|
+ <view class="answerTitle">答案解析</view>
|
|
|
+ <view class="answerContent">
|
|
|
+ <rich-text :nodes="ansItem.analysisContent"></rich-text>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </template>
|
|
|
-
|
|
|
-
|
|
|
- </view>
|
|
|
- </template>
|
|
|
-
|
|
|
-
|
|
|
- </view>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+
|
|
|
+
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
|
|
|
|
|
|
<view class="footer_btn">
|
|
|
@@ -358,7 +381,7 @@ export default {
|
|
|
uni.setStorageSync('showDialog','1');
|
|
|
}
|
|
|
|
|
|
- this.goodsQuestionList();
|
|
|
+ this.collectQuestionExamQuestionList();
|
|
|
},
|
|
|
onUnload() {
|
|
|
|
|
|
@@ -371,12 +394,12 @@ export default {
|
|
|
|
|
|
return bank.ansText.imageList.length == 0;
|
|
|
},
|
|
|
- goodsQuestionList() {
|
|
|
- this.$api.goodsQuestionList({
|
|
|
+ collectQuestionExamQuestionList() {
|
|
|
+ this.$api.collectQuestionExamQuestionList({
|
|
|
examId:this.id
|
|
|
}).then(res => {
|
|
|
|
|
|
- res.data.data.forEach((item,index) => {
|
|
|
+ res.data.rows.forEach((item,index) => {
|
|
|
if(typeof item.jsonStr == 'string') {
|
|
|
item.jsonStr = JSON.parse(item.jsonStr)
|
|
|
|
|
|
@@ -459,7 +482,7 @@ export default {
|
|
|
|
|
|
})
|
|
|
|
|
|
- this.questionList = res.data.data;
|
|
|
+ this.questionList = res.data.rows;
|
|
|
|
|
|
})
|
|
|
},
|
|
|
@@ -498,6 +521,14 @@ export default {
|
|
|
this.$set(this.questionList[bindex].jsonStr[ansIndex].optionsList[childIndex],'checked',!this.questionList[bindex].jsonStr[ansIndex].optionsList[childIndex].checked)
|
|
|
},
|
|
|
|
|
|
+ isCheckboxChecked(arr) {
|
|
|
+ return arr.some(item => {
|
|
|
+ if (item.checked) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
/**
|
|
|
* @param {Object} 多选确认
|
|
|
*/
|
|
|
@@ -511,6 +542,14 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+ if(!arr.length) {
|
|
|
+ uni.showToast({
|
|
|
+ title:'请选择答案',
|
|
|
+ icon:'none'
|
|
|
+ })
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
this.$set(this.questionList[bindex],'ques',arr)
|
|
|
|
|
|
},
|
|
|
@@ -528,6 +567,14 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+ if(!arr.length) {
|
|
|
+ uni.showToast({
|
|
|
+ title:'请选择答案',
|
|
|
+ icon:'none'
|
|
|
+ })
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
this.$set(this.questionList[bindex].ques,ansIndex,arr)
|
|
|
},
|
|
|
|
|
|
@@ -868,6 +915,10 @@ export default {
|
|
|
line-height: 80rpx;
|
|
|
font-size: 30rpx;
|
|
|
border-radius: 40rpx;
|
|
|
+
|
|
|
+ &.disabled {
|
|
|
+ opacity: 0.6;
|
|
|
+ }
|
|
|
}
|
|
|
.titles {
|
|
|
overflow: hidden;
|
|
|
@@ -877,18 +928,21 @@ export default {
|
|
|
padding: 41rpx 25rpx 24rpx 25rpx;
|
|
|
}
|
|
|
|
|
|
+.titBox_title {
|
|
|
+ padding: 21rpx;
|
|
|
+}
|
|
|
+
|
|
|
.tabs {
|
|
|
margin:10rpx;
|
|
|
display: flex;
|
|
|
.tab {
|
|
|
- margin:0 10rpx;
|
|
|
- width: 96rpx;
|
|
|
- height: 48rpx;
|
|
|
- line-height: 48rpx;
|
|
|
+ margin: 0 4rpx;
|
|
|
+ padding:10rpx 13rpx;
|
|
|
text-align: center;
|
|
|
- color:#007AFF;
|
|
|
+ color: #007aff;
|
|
|
font-size: 28rpx;
|
|
|
border-radius: 16rpx;
|
|
|
+ background:#fff;
|
|
|
|
|
|
&.current {
|
|
|
color:#fff;
|
|
|
@@ -1057,6 +1111,11 @@ export default {
|
|
|
background-color: #fff;
|
|
|
margin: 0rpx 8rpx 8rpx;
|
|
|
border-radius: 16rpx;
|
|
|
+
|
|
|
+ &.no-margin {
|
|
|
+ margin-top:-16rpx;
|
|
|
+ border-radius: 0 0 16rpx 16rpx;
|
|
|
+ }
|
|
|
}
|
|
|
.answer {
|
|
|
height: 80rpx;
|