<template>
|
<view class="box">
|
<view class="box_bgimage" :style="{backgroundImage: 'url(' + bg + ')'}">
|
<text class="box_bgimage_a">{{ title }}</text>
|
<text class="box_bgimage_b">{{ content }}</text>
|
</view>
|
<view class="box_list">
|
<view class="box_list_answer" v-if="list && list.length > 0">
|
<!-- 判断 -->
|
<!-- <template v-if="list[i].type === 0">
|
<view class="box_list_answer_item" v-for="(item, index) in list[i].options" :key="index" @click="select(index)">
|
<image src="@/static/video_error@2x.png" v-if="success && problemIndex === index" />
|
<image src="@/static/video@2x.png" v-else-if="!String(problemIndex) || problemIndex !== index" />
|
<image src="@/static/video_sel@2x.png" v-else-if="problemIndex === index" />
|
<text style="color: rgba(237, 69, 69, 1)" v-if="success && problemIndex === index">{{item.code}}</text>
|
<text v-else-if="!String(problemIndex) || problemIndex !== index">{{item.code}}</text>
|
<text style="color: rgba(2, 94, 239, 1)" v-else-if="problemIndex === index">{{item.code}}</text>
|
</view>
|
</template> -->
|
<!-- 单选 -->
|
<view v-for="(item,index) in list" :key="index" class="list_item">
|
<template v-if="item.type == 1">
|
<view class="box_list_answer_name">
|
{{index + 1}}、{{item.title}}<text style="color:#ED4545;">*</text>
|
</view>
|
<view class="box_list_answer_item" v-for="(line, lIndex) in item.options" :key="lIndex" @click="select(line, index)">
|
<image src="@/static/video@2x.png" v-if="!item.selAnswer || item.selAnswer !== line.code" />
|
<image src="@/static/video_sel@2x.png" v-if="item.selAnswer && item.selAnswer == line.code && item.answer === item.selAnswer" />
|
<image src="@/static/video_error@2x.png" v-if="item.selAnswer && item.selAnswer == line.code && item.answer !== item.selAnswer" />
|
<text v-if="!item.selAnswer"><text class="mr24">{{line.code}}</text> {{line.value}}</text>
|
<text v-if="item.selAnswer && item.answer === item.selAnswer" style="color: rgba(2, 94, 239, 1)" ><text class="mr24" style="color: rgba(2, 94, 239, 1)">{{line.code}}</text> {{line.value}}</text>
|
<text v-if="item.selAnswer && item.answer !== item.selAnswer" style="color: rgba(237, 69, 69, 1)" ><text class="mr24" style="color: rgba(237, 69, 69, 1)">{{line.code}}</text> {{line.value}}</text>
|
</view>
|
<view class="box_list_answer_tips" v-if="item.selAnswer && item.answer !== item.selAnswer">
|
<image src="@/static/ic_wrong@2x.png" />
|
<text>回答错误</text>
|
</view>
|
<view class="box_list_answer_tips" v-if="item.selAnswer && item.answer === item.selAnswer">
|
<image src="@/static/meeting/icon/ic_choose_sel@2x.png" />
|
<text>回答正确</text>
|
</view>
|
</template>
|
</view>
|
<view class="empty"></view>
|
<view class="box_list_answer_btn" @click="next()">提交</view>
|
<!-- 多选 -->
|
<!-- <template v-else-if="list[i].type === 2">
|
<view class="box_list_answer_item" v-for="(item, index) in list[i].options" :key="index"
|
@click="selectMultiple(item.code)">
|
<image src="@/static/checkbox_wrong@2x.png"
|
v-if="success && multiple.toString().indexOf(item.code) !== -1" />
|
<image src="@/static/checkbox@2x.png"
|
v-else-if="!multiple || multiple.toString().indexOf(item.code) === -1" />
|
<image src="@/static/checkbo1x_sel@2x.png"
|
v-else-if="multiple.toString().indexOf(item.code) !== -1" />
|
<text style="color: rgba(237, 69, 69, 1)"
|
v-if="success && multiple.toString().indexOf(item.code) !== -1">{{item.code}} {{item.value}}</text>
|
<text v-else-if="!multiple || multiple.toString().indexOf(item.code) === -1">{{item.code}} {{item.value}}</text>
|
<text style="color: rgba(2, 94, 239, 1)"
|
v-else-if="multiple.toString().indexOf(item.code) !== -1">{{item.code}} {{item.value}}</text>
|
</view>
|
</template> -->
|
</view>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import { getProblemsVO, getSystemDictData } from '@/api'
|
export default {
|
name: 'answer',
|
|
data() {
|
return {
|
list: [],
|
bg: require("@/static/banner_dati.jpg"),
|
title: '',
|
content: ''
|
}
|
},
|
|
onLoad() {
|
this.getProblems()
|
this.getInfo()
|
},
|
|
methods: {
|
getInfo() {
|
// title
|
getSystemDictData({
|
dictCode: 'SYSTEM',
|
label: 'THEME'
|
}).then(res => {
|
if (res.code === 200) {
|
this.title = res.data.code
|
}
|
})
|
// this.$u.api.getSystemDictData({
|
getSystemDictData({
|
dictCode: 'SYSTEM',
|
label: 'DESCRIPTION'
|
}).then(res => {
|
if (res.code === 200) {
|
this.content = res.data.code
|
}
|
})
|
},
|
getProblems() {
|
getProblemsVO({ useType: 1 })
|
.then(res => {
|
if (res.code === 200) {
|
res.data.forEach(item => {
|
// 判断
|
if (item.type === 0) {
|
item.options = [{ code: '正确', value: '正确' },{ code: '错误', value: '错误' }]
|
}
|
// 单选/多选
|
if (item.type === 1 || item.type === 2) {
|
item.options = JSON.parse(item.options)
|
}
|
item.status = '0'
|
item.selAnswer = null
|
})
|
console.log('options', res.data);
|
this.list = res.data
|
}
|
// res.param.problemsDOList.forEach(item => {
|
// item.options = JSON.parse(item.options)
|
// })
|
// this.list = res.param.problemsDOList
|
// console.log(this.list)
|
})
|
},
|
// 单选选择中题目
|
select(line, i) {
|
this.list.forEach((item,index)=>{
|
if(index === i){
|
item.selAnswer = line.code
|
}
|
})
|
// this.problemIndex = index
|
},
|
sort(arr) {
|
arr.sort(function(a, b) {
|
return a.localeCompare(b)
|
})
|
},
|
// 多选
|
selectMultiple(key) {
|
if (!this.multiple) {
|
this.multiple = key
|
return
|
}
|
let arr = this.multiple.split(',')
|
if (this.multiple.indexOf(key) !== -1) {
|
arr.forEach((item, index) => {
|
if (key === item) {
|
arr.splice(index, 1)
|
}
|
})
|
this.sort(arr)
|
this.multiple = arr.join(',')
|
} else {
|
arr.push(key)
|
this.sort(arr)
|
this.multiple = arr.join(',')
|
}
|
},
|
// 下一题
|
next() {
|
uni.navigateTo({
|
url: `/pages/userinfo/userinfo?userAnswerId=${1}`
|
})
|
return
|
if (this.list[this.i].type === 0 || this.list[this.i].type === 1) {
|
if (!String(this.problemIndex)) return
|
if (this.list[this.i].answer === this.list[this.i].options[this.problemIndex].code) {
|
this.success = false
|
this.problemIndex = null
|
this.i += 1
|
} else {
|
this.success = true
|
}
|
} else {
|
if (!this.multiple) return
|
if (this.list[this.i].answer === this.multiple) {
|
this.success = false
|
this.multiple = null
|
this.i += 1
|
} else {
|
this.success = true
|
}
|
}
|
if (this.i + 1 > this.list.length) {
|
let arr = []
|
this.list.forEach(item => {
|
arr.push({ id: item.id, answer: item.answer })
|
})
|
this.$u.api.finishAnswer({
|
content: JSON.stringify(arr),
|
openId: this.$store.state.openId,
|
useType: 1
|
}).then(res => {
|
if (res.code === 200) {
|
uni.navigateTo({
|
url: `/pages/userinfo/userinfo?userAnswerId=${res.data}`
|
})
|
}
|
})
|
}
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
.box {
|
width: 100%;
|
height: 100vh;
|
background: #025EEF;
|
.box_bgimage {
|
width: 100%;
|
padding: 0 40rpx;
|
box-sizing: border-box;
|
height: 223rpx;
|
display: flex;
|
flex-direction: column;
|
align-items: flex-start;
|
justify-content: center;
|
background-repeat: no-repeat;
|
background-size: cover;
|
.box_bgimage_a {
|
font-size: 54rpx;
|
font-weight: bold;
|
color: #FFFFFF;
|
text-shadow: 0rpx 4rpx 8rpx rgba(0, 0, 0, 0.19);
|
}
|
.box_bgimage_b {
|
font-size: 26rpx;
|
font-weight: 400;
|
color: #FFFFFF;
|
text-shadow: 0rpx 2rpx 4rpx rgba(0, 0, 0, 0.24);
|
margin-top: 18rpx;
|
}
|
}
|
.box_list {
|
width: 100%;
|
height: calc(100vh - 253rpx);
|
padding: 0 30rpx 30rpx 30rpx;
|
box-sizing: border-box;
|
.box_list_answer {
|
width: 100%;
|
height: 100%;
|
overflow-y: auto;
|
background: #FFFFFF;
|
border-radius: 16rpx;
|
padding: 30rpx;
|
box-sizing: border-box;
|
position: relative;
|
.box_list_answer_name {
|
font-size: 30rpx;
|
font-weight: 400;
|
color: #222222;
|
margin-bottom: 32rpx;
|
}
|
.box_list_answer_tips {
|
width: 100%;
|
padding: 22rpx 30rpx;
|
box-sizing: border-box;
|
background: #F7F7F7;
|
border-radius: 8rpx;
|
display: flex;
|
align-items: center;
|
margin-bottom: 24rpx;
|
image {
|
width: 28rpx;
|
height: 28rpx;
|
}
|
text {
|
font-size: 28rpx;
|
font-weight: 400;
|
color: #E42D2D;
|
margin-left: 16rpx;
|
}
|
}
|
}
|
.list_item{
|
margin-bottom: 24rpx;
|
}
|
.box_list_answer_item {
|
width: 100%;
|
display: flex;
|
align-items: center;
|
margin-bottom: 30rpx;
|
image {
|
width: 36rpx;
|
height: 36rpx;
|
margin-right: 20rpx;
|
}
|
text {
|
font-size: 28rpx;
|
font-weight: 400;
|
color: #333333;
|
}
|
}
|
.des {
|
background: #CCCCCC !important;
|
border: none !important;
|
}
|
.empty{
|
height: 160rpx;
|
width: 100%;
|
}
|
.box_list_answer_btn {
|
position: fixed;
|
bottom: 140rpx;
|
left: 60rpx;
|
width: 630rpx;
|
height: 88rpx;
|
line-height: 88rpx;
|
text-align: center;
|
background: #025EEF;
|
box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(2, 94, 239, 0.3);
|
border-radius: 44rpx;
|
font-size: 30rpx;
|
font-weight: 500;
|
color: #FFFFFF;
|
}
|
}
|
}
|
</style>
|