304 lines
6.5 KiB
Vue
304 lines
6.5 KiB
Vue
<template>
|
||
<view class="fullHeight">
|
||
<headers>
|
||
<view class="headerName">
|
||
WiFi链接答题
|
||
</view>
|
||
</headers>
|
||
<view class="pageContent" v-if="answerStatus!=3">
|
||
<view class="questionTitle">
|
||
{{questionDetail.questionName}}({{questionDetail.questionType==1?'单选':'多选'}})
|
||
</view>
|
||
<view class="optionList">
|
||
<view class="item" :class="{'mySelect': answerStatus==1,'correct':answerStatus == 2 && correctOptionArr.indexOf(item.optionId)!=-1, 'error':answerStatus == 2 && correctOptionArr.indexOf(item.optionId)==-1 && selectOptArr.indexOf(item.optionId)!=-1&&correctOptionArr.indexOf(item.optionId)==-1}" v-for="(item,index) in questionDetail.optionList" @click="selectOpt(item)">
|
||
<text class="index">{{indexList[index]}}</text><text class="name">{{item.optionName}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="" v-if="answerStatus==2">
|
||
<view class="answerTxt">
|
||
正确答案:{{correctOption}}
|
||
</view>
|
||
<view class="analysisBox">
|
||
<view class="title">
|
||
试题解析:
|
||
</view>
|
||
<view class="content">
|
||
{{questionDetail.questionAnalysis}}
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="fixedBtn" @click="answerFn">
|
||
{{answerStatus==1?'提交':'重新答题'}}
|
||
</view>
|
||
</view>
|
||
<view class="successBox" v-else>
|
||
<image src="/static/wifi.png" class="wifiImg"></image>
|
||
<view class="txt1">
|
||
上网成功
|
||
</view>
|
||
<!-- <view class="txt2">
|
||
恭喜您回答正确,<text class="num">3</text>秒自动返回桌面
|
||
</view> -->
|
||
</view>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
answerStatus:1,// 1 正在答题 2 答题错误 3 答题成功
|
||
devSn:'45345235',
|
||
indexList: [
|
||
"A",
|
||
"B",
|
||
"C",
|
||
"D",
|
||
"E",
|
||
"F",
|
||
"G",
|
||
"H",
|
||
"I",
|
||
"J",
|
||
"K",
|
||
"L",
|
||
"N",
|
||
"M",
|
||
"O",
|
||
"P",
|
||
"Q",
|
||
"R",
|
||
"S",
|
||
"T",
|
||
"U",
|
||
"V",
|
||
"W",
|
||
"X",
|
||
"Y",
|
||
"Z",
|
||
],
|
||
questionDetail:{
|
||
libraryId: '',
|
||
optionList: [],
|
||
questionAnalysis: "",
|
||
questionId: '',
|
||
questionName: "",
|
||
questionType: 1
|
||
},
|
||
correctOption:'',
|
||
correctOptionArr:[],
|
||
selectOptArr:[]
|
||
}
|
||
},
|
||
onLoad(options){
|
||
// this.devSn=options.devSn
|
||
this.getQuestion()
|
||
},
|
||
methods: {
|
||
//添加回答记录
|
||
addAnswerRecord(){
|
||
let json = {
|
||
devSn:this.devSn,
|
||
answerType:this.answerStatus==3?1:2,
|
||
questionId:this.questionDetail.questionId,
|
||
answerOption:this.selectOptArr.join(',')
|
||
}
|
||
this.sendRequest({
|
||
url: "xmgl/wirelessEducationQuestionAnswer/add",
|
||
data: json,
|
||
method: "post",
|
||
success:(res)=> {
|
||
|
||
}
|
||
})
|
||
},
|
||
answerFn(){
|
||
if(this.answerStatus==1){
|
||
if(this.selectOptArr.length==this.correctOptionArr.length){
|
||
if(this.selectOptArr.length==1){
|
||
if(this.selectOptArr[0]==this.correctOptionArr[0]){
|
||
this.answerStatus=3
|
||
}else{
|
||
this.answerStatus=2
|
||
}
|
||
}else{
|
||
this.selectOptArr.sort(function(a,b){
|
||
return a-b
|
||
})
|
||
let onoff = false
|
||
this.selectOptArr.forEach((item,index)=>{
|
||
if(item!=this.correctOptionArr[index]){
|
||
onoff=true
|
||
}
|
||
})
|
||
if(onoff){
|
||
this.answerStatus=2
|
||
}else{
|
||
this.answerStatus=3
|
||
}
|
||
}
|
||
}else{
|
||
this.answerStatus=2
|
||
}
|
||
this.addAnswerRecord()
|
||
}else{
|
||
this.selectOptArr=[]
|
||
this.answerStatus=1
|
||
}
|
||
},
|
||
colorClass(item){
|
||
if(this.answerStatus==1){
|
||
if(this.selectOptArr.indexOf(item.optionId)!=-1){
|
||
return 'mySelect'
|
||
}else{
|
||
return ''
|
||
}
|
||
}else if(this.answerStatus==2){
|
||
if(this.correctOptionArr.indexOf(item.optionId)!=-1){
|
||
return 'correct'
|
||
}else{
|
||
// for (var i = 0; i < this.selectOptArr.length; i++) {
|
||
// this.selectOptArr[i]
|
||
// }
|
||
if(this.selectOptArr.indexOf(item.optionId)!=-1&&this.correctOptionArr.indexOf(item.optionId)==-1){
|
||
return 'error'
|
||
}
|
||
}
|
||
}
|
||
|
||
},
|
||
selectOpt(item){
|
||
if(this.questionDetail.questionType==1){
|
||
this.selectOptArr=[item.optionId]
|
||
}else{
|
||
let i = this.selectOptArr.indexOf(item.optionId)
|
||
if(i==-1){
|
||
this.selectOptArr.push(item.optionId)
|
||
}else{
|
||
this.selectOptArr.splice(i,1)
|
||
}
|
||
|
||
}
|
||
console.log(this.selectOptArr)
|
||
},
|
||
//通过设备编号随机抽取一道试题
|
||
getQuestion(){
|
||
this.sendRequest({
|
||
url: "xmgl/wirelessEducationQuestionSubject/getDeviceRandomEducationQuestion",
|
||
data: {devSn:this.devSn},
|
||
method: "post",
|
||
success:(res)=> {
|
||
if(res.result){
|
||
this.questionDetail=res.result
|
||
let arr = this.questionDetail.optionList
|
||
for (var i = 0; i < arr.length; i++) {
|
||
if(arr[i].correctType==1){
|
||
this.correctOption+=this.indexList[i]
|
||
this.correctOptionArr.push(arr[i].optionId)
|
||
}
|
||
}
|
||
}
|
||
}
|
||
})
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style scoped lang="scss">
|
||
.pageContent{
|
||
padding-bottom: 80px;
|
||
}
|
||
.questionTitle{
|
||
color: rgba(51, 51, 51, 0.8);
|
||
font-size: 30rpx;
|
||
margin: 40rpx 30rpx;
|
||
}
|
||
.optionList{
|
||
margin: 40rpx 30rpx;
|
||
.item{
|
||
border-radius: 4rpx;
|
||
background-color: rgba(216, 216, 216, 0.12);
|
||
min-height: 60rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
padding: 20rpx 30rpx;
|
||
margin-bottom: 30rpx;
|
||
color: rgba(51, 51, 51, 100);
|
||
border: 1px solid rgba(216, 216, 216, 0.12);
|
||
font-size: 30rpx;
|
||
.index{
|
||
margin-right: 40rpx;
|
||
}
|
||
&.mySelect{
|
||
border-color: rgba(18, 127, 236, 1);
|
||
color: rgba(18, 127, 236, 1);
|
||
}
|
||
&.correct{
|
||
background-color: #2CC776;
|
||
border-color: #2CC776;
|
||
color: #FFFFFF;
|
||
}
|
||
&.error{
|
||
background-color: #F07023;
|
||
border-color: #F07023;
|
||
color: #FFFFFF;
|
||
}
|
||
}
|
||
}
|
||
|
||
.answerTxt{
|
||
color: rgba(44, 199, 118, 100);
|
||
font-size: 30rpx;
|
||
margin: 0 30rpx;
|
||
}
|
||
.analysisBox{
|
||
margin: 0 30rpx;
|
||
color: rgba(42, 46, 63, 100);
|
||
.title{
|
||
font-size: 30rpx;
|
||
margin: 30rpx 0 16rpx;
|
||
}
|
||
.content{
|
||
opacity: 0.8;
|
||
font-size: 30rpx;
|
||
}
|
||
}
|
||
.successBox{
|
||
position: fixed;
|
||
top: 50%;
|
||
left: 50%;
|
||
transform: translate(-50%,-50%);
|
||
text-align: center;
|
||
.txt1{
|
||
color: rgba(99, 217, 140, 0.8);
|
||
font-size: 48rpx;
|
||
margin: 20rpx auto 7px;
|
||
}
|
||
.txt2{
|
||
color: rgba(42, 46, 63, 0.6);
|
||
font-size: 28rpx;
|
||
}
|
||
.num{
|
||
color: rgba(99, 217, 140, 100);
|
||
}
|
||
}
|
||
.wifiImg{
|
||
width: 224rpx;
|
||
height: 204rpx;
|
||
}
|
||
.fixedBtn{
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100rpx;
|
||
line-height: 100rpx;
|
||
font-size: 30rpx;
|
||
color: white;
|
||
background-color: rgba(18, 127, 236, 1);
|
||
text-align: center;
|
||
}
|
||
</style>
|