船员公众号
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.
 
 
 
 
 

277 lines
8.3 KiB

<template>
<view class="complete">
<view class="complete-con">
<view class="complete-con-tit">
{{title}}
<view class="complete-con-card" @click="viewCard" v-if="type == 0 || type == 2 || type == 99 ">答题卡</view>
</view>
<view class="complete-con-progress">
<l-circle v-model:current="score" :percent="score">
<text>{{score}}</text>
</l-circle>
</view>
<view class="complete-con-section">
<view class="sec">
<image :src="staticUrl('/static/complete-01.png')"></image>
<view class="txt">
正确率
<text>{{score}}%</text>
</view>
</view>
<view class="sec">
<image :src="staticUrl('/static/complete-02.png')"></image>
<view class="txt">
完成时间
<text>{{use_time?use_time:'00:00:00'}}</text>
</view>
</view>
</view>
</view>
<view class="complete-btns">
<view class="btn btn-1">
<image :src="staticUrl('/static/complete-03.png')"></image>
分享给朋友
<button open-type="share"></button>
</view>
<view class="btn btn-2" @click="openPage()">
<image :src="staticUrl('/static/complete-04.png')"></image>
继续刷题
</view>
</view>
<pop-card :showPop="showCard" :successNum="correct_num" :errorNum="error_num" :list="cardList" @selItem="selCardItem" @close="showCard = false"></pop-card>
</view>
</template>
<script>
export default {
data() {
return {
modelVale: 20,
score: 0,
error_num: 0,
times: 10 * 1000,
use_time: "",
title: "'",
img: "",
showCard: false,
correct_num: 0,
list: [],
cardList:[],
type: null,
logId: null,
}
},
onLoad(o) {
this.img = uni.getStorageSync("shareImg1");
this.score = o.score;
this.error_num = o.error_num;
this.correct_num = o.correct_num;
this.use_time = decodeURIComponent(o.use_time);
this.title = uni.getStorageSync("categoryTitle")
this.type = o.type
this.logId = o.logId
console.log(this.title)
if(this.type == 0 || this.type == 2 || this.type == 99) {
this.questionLogInfo()
}
},
mounted() {
// this.$refs.down.start();
},
methods: {
openPage() {
uni.switchTab({
url: "/pages/question/index"
})
},
viewCard() {
this.showCard = true
},
selCardItem(index) {
this.showCard = false
uni.navigateTo({
url: "/pages/exercises/answerCard/answerCard?index="+index + "&error_num="+this.error_num +"&correct_num="+ this.correct_num,
})
},
async questionLogInfo() {
uni.showLoading({
title: "加载中"
})
const { code, data, msg } = await this.$api.questionLogInfo({
log_id: this.logId?this.logId:0
})
if (code == 200) {
uni.hideLoading();
this.cardList = data
uni.setStorageSync("cardList", JSON.stringify(data))
}else{
uni.hideLoading();
uni.showToast({
icon: "none",
title: msg
})
}
}
},
/**
* 分享当前页面
*/
onShareAppMessage() {
return {
title: this.title,
imageUrl: this.img,
path: "/pages/question/index"
}
},
/**
* 分享到朋友圈
* 本接口为 Beta 版本,暂只在 Android 平台支持,详见分享到朋友圈 (Beta)
* https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share-timeline.html
*/
onShareTimeline() {
return {
title: this.title,
imageUrl: this.img,
path: "/pages/question/index"
}
}
}
</script>
<style lang="scss" scoped>
.complete {
width: 100%;
min-height: calc(100vh - 44px);
background-color: #f6f6f6;
padding: 0 25rpx 25rpx;
overflow: hidden;
box-sizing: border-box;
&-con {
padding: 40rpx 20rpx;
overflow: hidden;
border-radius: 20rpx;
margin-top: 20rpx;
background-color: #fff;
&-tit {
position: relative;
height: 60rpx;
line-height: 60rpx;
font-size: 34rpx;
color: #222222;
text-align: center;
}
&-card {
position: absolute;
top: 0;
right: 0;
padding: 6rpx 30rpx;
font-size: 28rpx;
line-height: 57rpx;
color: #FFFFFF;
text-align: center;
background: linear-gradient(-90deg, #3399EA, #38BCFF);
border-radius: 29rpx;
}
&-progress {
display: flex;
justify-content: center;
margin: 50rpx auto;
.num {
font-size: 40rpx;
font-weight: bold;
color: #f24646;
text {
font-size: 75rpx;
font-weight: bold;
color: #f01b1b;
}
}
}
&-section {
display: flex;
justify-content: space-between;
padding-top: 50rpx;
border-top: 1px solid #f5f5f5;
.sec {
display: flex;
justify-content: start;
width: 42%;
padding: 30rpx 3%;
background-color: #f2f3f5;
border-radius: 20rpx;
image {
width: 80rpx;
height: 80rpx;
margin-right: 20rpx;
}
.txt {
font-size: 28rpx;
color: #464646;
text {
display: block;
font-size: 32rpx;
font-weight: bold;
color: #363636;
}
}
}
}
}
&-btns {
width: 90%;
margin: 36rpx auto 0;
display: flex;
justify-content: space-between;
.btn {
width: 48%;
padding: 26rpx 0;
font-size: 30rpx;
color: #ffffff;
border-radius: 84rpx;
text-align: center;
image {
width: 44rpx;
height: 44rpx;
margin-right: 12rpx;
vertical-align: middle;
}
position: relative;
button {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
z-index: 2;
opacity: 0;
}
}
.btn-1 {
background: linear-gradient(-90deg, #14baa1, #52d4c0);
}
.btn-2 {
background: linear-gradient(-90deg, #3399EA, #38BCFF);
}
}
}
</style>