You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
185 lines
4.8 KiB
185 lines
4.8 KiB
<template>
|
|
<view class="whole">
|
|
<view style="height: 36rpx;"></view>
|
|
|
|
<view class="topic" v-for="(item,index) in quantityArr" :key="index" v-show="quantity == index">
|
|
<view class="dis_style">
|
|
<view class="title_icon">{{index + 1}}</view>
|
|
<view class="title_con" v-if="item.question_content_type === 'text'">{{item.question_content}}?</view>
|
|
</view>
|
|
<view class="dis_style">
|
|
<view class="title_con" style="margin: auto;" v-if="item.question_content_type === 'image'">
|
|
<img style="width: 300rpx;height: 300rpx;" :src="item.question_content" mode="aspectFit">
|
|
</view>
|
|
</view>
|
|
<view style="line-height: 60rpx;margin-top: 16rpx;">
|
|
<fui-radio-group name="radio" v-model="optionList[index]">
|
|
<fui-checkbox-group name="checkbox" v-model="optionList[index]">
|
|
<view class="title_con title_font" style="display: flex;align-items: center;" v-for="(item_option,index_option) in item.option_json" :key="index_option">
|
|
<view style="display: flex;align-items: center;">
|
|
<fui-radio :value="item_option.option" v-if="item.question_type != 'multiple_choice'"></fui-radio>
|
|
<fui-checkbox :value="item_option.option" v-if="item.question_type == 'multiple_choice'"></fui-checkbox>
|
|
</view>
|
|
<view>{{item_option.option}}. {{item_option.option_content}}</view>
|
|
</view>
|
|
</fui-checkbox-group>
|
|
</fui-radio-group>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="progress_bar">
|
|
<fui-progress :percent="number_progress" background="#ddd" activeColor="#00bfa5" height="10"></fui-progress>
|
|
</view>
|
|
|
|
<view class="switch_style">
|
|
<view class="dis_style" style="color: #3e94ed;font-size: 30rpx;">
|
|
<view @click="previous_question">上一题</view>
|
|
<view style="margin-left: 20rpx;" @click="next_question">下一题</view>
|
|
</view>
|
|
<view class="sub_style" @click="submit">
|
|
提交试卷
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
<script>
|
|
import apiRoute from '@/api/apiRoute.js';
|
|
export default {
|
|
data() {
|
|
return {
|
|
quantity: 0,
|
|
quantityArr: [1,2,3,4],
|
|
number_progress: 0,
|
|
testPaperId: 0,
|
|
optionList: [],
|
|
zid: 0
|
|
}
|
|
},
|
|
onLoad(options) {
|
|
if(options.id){
|
|
this.testPaperId = options.id;
|
|
}
|
|
if(options.zid){
|
|
this.zid = options.zid;
|
|
}
|
|
console.log(this.testPaperId, 999)
|
|
this.init()
|
|
},
|
|
methods: {
|
|
async init() {
|
|
const res = await apiRoute.getTeachingTestPaper({exam_papers_id: this.testPaperId});
|
|
if(res.code === 1) {
|
|
this.quantityArr = res.data.resText
|
|
this.number_progress = (Math.round(100 / res.data.count) * ( this.quantity + 1));
|
|
}
|
|
},
|
|
previous_question() {
|
|
if(this.quantity <= 0){
|
|
uni.showToast({
|
|
title: '已经是第一题了',
|
|
icon: 'none'
|
|
})
|
|
return
|
|
} else {
|
|
this.quantity--
|
|
}
|
|
this.number_progress = (Math.round(100 / this.quantityArr.length) * ( this.quantity + 1));
|
|
},
|
|
next_question() {
|
|
if((this.quantity + 1) >= this.quantityArr.length){
|
|
uni.showToast({
|
|
title: '已经是最后一题了',
|
|
icon: 'none'
|
|
})
|
|
return
|
|
} else {
|
|
this.quantity++
|
|
}
|
|
this.number_progress = (Math.round(100 / this.quantityArr.length) * ( this.quantity + 1));
|
|
},
|
|
async submit() {
|
|
this.optionList.forEach((item,index) => {
|
|
if (Array.isArray(item)) {
|
|
this.optionList[index] = item.join(',')
|
|
}
|
|
})
|
|
const res = await apiRoute.submitTestPaper({optionList: this.optionList,testPaperId: this.testPaperId, id: this.zid});
|
|
if(res.code === 1) {
|
|
uni.navigateTo({
|
|
url: '/pages/coach/my/exam_results?error=' + res.data.error + '&success=' + res.data.success + '&num=' + res.data.num
|
|
})
|
|
} else {
|
|
uni.showToast({
|
|
title: res.msg,
|
|
icon: 'none'
|
|
})
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
.whole{
|
|
width: 100%;
|
|
height: 100vh;
|
|
background-color: #171717;
|
|
}
|
|
.topic{
|
|
width: 95%;
|
|
height: auto;
|
|
background-color: #2d2d2d;
|
|
border: #3e91e8 4rpx solid;
|
|
border-radius: 16rpx;
|
|
padding: 26rpx;
|
|
margin: auto;
|
|
}
|
|
.dis_style{
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
.title_icon{
|
|
width: 60rpx;
|
|
height: 60rpx;
|
|
border-radius: 50rpx;
|
|
background-color: #00bfa5;
|
|
font-size: 26rpx;
|
|
color: #fff;
|
|
font-weight: bold;
|
|
text-align: center;
|
|
line-height: 60rpx;
|
|
}
|
|
.title_con{
|
|
margin-left: 16rpx;
|
|
font-size: 26rpx;
|
|
color: #fff;
|
|
}
|
|
.title_font{
|
|
font-size: 30rpx;
|
|
}
|
|
.progress_bar{
|
|
width: 95%;
|
|
margin: 36rpx auto;
|
|
}
|
|
.switch_style{
|
|
width: 95%;
|
|
height: auto;
|
|
padding: 26rpx;
|
|
background-color: #2d2d2d;
|
|
border-radius: 16rpx;
|
|
margin: auto;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
.sub_style{
|
|
font-size: 32rpx;
|
|
padding: 15rpx 30rpx;
|
|
border-radius: 30rpx;
|
|
color: #000;
|
|
font-weight: bold;
|
|
text-align: center;
|
|
background-color: #35a3f0;
|
|
}
|
|
</style>
|
|
|