耀实惠小程序
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.
 
 
 

236 lines
5.1 KiB

<template>
<view>
<!-- 视频 -->
<view class="video_box">
<!-- 富文本解析 -->
<rich-text :nodes='top_detalt.article'></rich-text>
<!-- <u-parse :html="items.article" ></u-parse> -->
</view>
<!-- 题目 -->
<view class="topic_box">
<view class="title_box">
<text class="title">{{unm_index+1}}{{list[unm_index].subject}}</text>
<view class="topic_num">
<text>({{unm_index+1}}/{{num_sum}})</text>
</view>
</view>
<!-- 奖励多少 暂未修改 -->
<!-- <text>奖励xx元兑购金</text> -->
<view class="select_answer">
<view :class="index == list[unm_index].select? 'item select_item ': 'item'" class="item"
v-for="(item,index) in list[unm_index].answers" @click="select_option(index)">
<text>{{item}}</text>
</view>
</view>
<button v-if="unm_index+1 != num_sum" class="next" @click="next_">下一题</button>
<button v-else class="submit next" @click="submit_">提交</button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
unm_index: 0, //当前题目数
num_sum: null, // 总题目数
id: null,
list: [],
top_detalt: {},
}
},
onLoad(options) {
this.id = options.id;
this.getAnswerDetale();
this.getSubjectList();
},
methods: {
getAnswerDetale(){
this.$api('answerDetale',{anWerReqId: this.id}).then( res => {
let { code, result, message} = res;
if(code == 200) {
console.log(result);
this.top_detalt = result;
}else{
this.$Toast(err.message);
}
}).catch(err => {
this.$Toast(err.message);
})
},
getSubjectList(){
this.$api('getSubjectList',{anWerReqId: this.id}).then( res => {
let { code, result, message} = res;
if(code == 200) {
console.log(result);
const list = result;
list.forEach((item,index) =>{
list[index].select = null;
list[index].answers = item.answers.split(",")
})
console.log(list)
this.list = list;
this.num_sum = result.length;
}else{
this.$Toast(err.message);
}
}).catch(err => {
this.$Toast(err.message);
})
},
// 用户选择那个
select_option(index) {
// 将选择的项写入数据
this.list[this.unm_index].select = index;
console.log(this.list);
},
// 下一题
next_() {
// 判断当前题目有没有选择
const isPass = this.isSelect();
if (isPass == 0) return;
// 已经做出选择
this.unm_index += 1
},
// 判断当前题目有没有选择
isSelect() {
if (this.list[this.unm_index].select == null) {
uni.showToast({
title: "请做出您的选择!",
icon: "none"
})
return 0
}
return 1
},
// 提交显示
submit_() {
// 判断当前题目有没有选择
const isPass = this.isSelect();
if (isPass == 0) return;
// 提交
const answer = [];
const answerArray = ['A','B','C','D']
this.list.forEach((item,index) =>{
answer.push({
id: item.id,
name: answerArray[item.select]
});
})
this.$api('getanswerGo',{json:JSON.stringify(answer),id:this.id}).then(res =>{
let { code, result, message} = res;
if(code == 200) {
// num 对的数目 sum 总题目数 integer 兑购
if(result.num ==0) {
// 失败
this.$tools.navigateTo({
url: "../fail/fail"
})
}else {
this.$tools.navigateTo({
url: `../success/success?num=${result.num}&integer=${result.integer}`
})
}
console.log(result)
}else{
this.$Toast(message)
}
}).catch(err => {
this.$Toast(err.message)
})
// const math = Math.random();
// console.log(math)
// if(math>0.5) {
// uni.navigateTo({
// url: "pagesC/success/success"
// })
// }else {
// uni.navigateTo({
// url: "../fail/fail"
// })
// }
},
}
}
</script>
<style lang="scss" scoped>
.video_box {
margin-top: 20rpx;
display: flex;
justify-content: center;
.video_ {
width: 690rpx;
}
}
.topic_box {
width: 710rpx;
margin: 37rpx auto 0;
padding-bottom: 16rpx;
box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);
.title_box {
padding-top: 33rpx;
margin-left: 37rpx;
display: flex;
justify-content: space-between;
font-size: 30rpx;
.title {
font-weight: bold;
color: #000;
}
.topic_num {
color: #01AEEA;
margin-right: 15rpx;
}
}
.select_answer {
.item {
width: 536rpx;
max-width: 600rpx;
height: 76rpx;
font-size: 30rpx;
border: 3rpx solid #ECECEC;
margin-top: 30rpx;
margin-left: 43rpx;
border-radius: 12rpx;
display: flex;
align-items: center;
color: #707070;
text {
padding-left: 28rpx;
}
}
.select_item {
border-color: #01AEEA;
color: #01AEEA;
}
}
}
.next,
.submit{
width: 463rpx;
height: 94rpx;
border-radius: 45rpx;
margin-top: 30rpx;
background-color: #01AEEA;
font-size: 28rpx;
font-weight: bold;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
}
</style>