合并selfStudy后
This commit is contained in:
2
App.vue
2
App.vue
@@ -26,7 +26,7 @@
|
|||||||
onLaunch: function(e) {
|
onLaunch: function(e) {
|
||||||
// 检测自动更新
|
// 检测自动更新
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
updata();
|
// updata();
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
uni.getSystemInfo({
|
uni.getSystemInfo({
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ if (process.env.NODE_ENV === 'development') {
|
|||||||
// baseUrl = "http://59.110.212.44:9100/pb/";
|
// baseUrl = "http://59.110.212.44:9100/pb/";
|
||||||
// baseUrl = "https://testapi.nuttyreading.com/";
|
// baseUrl = "https://testapi.nuttyreading.com/";
|
||||||
// baseUrl = "http://192.168.110.110:9200/pb/";//磊哥
|
// baseUrl = "http://192.168.110.110:9200/pb/";//磊哥
|
||||||
baseUrl = "https://api.nuttyreading.com/"; //1
|
// baseUrl = "https://api.nuttyreading.com/"; //1
|
||||||
|
baseUrl = "http://192.168.110.100:9200/pb/"; // 开发用电脑
|
||||||
// baseUrl = "ws://twin-ui.com:6001/";
|
// baseUrl = "ws://twin-ui.com:6001/";
|
||||||
// socketUrl = "ws://twin-ui.com:6001/";
|
// socketUrl = "ws://twin-ui.com:6001/";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,8 +12,8 @@
|
|||||||
"src" : "图片路径"
|
"src" : "图片路径"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"versionName" : "1.0.27",
|
"versionName" : "1.0.28",
|
||||||
"versionCode" : 1027,
|
"versionCode" : 1028,
|
||||||
"app-plus" : {
|
"app-plus" : {
|
||||||
"nvueCompiler" : "weex",
|
"nvueCompiler" : "weex",
|
||||||
"compatible" : {
|
"compatible" : {
|
||||||
|
|||||||
@@ -742,6 +742,13 @@
|
|||||||
"navigationBarTitleText" : "我的证书"
|
"navigationBarTitleText" : "我的证书"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path" : "pages/selfStudy/selfStudy",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "自考考试"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path" : "pages/mine/wallet/couponList",
|
"path" : "pages/mine/wallet/couponList",
|
||||||
"style" :
|
"style" :
|
||||||
|
|||||||
@@ -10,13 +10,14 @@
|
|||||||
<view class="item" v-for="(item,index) in certificateList" :key="index">
|
<view class="item" v-for="(item,index) in certificateList" :key="index">
|
||||||
<view class="flex_box flex_between align-items_box">
|
<view class="flex_box flex_between align-items_box">
|
||||||
<h3 style="font-size: 28rpx;">编号:{{item.certificateNo}}</h3>
|
<h3 style="font-size: 28rpx;">编号:{{item.certificateNo}}</h3>
|
||||||
|
<text style="font-size: 26rpx; color: #999;">获得时间:{{item.createTime.substring(0, 10)}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="flex_box flex_center" v-if="item.certificateUrlList.length <= 0" >
|
||||||
<text class="small_btn border_radius_10"
|
<text class="small_btn border_radius_10"
|
||||||
style="display: block;font-size: 28rpx; color: #55aaff; border:1px solid #55aaff"
|
style="display: block;font-size: 28rpx; color: #55aaff; border:1px solid #55aaff"
|
||||||
v-if="item.certificateUrlList.length <= 0"
|
|
||||||
@click="showSubmit(item.id)">立即获取证书</text>
|
@click="showSubmit(item.id)">立即获取证书</text>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="imgBox flex_box flex_between" v-if="item.certificateUrlList.length > 0">
|
<view class="imgBox flex_box flex_between" v-if="item.certificateUrlList.length > 0">
|
||||||
<view class="img" v-for="(item1,index1) in item.certificateUrlList" :key="index1">
|
<view class="img" v-for="(item1,index1) in item.certificateUrlList" :key="index1">
|
||||||
<image @click="preveImg(item1)" :src="item1" mode="heightFix"></image>
|
<image @click="preveImg(item1)" :src="item1" mode="heightFix"></image>
|
||||||
@@ -243,7 +244,10 @@
|
|||||||
$http.request({
|
$http.request({
|
||||||
url: "common/userCertificate/getUserCertificateList",
|
url: "common/userCertificate/getUserCertificateList",
|
||||||
method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||||||
data: {},
|
data: {
|
||||||
|
"type":"", //证书类型A a证 B b证 ZK自考
|
||||||
|
"courseId":"" //课程id
|
||||||
|
},
|
||||||
header: { //默认 无 说明:请求头
|
header: { //默认 无 说明:请求头
|
||||||
'Content-Type': 'application/json'
|
'Content-Type': 'application/json'
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<public-module></public-module>
|
<public-module></public-module>
|
||||||
<!-- <z-nav-bar :title="pageTitle ? pageTitle : '课程详情'"> -->
|
<!-- <z-nav-bar :title="pageTitle ? pageTitle : '课程详情'"> -->
|
||||||
<z-nav-bar title="课程介绍"></z-nav-bar>
|
<z-nav-bar title="课程介绍"></z-nav-bar>
|
||||||
<view class="contentBox commonPageContentBox" >
|
<view class="contentBox commonPageContentBox">
|
||||||
<u-alert v-if="goBuyTitle && isAndorid" style="
|
<u-alert v-if="goBuyTitle && isAndorid" style="
|
||||||
background: linear-gradient(90deg, #258feb 0%, #00e1ec 100%);
|
background: linear-gradient(90deg, #258feb 0%, #00e1ec 100%);
|
||||||
position: fixed;
|
position: fixed;
|
||||||
@@ -51,15 +51,13 @@
|
|||||||
<view :class="`${isHideCourseInfo ? 'hidden2' : ''}`"
|
<view :class="`${isHideCourseInfo ? 'hidden2' : ''}`"
|
||||||
style="font-size: 30rpx; text-align: justify;" v-html="course.content">
|
style="font-size: 30rpx; text-align: justify;" v-html="course.content">
|
||||||
</view>
|
</view>
|
||||||
<text @click="isHideCourseInfo = !isHideCourseInfo"
|
<text @click="isHideCourseInfo = !isHideCourseInfo" style="
|
||||||
style="
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
background-color: #f2f8ff; padding: 4rpx ;
|
background-color: #f2f8ff; padding: 4rpx ;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
color: #838588;
|
color: #838588;
|
||||||
"
|
">
|
||||||
>
|
|
||||||
{{ isHideCourseInfo ? "展开" : "收起" }}
|
{{ isHideCourseInfo ? "展开" : "收起" }}
|
||||||
</text>
|
</text>
|
||||||
</view>
|
</view>
|
||||||
@@ -68,24 +66,118 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 小班入口 -->
|
<!-- {{selfStudyCertificate.length}}-{{classInfo.id}}-{{classInfo.state}}- -->
|
||||||
<view class="classEntrance" v-if="linkClassList.length > 0">
|
<!-- 自考入口 没有加入班级的时候暴漏入口-->
|
||||||
|
<view class="selfStudyBox"
|
||||||
|
v-if="course.canzk == '1' && librayList[curIndex] && (!classInfo.id || classInfo.state == '2' || selfStudyCertificate.length >= 0)">
|
||||||
|
|
||||||
|
<view style="padding: 20rpx;"
|
||||||
|
v-if="selfStudyCertificate.length > 0 || selfStudyPaperList.length > 0 || selfStudyCertificate.length == 0 && (!classInfo.id || classInfo.state == '2')">
|
||||||
|
|
||||||
|
<view class="">
|
||||||
|
<view class="" style="line-height: 40rpx; font-size: 28rpx;"
|
||||||
|
v-if="selfStudyCertificate.length == 0">
|
||||||
|
<text>课程学习进度大于等于70%时,您可以参与本门课程的自考考试,考试成绩大于60分即可获得本门课程的自考证书,如您想获得本门课程的A级或B级证书可参加小班教学</text>
|
||||||
|
</view>
|
||||||
|
<view :class="['testRecode',!zhedieTestRecode?'zhedie':'']"
|
||||||
|
v-if="selfStudyPaperList.length > 0 && !testingPaper.id">
|
||||||
|
<view class="item flex_box flex_between align-items_box"
|
||||||
|
v-for="(item, index) in selfStudyPaperList" :key="index">
|
||||||
|
<text style="color: #999; font-size: 26rpx;">第{{index + 1}}次自考成绩</text>
|
||||||
|
<text class="score PM_font">{{item.score}}分</text>
|
||||||
|
<view class="seePaper" @click.stop="seePaper(item.id)">
|
||||||
|
<!-- <image
|
||||||
|
src="../../static/icon/testPaperIcon.png"
|
||||||
|
mode="widthFix"
|
||||||
|
></image> -->
|
||||||
|
查看试卷
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="opbutn" v-if="selfStudyPaperList.length >= 3"
|
||||||
|
@click="zhedieTestRecode = !zhedieTestRecode">
|
||||||
|
{{zhedieTestRecode ? '收起' : '展开'}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="" v-if="selfStudyCertificate.length > 0"
|
||||||
|
style="font-size: 30rpx; text-align: center; margin: 20rpx 0;">
|
||||||
|
<view class="congritulations">
|
||||||
|
<image src="../../static/icon/xunzhang.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
<view class="">
|
||||||
|
<text>恭喜!您已通过自考考试获得本门课程的自考证书,如您想获得本门课程的A级或B级证书可参加小班教学</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class=" " style="margin-top: 20rpx; text-align: center;">
|
||||||
|
|
||||||
|
<!-- <view class=""> -->
|
||||||
|
<!-- {{canJoinTestTime}} -->
|
||||||
|
<!-- {{selfStudyPaperList.length % 2}} -->
|
||||||
|
<template v-if="selfStudyCertificate.length <= 0 && (!classInfo.id || classInfo.state == '2')">
|
||||||
|
|
||||||
|
<template v-if="!testingPaper.id">
|
||||||
|
<button @click="onPageJump('/pages/selfStudy/selfStudy',courseId)"
|
||||||
|
style="padding: 0 20rpx" type="primary"
|
||||||
|
v-if="canJoinTestTime && selfStudyPaperList.length % 2 == 0"
|
||||||
|
:disabled="courseCompletion < 70 ">参加自考考试</button>
|
||||||
|
|
||||||
|
<button v-if="selfStudyPaperList.length % 2 != 0 && canJoinTestTime"
|
||||||
|
@click="onPageJump('/pages/selfStudy/selfStudy',courseId)" style="padding: 0 20rpx"
|
||||||
|
type="primary" :disabled="courseCompletion < 70">再考一次</button>
|
||||||
|
<button v-if="!canJoinTestTime && showNextTestDate"
|
||||||
|
@click="onPageJump('/pages/selfStudy/selfStudy',courseId)" style="padding: 0 20rpx"
|
||||||
|
type="primary" :disabled="!canJoinTestTime">{{showNextTestDate.nextZKTime}}
|
||||||
|
后可参与自考</button>
|
||||||
|
</template>
|
||||||
|
<button v-else @click="onPageJump('/pages/miniClass/continueTest',testingPaper.id)"
|
||||||
|
style="padding: 0 20rpx" type="primary" :disabled="courseCompletion < 70">
|
||||||
|
继续自考考试
|
||||||
|
<template v-if="showCountDown" style="font-size: 26rpx;"> (剩余时间
|
||||||
|
<uni-countdown style="display: inline-block; " @timeup="timeup" :font-size="20"
|
||||||
|
:show-day="false" :hour="timeDif.hour" :minute="timeDif.minutes"
|
||||||
|
:second="timeDif.second" color="#fff" splitorColor="#fff" />)
|
||||||
|
</template>
|
||||||
|
</button>
|
||||||
|
</template>
|
||||||
|
<button style="padding: 0 20rpx" v-if="selfStudyCertificate.length > 0" type="primary"
|
||||||
|
@click="onPageJump('/pages/certificate/certificate')">查看证书</button>
|
||||||
|
<!-- </view> -->
|
||||||
|
<!-- <view class="" v-if="!classInfo.id">
|
||||||
|
<button style="background-color: #00e1ec;" type="primary" size="mini">查看可加入的小班</button>
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 小班入口 -->
|
||||||
|
<view class="classEntrance" style="text-align: center;" v-if="classCertificate.length > 0 ">
|
||||||
|
<view class="congritulations">
|
||||||
|
<image src="../../static/icon/xunzhang.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
<view style="margin: 10rpx 0;"><text>恭喜!您在小班学习中取得了本课程的{{classCertificate[0].type}}级证书</text></view>
|
||||||
|
<button type="primary" style="background-color: #ffaa7f;"
|
||||||
|
@click="onPageJump('/pages/certificate/certificate')">前往查看</button>
|
||||||
|
</view>
|
||||||
|
<template v-else>
|
||||||
|
<view class="classEntrance" v-if="linkClassList.length > 0 ">
|
||||||
<view class="flex_box" style="justify-content: space-between;">
|
<view class="flex_box" style="justify-content: space-between;">
|
||||||
<view class="flex_box classTitleBox">
|
<view class="flex_box classTitleBox">
|
||||||
<image src="../../static/icon/class.png" mode="" style="width: 64rpx; height: 64rpx;"></image>
|
<image src="../../static/icon/class.png" mode="" style="width: 64rpx; height: 64rpx;">
|
||||||
|
</image>
|
||||||
<text class="mainTxt">
|
<text class="mainTxt">
|
||||||
<span style="font-weight: bold; padding: 0 16rpx;"></span>
|
<span style="font-weight: bold; padding: 0 16rpx;"></span>
|
||||||
加入班级开始更加系统的学习</text>
|
加入班级开始更加系统的学习</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="btntext">
|
<view class="btntext">
|
||||||
<text @click="goClassLIst('/pages/miniClass/courseClassList', course.id,course.title)">前往查看 >></text>
|
<text @click="goClassLIst('/pages/miniClass/courseClassList', course.id,course.title)">前往查看
|
||||||
|
>></text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="classEntrance" v-if="classInfo.id">
|
<view class="classEntrance" v-if="classInfo.id">
|
||||||
<view class="flex_box" style="justify-content: space-between;">
|
<view class="flex_box" style="justify-content: space-between;">
|
||||||
<view class="flex_box classTitleBox">
|
<view class="flex_box classTitleBox">
|
||||||
<image src="../../static/icon/class.png" mode="" style="width: 64rpx; height: 64rpx;"></image>
|
<image src="../../static/icon/class.png" mode="" style="width: 64rpx; height: 64rpx;">
|
||||||
|
</image>
|
||||||
<text class="mainTxt">
|
<text class="mainTxt">
|
||||||
<span style="font-weight: bold; padding: 0 16rpx;"></span>
|
<span style="font-weight: bold; padding: 0 16rpx;"></span>
|
||||||
班级:{{classInfo.title}}</text>
|
班级:{{classInfo.title}}</text>
|
||||||
@@ -95,6 +187,18 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="classEntrance" v-if="linkClassList.length == 0 && !classInfo.id">
|
||||||
|
<view class="flex_box" style="justify-content: space-between;">
|
||||||
|
<view class="flex_box classTitleBox">
|
||||||
|
<image src="../../static/icon/class.png" mode="" style="width: 64rpx; height: 64rpx;">
|
||||||
|
</image>
|
||||||
|
<text class="mainTxt">
|
||||||
|
<span style="font-weight: bold; padding: 0 16rpx;"></span>
|
||||||
|
暂无可加入的小班</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
<view class="containerBg2">
|
<view class="containerBg2">
|
||||||
<!-- 目录 -->
|
<!-- 目录 -->
|
||||||
<view :class="['coursePart','flexbox', (userMsg.vip == 1 || userMsg.vip == 2) ? 'vipBgColor':'']"
|
<view :class="['coursePart','flexbox', (userMsg.vip == 1 || userMsg.vip == 2) ? 'vipBgColor':'']"
|
||||||
@@ -148,7 +252,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<view class="shiting_content">
|
<view class="shiting_content">
|
||||||
<view :class="['chapter_content', (userMsg.vip == 1 || userMsg.vip == 2) ? 'vipchapter_content' : '']"
|
<view
|
||||||
|
:class="['chapter_content', (userMsg.vip == 1 || userMsg.vip == 2) ? 'vipchapter_content' : '']"
|
||||||
v-if="chapterList.length > 0">
|
v-if="chapterList.length > 0">
|
||||||
<view class="vipSee" v-if="userMsg && (userMsg.vip == 1 || userMsg.vip == 2)">
|
<view class="vipSee" v-if="userMsg && (userMsg.vip == 1 || userMsg.vip == 2)">
|
||||||
<text>VIP畅学权益生效中</text>
|
<text>VIP畅学权益生效中</text>
|
||||||
@@ -195,7 +300,7 @@
|
|||||||
v-if="librayList.length > 0 && librayList[curIndex].completion > 0"> -->
|
v-if="librayList.length > 0 && librayList[curIndex].completion > 0"> -->
|
||||||
<!-- {{librayList[curIndex]}} -->
|
<!-- {{librayList[curIndex]}} -->
|
||||||
<view class="progress-box">
|
<view class="progress-box">
|
||||||
<progress v-if="librayList[curIndex]" :percent="librayList[curIndex].completion ? librayList[curIndex].completion : 0" show-info stroke-width="3" />
|
<progress v-if="course.id" :percent="courseCompletion" show-info stroke-width="3" />
|
||||||
</view>
|
</view>
|
||||||
<!-- </uni-section> -->
|
<!-- </uni-section> -->
|
||||||
</view>
|
</view>
|
||||||
@@ -237,7 +342,7 @@
|
|||||||
<view class="flexbox" style="align-items: center" @click="addSay()">
|
<view class="flexbox" style="align-items: center" @click="addSay()">
|
||||||
<!-- <u-icon name="edit-pen" color="#2979ff" size="28"></u-icon> -->
|
<!-- <u-icon name="edit-pen" color="#2979ff" size="28"></u-icon> -->
|
||||||
<!-- <uni-icons type="chatboxes" color="#2979ff" size="28"></uni-icons> -->
|
<!-- <uni-icons type="chatboxes" color="#2979ff" size="28"></uni-icons> -->
|
||||||
<text style="color:#2979ff; font-size: 30rpx; font-weight: bold;" >发布留言</text>
|
<text style="color:#2979ff; font-size: 30rpx; font-weight: bold;">发布留言</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="liuyanBox">
|
<view class="liuyanBox">
|
||||||
@@ -350,7 +455,8 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="sbmitBox">
|
<view class="sbmitBox">
|
||||||
<button class="submit" @click="submitSay" type="default">发 布</button>
|
<button class="submit" @click="submitSay" type="default">发 布</button>
|
||||||
<button style="background-color: #fff !important; color: ; " @click="sayclose" type="default">取 消</button>
|
<button style="background-color: #fff !important; color: ; " @click="sayclose" type="default">取
|
||||||
|
消</button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</u-popup>
|
</u-popup>
|
||||||
@@ -413,6 +519,7 @@
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
zhedieTestRecode: false, // 是否折叠自考的记录
|
||||||
goodsList: [],
|
goodsList: [],
|
||||||
currentCateIndex: 0,
|
currentCateIndex: 0,
|
||||||
protocolShow: false,
|
protocolShow: false,
|
||||||
@@ -518,9 +625,19 @@
|
|||||||
startStudyForMF: "sociology/course/startStudyForMF",
|
startStudyForMF: "sociology/course/startStudyForMF",
|
||||||
},
|
},
|
||||||
isAndorid: true,
|
isAndorid: true,
|
||||||
oprateOsName:'',
|
oprateOsName: '',
|
||||||
linkClassList:[], // 可加入关联班级数组
|
linkClassList: [], // 可加入关联班级数组
|
||||||
classInfo:[] // 所在班级信息
|
classInfo: [], // 所在班级信息
|
||||||
|
selfStudyCertificate: [], // 自考证书
|
||||||
|
classCertificate: [], // 小班学习证书
|
||||||
|
testingPaper: {}, // 当前课程正在考试信息
|
||||||
|
timeDif: {},
|
||||||
|
showCountDown: false,
|
||||||
|
showSecondTestBtn: false, // 先否显示二次考试按钮
|
||||||
|
selfStudyPaperList: [], ///自考考试记录
|
||||||
|
showNextTestDate: undefined,
|
||||||
|
canJoinTestTime: false, //时间上是否可以参加自考考试
|
||||||
|
courseCompletion: undefined, // 课程学习进度
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
//第一次加载
|
//第一次加载
|
||||||
@@ -536,8 +653,6 @@
|
|||||||
// await this.getData(e.id);
|
// await this.getData(e.id);
|
||||||
this.getSayList();
|
this.getSayList();
|
||||||
this.getOS()
|
this.getOS()
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
onPageScroll(e) {
|
onPageScroll(e) {
|
||||||
this.scrollTop = e.scrollTop;
|
this.scrollTop = e.scrollTop;
|
||||||
@@ -555,12 +670,14 @@
|
|||||||
// 隐藏原生的tabbar
|
// 隐藏原生的tabbar
|
||||||
uni.hideTabBar();
|
uni.hideTabBar();
|
||||||
console.log('this.courseId', this.courseId);
|
console.log('this.courseId', this.courseId);
|
||||||
|
this.canJoinTestTime = false
|
||||||
await this.getData(this.courseId);
|
await this.getData(this.courseId);
|
||||||
// #ifdef APP-PLUS
|
// #ifdef APP-PLUS
|
||||||
plus.screen.unlockOrientation();
|
plus.screen.unlockOrientation();
|
||||||
plus.screen.lockOrientation("portrait-primary");
|
plus.screen.lockOrientation("portrait-primary");
|
||||||
// #endif
|
// #endif
|
||||||
this.getLinkClassList()
|
await this.request()
|
||||||
|
|
||||||
},
|
},
|
||||||
onUnload() {
|
onUnload() {
|
||||||
this.selectGoodsData = {};
|
this.selectGoodsData = {};
|
||||||
@@ -577,7 +694,9 @@
|
|||||||
// this.showSearchList = false
|
// this.showSearchList = false
|
||||||
// this.searchList = []
|
// this.searchList = []
|
||||||
},
|
},
|
||||||
onPullDownRefresh() {
|
async onPullDownRefresh() {
|
||||||
|
await this.getData(this.courseId);
|
||||||
|
await this.request()
|
||||||
uni.stopPullDownRefresh()
|
uni.stopPullDownRefresh()
|
||||||
},
|
},
|
||||||
onReachBottom() {
|
onReachBottom() {
|
||||||
@@ -593,8 +712,229 @@
|
|||||||
},
|
},
|
||||||
//方法
|
//方法
|
||||||
methods: {
|
methods: {
|
||||||
|
async request(){
|
||||||
|
var newCertificate = await this.getCertificateInfo()
|
||||||
|
console.log('5555555证书资料', newCertificate);
|
||||||
|
this.selfStudyCertificate = []
|
||||||
|
this.classCertificate = []
|
||||||
|
if (newCertificate && newCertificate.length > 0) {
|
||||||
|
newCertificate.forEach(item => {
|
||||||
|
if (item.classId != '' && item.classId > 0) {
|
||||||
|
this.classCertificate.push(item)
|
||||||
|
} else {
|
||||||
|
this.selfStudyCertificate.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if(this.classCertificate.length <= 0){ // 已经在班级内获得证书就不再检查班级的情况了
|
||||||
|
this.getLinkClassList()
|
||||||
|
}
|
||||||
|
var historyPaper = await this.getingPaper()
|
||||||
|
console.log('historyPaper正在考试的信息', historyPaper);
|
||||||
|
if (historyPaper && historyPaper.id && historyPaper.type == '2' && historyPaper.relationId == this
|
||||||
|
.courseId) {
|
||||||
|
// this.testingPaper = historyPaper
|
||||||
|
this.testingPaper = historyPaper
|
||||||
|
var paperEndTime = historyPaper.planEndTime
|
||||||
|
var severNowTime = await this.getServerTime()
|
||||||
|
if (severNowTime > -1 && paperEndTime - severNowTime > 0) {
|
||||||
|
var secondTimeDif = paperEndTime - severNowTime
|
||||||
|
this.timeDif.hour = parseInt((secondTimeDif % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))
|
||||||
|
this.timeDif.minutes = parseInt((secondTimeDif % (1000 * 60 * 60)) / (1000 * 60));
|
||||||
|
this.timeDif.second = (secondTimeDif % (1000 * 60)) / 1000
|
||||||
|
this.showCountDown = true
|
||||||
|
console.log('时间符合吗?', this.showCountDown, secondTimeDif);
|
||||||
|
} else {
|
||||||
|
this.showCountDown = false
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
this.testingPaper = {}
|
||||||
|
this.showCountDown = false
|
||||||
|
}
|
||||||
|
if(this.course.canzk == '0'){ // 如果没有开启自考,就不走自考相关的逻辑
|
||||||
|
console.log('没有打开自考开关');
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var selfStudyPaperList = await this.getSelfStudyPaperList()
|
||||||
|
this.selfStudyPaperList = selfStudyPaperList
|
||||||
|
console.log('selfStudyPaperList', selfStudyPaperList);
|
||||||
|
if (this.selfStudyCertificate.length <= 0) { // 没有获得自考证书时查询下次可以自考的时间
|
||||||
|
if (selfStudyPaperList && selfStudyPaperList.length <= 2) {
|
||||||
|
this.canJoinTestTime = true
|
||||||
|
}
|
||||||
|
if (selfStudyPaperList && selfStudyPaperList.length >= 2) {
|
||||||
|
if(selfStudyPaperList.length % 2 != 0){
|
||||||
|
this.canJoinTestTime = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.showNextTestDate = await this.getNextTestDate()
|
||||||
|
console.log('下次考试时间', this.showNextTestDate);
|
||||||
|
if (this.showNextTestDate.nextLongTime == null || this.showNextTestDate.nextLongTime == null) {
|
||||||
|
this.canJoinTestTime = false
|
||||||
|
}
|
||||||
|
var now = new Date()
|
||||||
|
if (this.showNextTestDate.nextLongTime < now) {
|
||||||
|
this.canJoinTestTime = true
|
||||||
|
} else {
|
||||||
|
this.canJoinTestTime = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (selfStudyPaperList && selfStudyPaperList.length > 0) {
|
||||||
|
selfStudyPaperList.forEach((item, index) => {
|
||||||
|
if (item.score < 60 && index % 2 != 0) {
|
||||||
|
this.showSecondTestBtn = true
|
||||||
|
} else {
|
||||||
|
this.showSecondTestBtn = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
// 查询下次可以考试的时间
|
||||||
|
async getNextTestDate() {
|
||||||
|
var time = {
|
||||||
|
nextLongTime: 0,
|
||||||
|
nextZKTime: ''
|
||||||
|
}
|
||||||
|
await $http.request({
|
||||||
|
url: "common/classExam/getNextZKTime",
|
||||||
|
method: "POST",
|
||||||
|
data: {
|
||||||
|
"courseId": parseInt(this.courseId)
|
||||||
|
},
|
||||||
|
header: { //默认 无 说明:请求头
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
if (res.code != 0) {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.errMsg,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (res.code == 0) {
|
||||||
|
console.log('res', res);
|
||||||
|
time.nextZKTime = res.nextZKTime
|
||||||
|
time.nextLongTime = res.nextLongTime
|
||||||
|
}
|
||||||
|
}).catch(e => {
|
||||||
|
uni.showToast({
|
||||||
|
title: e.errMsg,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
});
|
||||||
|
return time
|
||||||
|
},
|
||||||
|
seePaper(val) {
|
||||||
|
// console.log('点击了');
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/miniClass/paperBack?id=${val}`,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
async timeup() {
|
||||||
|
this.showCountDown = false
|
||||||
|
setTimeout(async () => {
|
||||||
|
var selfStudyPaperList = await this.getSelfStudyPaperList()
|
||||||
|
this.selfStudyPaperList = selfStudyPaperList
|
||||||
|
console.log('selfStudyPaperList', selfStudyPaperList);
|
||||||
|
if (selfStudyPaperList && selfStudyPaperList.length > 0) {
|
||||||
|
selfStudyPaperList.forEach((item, index) => {
|
||||||
|
if (item.score < 60 && index < 2) {
|
||||||
|
this.showSecondTestBtn = true
|
||||||
|
} else {
|
||||||
|
this.showSecondTestBtn = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, 3000)
|
||||||
|
},
|
||||||
|
// 获取自考试卷列表
|
||||||
|
async getSelfStudyPaperList() {
|
||||||
|
var list = undefined
|
||||||
|
await $http.request({
|
||||||
|
url: "common/classExam/getZKExamPaperList",
|
||||||
|
method: "POST",
|
||||||
|
data: {
|
||||||
|
"courseId": parseInt(this.courseId)
|
||||||
|
},
|
||||||
|
header: { //默认 无 说明:请求头
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
if (res.code != 0) {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.errMsg,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (res.code == 0) {
|
||||||
|
console.log('res', res);
|
||||||
|
list = res.ZKExamUserList
|
||||||
|
}
|
||||||
|
}).catch(e => {
|
||||||
|
uni.showToast({
|
||||||
|
title: e.errMsg,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
});
|
||||||
|
return list
|
||||||
|
},
|
||||||
|
// 获取服务器时间
|
||||||
|
async getServerTime() {
|
||||||
|
var time = 0
|
||||||
|
await $http.request({
|
||||||
|
url: "common/classExam/getServerTime",
|
||||||
|
method: "POST",
|
||||||
|
data: {},
|
||||||
|
header: { //默认 无 说明:请求头
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
time = res.serverTime
|
||||||
|
} else {
|
||||||
|
time = -1
|
||||||
|
}
|
||||||
|
}).catch(e => {
|
||||||
|
time = -1
|
||||||
|
});
|
||||||
|
return time
|
||||||
|
},
|
||||||
|
// 获取进行中的考试
|
||||||
|
async getingPaper() {
|
||||||
|
var obj = undefined
|
||||||
|
await $http.request({
|
||||||
|
url: "common/classExam/examingPaper",
|
||||||
|
method: "POST",
|
||||||
|
data: {},
|
||||||
|
header: { //默认 无 说明:请求头
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
console.log('考试中', res);
|
||||||
|
if (res.code == 0 && res.classExamUser != null) {
|
||||||
|
obj = {
|
||||||
|
...res.classExamUser,
|
||||||
|
planEndTime: res.planEndTime
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
obj = undefined
|
||||||
|
}
|
||||||
|
}).catch(e => {
|
||||||
|
obj = undefined
|
||||||
|
});
|
||||||
|
return obj
|
||||||
|
|
||||||
|
},
|
||||||
// 获得课程关联的班级
|
// 获得课程关联的班级
|
||||||
getLinkClassList(){
|
getLinkClassList() {
|
||||||
this.$http
|
this.$http
|
||||||
.request({
|
.request({
|
||||||
url: 'common/class/getClassByCourseIdNoUser',
|
url: 'common/class/getClassByCourseIdNoUser',
|
||||||
@@ -612,19 +952,20 @@
|
|||||||
.then(async (res) => {
|
.then(async (res) => {
|
||||||
if (res.code == 0 && res.result.length > 0) {
|
if (res.code == 0 && res.result.length > 0) {
|
||||||
this.linkClassList = res.result
|
this.linkClassList = res.result
|
||||||
}else{
|
this.classInfo = {}
|
||||||
|
} else {
|
||||||
this.linkClassList = []
|
this.linkClassList = []
|
||||||
// 查询是否有所在的班级
|
// 查询是否有所在的班级
|
||||||
this.getClassList()
|
this.getClassList()
|
||||||
}
|
}
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title:'获取班级列表错误',
|
title: '获取班级列表错误',
|
||||||
icon:'none'
|
icon: 'none'
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getClassList(){
|
getClassList() {
|
||||||
$http.request({
|
$http.request({
|
||||||
url: '/common/class/getClassByUser',
|
url: '/common/class/getClassByUser',
|
||||||
method: "POST",
|
method: "POST",
|
||||||
@@ -637,15 +978,15 @@
|
|||||||
})
|
})
|
||||||
.then(res => {
|
.then(res => {
|
||||||
this.classInfo = {}
|
this.classInfo = {}
|
||||||
console.log('获取班级列表',res.result);
|
console.log('获取班级列表', res.result);
|
||||||
if(res.code == 0 && res.result != null){
|
if (res.code == 0 && res.result != null) {
|
||||||
if(res.result.id){
|
if (res.result.id) {
|
||||||
this.classInfo = res.result
|
this.classInfo = res.result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log('获取班级列表++++++',this.classList);
|
console.log('获取班级列表++++++', this.classList);
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
console.log('获取班级列表失败',e);
|
console.log('获取班级列表失败', e);
|
||||||
this.classInfo = {}
|
this.classInfo = {}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -654,7 +995,7 @@
|
|||||||
let oprateOs = "";
|
let oprateOs = "";
|
||||||
oprateOs = uni.getSystemInfoSync().platform;
|
oprateOs = uni.getSystemInfoSync().platform;
|
||||||
this.oprateOsName = uni.getSystemInfoSync().platform;
|
this.oprateOsName = uni.getSystemInfoSync().platform;
|
||||||
console.log('oprateOs',oprateOs)
|
console.log('oprateOs', oprateOs)
|
||||||
if (oprateOs == "android") {
|
if (oprateOs == "android") {
|
||||||
this.isAndorid = true;
|
this.isAndorid = true;
|
||||||
} else {
|
} else {
|
||||||
@@ -749,7 +1090,7 @@
|
|||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: `${_myurl}?navTitle=${this.pageTitle}&title=${v.title}&courseId=${this.courseId}&id=${v.id}&conditions=${v.conditions}&noRecored=${noRecored}`,
|
url: `${_myurl}?navTitle=${this.pageTitle}&title=${v.title}&courseId=${this.courseId}&id=${v.id}&conditions=${v.conditions}&noRecored=${noRecored}`,
|
||||||
});
|
});
|
||||||
}else if(this.vip.type != "1" && this.librayList[this.curIndex].type == 2){
|
} else if (this.vip.type != "1" && this.librayList[this.curIndex].type == 2) {
|
||||||
this.$commonJS.showToast("请开通超V后观看本课程");
|
this.$commonJS.showToast("请开通超V后观看本课程");
|
||||||
} else {
|
} else {
|
||||||
this.$commonJS.showToast("请先购买课程");
|
this.$commonJS.showToast("请先购买课程");
|
||||||
@@ -804,14 +1145,14 @@
|
|||||||
}
|
}
|
||||||
this.$forceUpdate();
|
this.$forceUpdate();
|
||||||
});
|
});
|
||||||
} else if(v.type == 2 && this.userMsg.vip != 1 ){
|
} else if (v.type == 2 && this.userMsg.vip != 1) {
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title:'提示',
|
title: '提示',
|
||||||
content:'当前课程目录是超V专享,开通超V可观看',
|
content: '当前课程目录是超V专享,开通超V可观看',
|
||||||
confirmText:'好的',
|
confirmText: '好的',
|
||||||
showCancel:false
|
showCancel: false
|
||||||
})
|
})
|
||||||
}else {
|
} else {
|
||||||
this.getCourseDescriptionData(v);
|
this.getCourseDescriptionData(v);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1255,7 +1596,9 @@
|
|||||||
this.courseList = [];
|
this.courseList = [];
|
||||||
// console.log("at line 1167:", "调用了几次");
|
// console.log("at line 1167:", "调用了几次");
|
||||||
var that = this;
|
var that = this;
|
||||||
|
uni.showLoading({
|
||||||
|
title:'获取课程信息'
|
||||||
|
})
|
||||||
await $http
|
await $http
|
||||||
.request({
|
.request({
|
||||||
url: "sociology/course/getCourseDetail",
|
url: "sociology/course/getCourseDetail",
|
||||||
@@ -1269,6 +1612,14 @@
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.then(async (res) => {
|
.then(async (res) => {
|
||||||
|
uni.hideLoading()
|
||||||
|
if(res.code != 0) {
|
||||||
|
uni.showToast({
|
||||||
|
title:res.errMsg,
|
||||||
|
icon:'none'
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
this.course = res.data.course;
|
this.course = res.data.course;
|
||||||
//0 购买 1 续费 2 升级
|
//0 购买 1 续费 2 升级
|
||||||
@@ -1304,17 +1655,33 @@
|
|||||||
this.$forceUpdate();
|
this.$forceUpdate();
|
||||||
this.pageTitle = this.course.title;
|
this.pageTitle = this.course.title;
|
||||||
this.librayList = [...res.data.catalogues];
|
this.librayList = [...res.data.catalogues];
|
||||||
console.log('获取课程详情=》',res.data);
|
console.log('获取课程详情=》', res.data);
|
||||||
|
if (this.librayList.length > 0) {
|
||||||
|
var ll = this.librayList.map(item => item.completion)
|
||||||
|
var sums = 0
|
||||||
|
ll.forEach(item => {
|
||||||
|
sums += item
|
||||||
|
})
|
||||||
|
if (sums > 0) {
|
||||||
|
this.courseCompletion = (sums / ll.length).toFixed(2)
|
||||||
|
} else {
|
||||||
|
this.courseCompletion = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.courseCompletion = 0
|
||||||
|
}
|
||||||
|
console.log('lllllll', this.courseCompletion);
|
||||||
that.$forceUpdate();
|
that.$forceUpdate();
|
||||||
if (this.librayList.length > 0) {
|
if (this.librayList.length > 0) {
|
||||||
if(this.catalogueId){
|
if (this.catalogueId) {
|
||||||
this.curId = this.catalogueId
|
this.curId = this.catalogueId
|
||||||
let _list = this.librayList
|
let _list = this.librayList
|
||||||
_list = _list.map( item => item.id)
|
_list = _list.map(item => item.id)
|
||||||
// console.log('_list过滤后的_list',_list);
|
// console.log('_list过滤后的_list',_list);
|
||||||
this.curIndex = _list.findIndex((element) => element == this.catalogueId)
|
this.curIndex = _list.findIndex((element) => element == this.catalogueId)
|
||||||
console.log('其他页面返回来,_list过滤后的curIndex',this.curIndex,this.catalogueId);
|
console.log('其他页面返回来,_list过滤后的curIndex', this.curIndex, this.catalogueId);
|
||||||
}else{
|
} else {
|
||||||
this.catalogueId = this.librayList[0].id;
|
this.catalogueId = this.librayList[0].id;
|
||||||
this.curId = this.librayList[0].id;
|
this.curId = this.librayList[0].id;
|
||||||
this.curIndex = 0
|
this.curIndex = 0
|
||||||
@@ -1337,14 +1704,8 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((e) => {
|
||||||
console.log(e, "获取目录数据报错");
|
uni.hideLoading()
|
||||||
// if(e.statusCode == 0){
|
console.log(e, "获取课程数据报错666");
|
||||||
// uni.showToast({
|
|
||||||
// title:'获取课程信息失败,请稍后尝试',
|
|
||||||
// icon:'none',
|
|
||||||
// duration: 5000
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
goBuy() {
|
goBuy() {
|
||||||
@@ -1453,7 +1814,6 @@
|
|||||||
})
|
})
|
||||||
.then(async (res) => {
|
.then(async (res) => {
|
||||||
if (res.code == 0 && res.chapterList.length > 0) {
|
if (res.code == 0 && res.chapterList.length > 0) {
|
||||||
|
|
||||||
list = res.chapterList;
|
list = res.chapterList;
|
||||||
// console.log("方法里面得到的章节列表:", list);
|
// console.log("方法里面得到的章节列表:", list);
|
||||||
} else {
|
} else {
|
||||||
@@ -1470,7 +1830,50 @@
|
|||||||
url: `${url}?id=${id}`,
|
url: `${url}?id=${id}`,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
goClassLIst(url, id,title){
|
// 查询证书情况
|
||||||
|
async getCertificateInfo() {
|
||||||
|
var list = undefined
|
||||||
|
await $http.request({
|
||||||
|
url: "common/userCertificate/getUserCertificateList",
|
||||||
|
method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||||||
|
data: {
|
||||||
|
"type": '', //证书类型A a证 B b证 ZK自考
|
||||||
|
"courseId": this.courseId //课程id
|
||||||
|
},
|
||||||
|
header: { //默认 无 说明:请求头
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
if (res.code != 0) {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.errMsg,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (res.code == 0) {
|
||||||
|
res.certificateList.forEach(item => {
|
||||||
|
item.certificateUrl && item.certificateUrl != '' ? item
|
||||||
|
.certificateUrlList = item.certificateUrl.split(',') : item
|
||||||
|
.certificateUrlList = []
|
||||||
|
})
|
||||||
|
list = res.certificateList
|
||||||
|
}
|
||||||
|
console.log('证书接口请求结果', res);
|
||||||
|
uni.hideLoading()
|
||||||
|
}).catch(e => {
|
||||||
|
uni.hideLoading()
|
||||||
|
console.log(e, '数据报错')
|
||||||
|
// this.status = 3
|
||||||
|
uni.showToast({
|
||||||
|
title: e.errMsg,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
});
|
||||||
|
return list
|
||||||
|
},
|
||||||
|
goClassLIst(url, id, title) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: `${url}?courseId=${id}&courseTitle=${title}`,
|
url: `${url}?courseId=${id}&courseTitle=${title}`,
|
||||||
});
|
});
|
||||||
@@ -1480,26 +1883,65 @@
|
|||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "@/style/mixin.scss";
|
@import "@/style/mixin.scss";
|
||||||
.classEntrance{background-color: #d0ecc1; padding:20rpx;
|
.congritulations {
|
||||||
|
width: 80rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
text-align: center;
|
||||||
|
margin: 10rpx auto;
|
||||||
|
display: block;
|
||||||
|
image {
|
||||||
|
width: 80rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.selfStudyBox {
|
||||||
|
position: relative;
|
||||||
|
background-color: #fff0e7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.classEntrance {
|
||||||
|
background-color: #d0ecc1;
|
||||||
|
padding: 20rpx;
|
||||||
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
|
||||||
.flex_box{align-items: center;}
|
|
||||||
|
.flex_box {
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
.btntext{color: $themeColor; }
|
|
||||||
.classTitleBox{font-size: 28rpx; flex: 1;
|
|
||||||
.mainTxt{font-size: 30rpx; flex: 1; padding-left: 10rpx;}
|
|
||||||
}
|
}
|
||||||
.completionBg { padding: 10rpx 0;
|
|
||||||
background-color: #fff; border-bottom: 1px solid #eee;
|
.btntext {
|
||||||
}
|
color: $themeColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
.classTitleBox {
|
||||||
|
font-size: 28rpx;
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
.mainTxt {
|
||||||
|
font-size: 30rpx;
|
||||||
|
flex: 1;
|
||||||
|
padding-left: 10rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.completionBg {
|
||||||
|
padding: 10rpx 0;
|
||||||
|
background-color: #fff;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
.endBox {
|
.endBox {
|
||||||
// @include theme("vipbtnbg");
|
// @include theme("vipbtnbg");
|
||||||
color: #333;
|
color: #333;
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
// margin: 20rpx 0;
|
// margin: 20rpx 0;
|
||||||
padding: 10rpx 20rpx;
|
padding: 10rpx 20rpx;
|
||||||
.box{
|
|
||||||
|
.box {
|
||||||
// background-color: #258feb;
|
// background-color: #258feb;
|
||||||
}
|
}
|
||||||
|
|
||||||
.flexbox {
|
.flexbox {
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
@@ -1555,9 +1997,15 @@
|
|||||||
// height: 100rpx !important;}
|
// height: 100rpx !important;}
|
||||||
}
|
}
|
||||||
|
|
||||||
.img{ width: 60rpx;
|
.img {
|
||||||
|
width: 60rpx;
|
||||||
height: 60rpx;
|
height: 60rpx;
|
||||||
image{width:60rpx; height: 60rpx; border-radius: 100%;}
|
|
||||||
|
image {
|
||||||
|
width: 60rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
border-radius: 100%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1598,7 +2046,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.xufeiBtn {
|
.xufeiBtn {
|
||||||
display: block; line-height: 50rpx; height: 50rpx;
|
display: block;
|
||||||
|
line-height: 50rpx;
|
||||||
|
height: 50rpx;
|
||||||
padding: 0 10rpx;
|
padding: 0 10rpx;
|
||||||
border: 1px solid #333;
|
border: 1px solid #333;
|
||||||
border-radius: 10rpx;
|
border-radius: 10rpx;
|
||||||
@@ -2188,7 +2638,12 @@
|
|||||||
// margin-bottom: 10rpx;
|
// margin-bottom: 10rpx;
|
||||||
|
|
||||||
}
|
}
|
||||||
::v-deep .prof img{ width: 100px; height: 100px;}
|
|
||||||
|
::v-deep .prof img {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
.catalogueTitle {
|
.catalogueTitle {
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -2313,7 +2768,11 @@
|
|||||||
/deep/.u-icon__icon--warning {
|
/deep/.u-icon__icon--warning {
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
/deep/.uni-tag{border-width: 2rpx !important;}
|
|
||||||
|
/deep/.uni-tag {
|
||||||
|
border-width: 2rpx !important;
|
||||||
|
}
|
||||||
|
|
||||||
/deep/.uni-section {
|
/deep/.uni-section {
|
||||||
background: transparent !important;
|
background: transparent !important;
|
||||||
}
|
}
|
||||||
@@ -2468,7 +2927,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.hidden2{line-height: 50rpx; height: 100rpx;}
|
|
||||||
|
.hidden2 {
|
||||||
|
line-height: 50rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
}
|
||||||
|
|
||||||
.subLine {
|
.subLine {
|
||||||
* {
|
* {
|
||||||
display: inline !important;
|
display: inline !important;
|
||||||
@@ -2615,4 +3079,57 @@
|
|||||||
padding: 20rpx;
|
padding: 20rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.testRecode {
|
||||||
|
position: relative;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
background-color: rgba(255, 255, 255, .8);
|
||||||
|
padding: 20rpx;
|
||||||
|
// padding-bottom: 30rpx;
|
||||||
|
.item {
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
border-bottom: 1px solid #e1e1e1;
|
||||||
|
line-height: 60rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.score {
|
||||||
|
color: #35a6ff;
|
||||||
|
font-size: 46rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
.opbutn {
|
||||||
|
position: absolute;
|
||||||
|
padding-bottom: 0;
|
||||||
|
width: 100rpx;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 26rpx; border-radius: 10rpx 10rpx 0 0;
|
||||||
|
color: #fff; background-color: #aaaaff;
|
||||||
|
bottom: 0;
|
||||||
|
left: calc(50vw - 50rpx);
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
.testRecode.zhedie {
|
||||||
|
max-height: 280rpx;
|
||||||
|
// padding-bottom: 30rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.seePaper {
|
||||||
|
color: #35a6ff;
|
||||||
|
font-size: 32rpx;
|
||||||
|
// width: 50rpx;
|
||||||
|
// height: 50rpx;
|
||||||
|
|
||||||
|
// image {
|
||||||
|
// width: 100%;
|
||||||
|
// height: 100%;
|
||||||
|
// }
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
<uni-collapse-item v-for="(item,index) in courseList" :key="index" :title="item.courseMedicine.title"
|
<uni-collapse-item v-for="(item,index) in courseList" :key="index" :title="item.courseMedicine.title"
|
||||||
:thumb="item.courseMedicine.icon">
|
:thumb="item.courseMedicine.icon">
|
||||||
<view class="content" v-show="item.courseList.length > 1" style="padding:20rpx;">
|
<view class="content" v-show="item.courseList.length > 1" style="padding:20rpx;">
|
||||||
<view :class="['courseItemleve1',userMsg.vip != 0 ? 'isVip' :'']"
|
<view :class="['courseItemleve1',(userMsg.vip != 0 && userMsg.vip != 3) ? 'isVip' :'']"
|
||||||
v-for="(item1, index1) in item.courseList" :key="index1"
|
v-for="(item1, index1) in item.courseList" :key="index1"
|
||||||
@click="onPageJump('/pages/course/courseDetail',item1.id)">
|
@click="onPageJump('/pages/course/courseDetail',item1.id)">
|
||||||
<view class="vipSee" v-if="userMsg.vip != 0 && userMsg.vip != 3">
|
<view class="vipSee" v-if="userMsg.vip != 0 && userMsg.vip != 3">
|
||||||
@@ -31,8 +31,9 @@
|
|||||||
size="24"></u-icon><text style="font-size: 32rpx;">{{item1.title}}</text>
|
size="24"></u-icon><text style="font-size: 32rpx;">{{item1.title}}</text>
|
||||||
</view>
|
</view>
|
||||||
<template v-if="item1.courseCatalogueEntityList && item1.courseCatalogueEntityList.length > 0">
|
<template v-if="item1.courseCatalogueEntityList && item1.courseCatalogueEntityList.length > 0">
|
||||||
|
|
||||||
<view class="" v-for="(item2, index2) in item1.courseCatalogueEntityList" :key="index2">
|
<view class="" v-for="(item2, index2) in item1.courseCatalogueEntityList" :key="index2">
|
||||||
<view :class="['priceItem', item2.isBuy == 1 && userMsg.vip == 0 ? 'isBuy' : '']">
|
<view :class="['priceItem', item2.isBuy == 1 && (userMsg.vip == 0 || userMsg.vip == 3) ? 'isBuy' : '']">
|
||||||
<text class="text mname" v-if="item1.courseCatalogueEntityList.length > 1"
|
<text class="text mname" v-if="item1.courseCatalogueEntityList.length > 1"
|
||||||
style="font-weight: bold; margin-right: 10rpx;">【{{item2.title}}】</text>
|
style="font-weight: bold; margin-right: 10rpx;">【{{item2.title}}】</text>
|
||||||
<view class="pbox flexbox">
|
<view class="pbox flexbox">
|
||||||
@@ -40,11 +41,13 @@
|
|||||||
height: 40rpx; text-align: center; line-height: 40rpx; color: #ffb861;">V</text>
|
height: 40rpx; text-align: center; line-height: 40rpx; color: #ffb861;">V</text>
|
||||||
<text class="text">半年:¥{{item2.halfFee}} 元</text><text class="text"
|
<text class="text">半年:¥{{item2.halfFee}} 元</text><text class="text"
|
||||||
style="margin-left: 20rpx;">整年:¥{{item2.fee}} 元</text>
|
style="margin-left: 20rpx;">整年:¥{{item2.fee}} 元</text>
|
||||||
|
<!-- <pre>
|
||||||
|
{{userMsg}}-{{item2.isBuy}}
|
||||||
|
</pre> -->
|
||||||
<text class="buybtns" @click.stop="goBuy(item2)"
|
<text class="buybtns" @click.stop="goBuy(item2)"
|
||||||
v-if="item2.isBuy == 0 && userMsg.vip == 0">立即购买</text>
|
v-if="item2.isBuy == 0 && (userMsg.vip == 0 || userMsg.vip == 3)">立即购买</text>
|
||||||
</view>
|
</view>
|
||||||
<i class="haveBuy" v-if="item2.isBuy == 1 && userMsg.vip == 0">已购买</i>
|
<i class="haveBuy" v-if="item2.isBuy == 1 && (userMsg.vip == 0 || userMsg.vip == 3)">已购买</i>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -290,6 +290,10 @@
|
|||||||
</template>
|
</template>
|
||||||
</text>
|
</text>
|
||||||
<text class="txt555" v-else> 匿名用户 </text>
|
<text class="txt555" v-else> 匿名用户 </text>
|
||||||
|
<!-- {{item.buyState}} -->
|
||||||
|
<view class="" style="width: 50rpx; height: 50rpx;">
|
||||||
|
<image style="width: 50rpx; height: 50rpx;" :src="item.buyState.includes('未购买') ? '../../static/icon/notbuy.png' : '../../static/icon/yesbuy.png'" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
<text
|
<text
|
||||||
@click.stop="outClass(item.student.id)"
|
@click.stop="outClass(item.student.id)"
|
||||||
class="outBtn"
|
class="outBtn"
|
||||||
|
|||||||
@@ -11,9 +11,31 @@
|
|||||||
<view class="scoreBox">
|
<view class="scoreBox">
|
||||||
本次考试卷面成绩为:<text class="score PM_font">{{exameResult.score}} 分</text>
|
本次考试卷面成绩为:<text class="score PM_font">{{exameResult.score}} 分</text>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="" v-if="testPaper.type == '2'" style="margin: 20rpx 0; text-align: center;" >
|
||||||
|
<template v-if="exameResult.score >= 60 && selfStudyCertificate.length > 0">
|
||||||
|
<view class="">
|
||||||
|
<view class="congritulations">
|
||||||
|
<image src="../../static/icon/xunzhang.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
<view class="">
|
||||||
|
<text>恭喜!您本次考试获得了自考证书,请前往 我的->我的证书查看</text>
|
||||||
|
<<view class="" style="text-align: center;">
|
||||||
|
<text class="small_btn border_radius_10"
|
||||||
|
style="display: inline-block;font-size: 28rpx; color: #55aaff; border:1px solid #55aaff"
|
||||||
|
@click="onPageJump('/pages/certificate/certificate')">查看证书</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<text>很遗憾本次考试您没有获得自考证书,祝您下次考试旗开得胜!!</text>
|
||||||
|
</template>
|
||||||
|
</view>
|
||||||
<view class="flex_box flex_between">
|
<view class="flex_box flex_between">
|
||||||
<button type="primary" size="mini" @click="goToClass">返回班级</button>
|
<button size="mini" type="primary" v-if="testPaper.type == '2'" @click="goToCourse">返回课程</button>
|
||||||
<button type="warn" size="mini" @click="goToPaper">查看试卷</button>
|
<button size="mini" type="primary" v-else @click="goToClass">返回班级</button>
|
||||||
|
<button size="mini" type="warn" @click="goToPaper">查看试卷</button>
|
||||||
</view>
|
</view>
|
||||||
<view class="result_imgBox">
|
<view class="result_imgBox">
|
||||||
<image src="../../static/jiesuan_Icon.jpg" mode="widthFix"></image>
|
<image src="../../static/jiesuan_Icon.jpg" mode="widthFix"></image>
|
||||||
@@ -32,7 +54,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="flex_box align-items_box" v-if="secondTimeDif > 0">
|
<view class="flex_box align-items_box" v-if="secondTimeDif > 0">
|
||||||
<view class="" style="font-size: 26rpx;">
|
<view class="" style="font-size: 26rpx;">
|
||||||
剩余时间:
|
剩余时间:
|
||||||
</view>
|
</view>
|
||||||
<view class="">
|
<view class="">
|
||||||
<uni-countdown @timeup="timeup" :font-size="20" :show-day="false"
|
<uni-countdown @timeup="timeup" :font-size="20" :show-day="false"
|
||||||
@@ -86,10 +108,15 @@
|
|||||||
<u-popup key="1" :show="showPopup" :round="10" @close="hidePopup">
|
<u-popup key="1" :show="showPopup" :round="10" @close="hidePopup">
|
||||||
<view class="guanli">
|
<view class="guanli">
|
||||||
<h3>考试说明</h3>
|
<h3>考试说明</h3>
|
||||||
<view class="tips border_radius_10">
|
<view class="tips border_radius_10" v-if="testPaper.type == '1'">
|
||||||
<text>①、每位学员共有两次考试的机会,考试成绩以两次成绩的最高分作为最终的卷面成绩,请认真对待每次考试;<br />
|
<text>①、每位学员共有两次考试的机会,考试成绩以两次成绩的最高分作为最终的卷面成绩,请认真对待每次考试;<br />
|
||||||
②、请在倒计时结束前完成答题,倒计时结束后将自动交卷。</text>
|
②、请在倒计时结束前完成答题,倒计时结束后将自动交卷。</text>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="tips border_radius_10" v-if="testPaper.type == '2'">
|
||||||
|
<text>①、每位学员共有两次考试的机会,如第一次考试成绩达标则不用进行第二次的考试,请认真对待每次考试;<br />
|
||||||
|
②、请在倒计时结束前完成答题,倒计时结束后将自动交卷;<br/>
|
||||||
|
③、考试时间为 45 分钟。</text>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</u-popup>
|
</u-popup>
|
||||||
<u-popup key="2" :show="showQuestIndex" :round="10" @close="hidePopup">
|
<u-popup key="2" :show="showQuestIndex" :round="10" @close="hidePopup">
|
||||||
@@ -125,6 +152,7 @@
|
|||||||
showPopup: false,
|
showPopup: false,
|
||||||
code: 0, // 英文code
|
code: 0, // 英文code
|
||||||
classId: undefined,
|
classId: undefined,
|
||||||
|
courseId:undefined,
|
||||||
testPaper: {},
|
testPaper: {},
|
||||||
curQuestion: {
|
curQuestion: {
|
||||||
answerIds: []
|
answerIds: []
|
||||||
@@ -139,7 +167,7 @@
|
|||||||
step: 8, /// 步长
|
step: 8, /// 步长
|
||||||
// questIndexList: [],
|
// questIndexList: [],
|
||||||
nowPart: 1,
|
nowPart: 1,
|
||||||
|
selfStudyCertificate:[],
|
||||||
maxNumber: 0,
|
maxNumber: 0,
|
||||||
minNumber: 0,
|
minNumber: 0,
|
||||||
noAnswerList: [],
|
noAnswerList: [],
|
||||||
@@ -150,12 +178,12 @@
|
|||||||
questionList:[],
|
questionList:[],
|
||||||
answerIdsList:[],
|
answerIdsList:[],
|
||||||
wantSubmit:false, // 想要提交
|
wantSubmit:false, // 想要提交
|
||||||
|
flag : false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async onLoad(e) {
|
async onLoad(e) {
|
||||||
console.log('收到得值',e);
|
console.log('收到得值',e);
|
||||||
this.classId = e.classId
|
// this.classId = e.classId
|
||||||
this.examId = e.id
|
this.examId = e.id
|
||||||
this.wantSubmit = false
|
this.wantSubmit = false
|
||||||
this.getTestPage()
|
this.getTestPage()
|
||||||
@@ -180,6 +208,49 @@
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapMutations(['setPaperEndTime']),
|
...mapMutations(['setPaperEndTime']),
|
||||||
|
// 查询证书情况
|
||||||
|
async getCertificateInfo() {
|
||||||
|
var list = undefined
|
||||||
|
await $http.request({
|
||||||
|
url: "common/userCertificate/getUserCertificateList",
|
||||||
|
method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||||||
|
data: {
|
||||||
|
"type": '', //证书类型A a证 B b证 ZK自考
|
||||||
|
"courseId": this.courseId //课程id
|
||||||
|
},
|
||||||
|
header: { //默认 无 说明:请求头
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
if (res.code != 0) {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.errMsg,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (res.code == 0) {
|
||||||
|
res.certificateList.forEach(item => {
|
||||||
|
item.certificateUrl && item.certificateUrl != '' ? item
|
||||||
|
.certificateUrlList = item.certificateUrl.split(',') : item
|
||||||
|
.certificateUrlList = []
|
||||||
|
})
|
||||||
|
list = res.certificateList
|
||||||
|
}
|
||||||
|
console.log('证书接口请求结果', res);
|
||||||
|
uni.hideLoading()
|
||||||
|
}).catch(e => {
|
||||||
|
uni.hideLoading()
|
||||||
|
console.log(e, '数据报错')
|
||||||
|
// this.status = 3
|
||||||
|
uni.showToast({
|
||||||
|
title: e.errMsg,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
});
|
||||||
|
return list
|
||||||
|
},
|
||||||
async getServerTime() {
|
async getServerTime() {
|
||||||
var time = 0
|
var time = 0
|
||||||
await $http.request({
|
await $http.request({
|
||||||
@@ -279,15 +350,21 @@
|
|||||||
this.isOvertime = true
|
this.isOvertime = true
|
||||||
this.sumbitPaper()
|
this.sumbitPaper()
|
||||||
let that = this
|
let that = this
|
||||||
|
var urll = ''
|
||||||
|
if(that.testPaper.type == '1'){
|
||||||
|
urll = `/pages/miniClass/classInfo?id=${that.classId}`
|
||||||
|
}else if(that.testPaper.type == '2'){
|
||||||
|
urll = `/pages/course/courseDetail?id=${that.courseId}`
|
||||||
|
}
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title: '提示',
|
title: '提示',
|
||||||
content: "考试结束,系统已为您自动交卷,点击按钮返回所在班级",
|
content: "考试结束,系统已为您自动交卷,点击按钮返回",
|
||||||
confirmText: '知道了',
|
confirmText: '知道了',
|
||||||
showCancel: false,
|
showCancel: false,
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
if (res.confirm) {
|
if (res.confirm) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: `/pages/miniClass/classInfo?id=${that.classId}`
|
url: urll
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -324,49 +401,60 @@
|
|||||||
},300)
|
},300)
|
||||||
},
|
},
|
||||||
// q请求提交试卷
|
// q请求提交试卷
|
||||||
sumbitPaper(ids) {
|
async sumbitPaper(ids) {
|
||||||
|
let that = this
|
||||||
|
if(that.flag){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
that.flag = true
|
||||||
uni.showLoading({
|
uni.showLoading({
|
||||||
title:'正在交卷'
|
title:'正在交卷'
|
||||||
})
|
})
|
||||||
let that = this
|
await $http.request({
|
||||||
$http.request({
|
|
||||||
url: "common/classExam/submitExamPaper",
|
url: "common/classExam/submitExamPaper",
|
||||||
method: "POST",
|
method: "POST",
|
||||||
data: {
|
data: {
|
||||||
id: that.examId
|
id: that.examId
|
||||||
},
|
},
|
||||||
header: { //默认 无 说明:请求头
|
header: { //默认 无 说明:请求头1
|
||||||
'Content-Type': 'application/json'
|
'Content-Type': 'application/json'
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
.then(res => {
|
.then(async res => {
|
||||||
uni.hideLoading()
|
uni.hideLoading()
|
||||||
|
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
console.log('交卷结果',res);
|
console.log('交卷结果',res);
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '交卷成功',
|
title: '交卷成功',
|
||||||
icon: 'success'
|
icon: 'success'
|
||||||
})
|
})
|
||||||
setTimeout( ()=>{
|
setTimeout(async ()=>{
|
||||||
that.exameResult = res.examPaper
|
that.exameResult = res.examPaper
|
||||||
// this.timeup()
|
// this.timeup()
|
||||||
that.showQuestIndex = false
|
that.showQuestIndex = false
|
||||||
that.secondTimeDif = 0
|
that.secondTimeDif = 0
|
||||||
that.isOvertime = true
|
that.isOvertime = true
|
||||||
uni.setStorage({
|
if(that.testPaper.type == '2' && that.exameResult.score >= 60) {
|
||||||
key:'paperEndTime',
|
// if(that.exameResult.score >= 60){
|
||||||
data:{
|
var newCertificate = await that.getCertificateInfo()
|
||||||
time: 0,
|
console.log('5555555证书资料', newCertificate);
|
||||||
examId: undefined
|
that.selfStudyCertificate = []
|
||||||
},
|
if (newCertificate && newCertificate.length > 0) {
|
||||||
success: function () {
|
newCertificate.forEach(item => {
|
||||||
console.log('时间存储成功');
|
if (item.classId != '' && item.classId > 0) {
|
||||||
|
// this.classCertificate.push(item)
|
||||||
|
} else {
|
||||||
|
that.selfStudyCertificate.push(item)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
// }
|
||||||
|
}
|
||||||
},300)
|
},300)
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
|
that.flag = false
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: e.errMsg,
|
title: e.errMsg,
|
||||||
icon: 'error'
|
icon: 'error'
|
||||||
@@ -374,6 +462,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
|
that.flag = true
|
||||||
uni.hideLoading()
|
uni.hideLoading()
|
||||||
console.log(e, '数据报错')
|
console.log(e, '数据报错')
|
||||||
// this.status = 3
|
// this.status = 3
|
||||||
@@ -493,6 +582,11 @@
|
|||||||
this.haveAnswerList = this.gethaveAnswerList()
|
this.haveAnswerList = this.gethaveAnswerList()
|
||||||
// console.log('this.answerIdsList', this.answerIdsList);
|
// console.log('this.answerIdsList', this.answerIdsList);
|
||||||
this.testPaper = res.examPaper
|
this.testPaper = res.examPaper
|
||||||
|
if(this.testPaper.type == '1'){ // 班级考试
|
||||||
|
this.classId = this.testPaper.relationId
|
||||||
|
}else if(this.testPaper.type == '2'){
|
||||||
|
this.courseId = this.testPaper.relationId
|
||||||
|
}
|
||||||
// var planEndTimeDate = new Date(res.planEndTime)
|
// var planEndTimeDate = new Date(res.planEndTime)
|
||||||
// this.endTime = planEndTimeDate.getTime();
|
// this.endTime = planEndTimeDate.getTime();
|
||||||
this.endTime = res.planEndTime
|
this.endTime = res.planEndTime
|
||||||
@@ -569,6 +663,12 @@
|
|||||||
url: `/pages/miniClass/classInfo?id=${this.classId}`
|
url: `/pages/miniClass/classInfo?id=${this.classId}`
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
goToCourse(){
|
||||||
|
uni.navigateTo({
|
||||||
|
// url: `/pages/miniClass/classInfo?id=${this.classId}`
|
||||||
|
url: `/pages/course/courseDetail?id=${this.courseId}`
|
||||||
|
})
|
||||||
|
},
|
||||||
hidePopup() {
|
hidePopup() {
|
||||||
this.showPopup = false
|
this.showPopup = false
|
||||||
this.showQuestIndex = false
|
this.showQuestIndex = false
|
||||||
@@ -602,7 +702,17 @@
|
|||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "@/style/mixin.scss";
|
@import "@/style/mixin.scss";
|
||||||
|
.congritulations {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
text-align: center;
|
||||||
|
margin: 10rpx auto;
|
||||||
|
display: block;
|
||||||
|
image {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
.questIndx { overflow: hidden;
|
.questIndx { overflow: hidden;
|
||||||
margin-top: 20rpx;
|
margin-top: 20rpx;
|
||||||
margin-bottom: 20rpx;
|
margin-bottom: 20rpx;
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
<view class="" style="background-color: #d4eaf0; min-height: calc(100vh); padding: 20rpx;">
|
<view class="" style="background-color: #d4eaf0; min-height: calc(100vh); padding: 20rpx;">
|
||||||
<public-module></public-module>
|
<public-module></public-module>
|
||||||
<z-nav-bar title="试卷答案">
|
<z-nav-bar title="试卷答案">
|
||||||
<text slot="right" style="padding-right: 20rpx; font-size: 26rpx; color: #666;"
|
<!-- <text slot="right" style="padding-right: 20rpx; font-size: 26rpx; color: #666;"
|
||||||
@click="showPopup = true">考试说明</text>
|
@click="showPopup = true">考试说明</text> -->
|
||||||
</z-nav-bar>
|
</z-nav-bar>
|
||||||
<!-- 有考试结果时候 -->
|
<!-- 有考试结果时候 -->
|
||||||
<template>
|
<template>
|
||||||
@@ -78,6 +78,9 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="" style="margin-top: 20rpx;">
|
||||||
|
<text style="color: #666; font-size: 28rpx;">开始时间:{{testPaper.startTime}} <br/> 结束时间:{{testPaper.endTime}}</text>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<u-popup key="1" :show="showPopup" :round="10" @close="hidePopup">
|
<u-popup key="1" :show="showPopup" :round="10" @close="hidePopup">
|
||||||
@@ -223,8 +226,6 @@ checkAnswer(id){
|
|||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
// that.isHave = true
|
// that.isHave = true
|
||||||
var subOptions = JSON.parse(res.examPaper.subject)
|
var subOptions = JSON.parse(res.examPaper.subject)
|
||||||
|
|
||||||
|
|
||||||
subOptions.forEach(item => {
|
subOptions.forEach(item => {
|
||||||
var code = 0
|
var code = 0
|
||||||
item.options.forEach(item1 => {
|
item.options.forEach(item1 => {
|
||||||
@@ -236,6 +237,7 @@ checkAnswer(id){
|
|||||||
|
|
||||||
this.questionList = subOptions
|
this.questionList = subOptions
|
||||||
this.testPaper = res.examPaper
|
this.testPaper = res.examPaper
|
||||||
|
console.log('试卷信息', this.testPaper);
|
||||||
this.answerIdsList = JSON.parse(res.examPaper.answer)
|
this.answerIdsList = JSON.parse(res.examPaper.answer)
|
||||||
var newList = JSON.parse(res.examPaper.answer)
|
var newList = JSON.parse(res.examPaper.answer)
|
||||||
newList = newList.map(item => {
|
newList = newList.map(item => {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="flex_box align-items_box" v-if="secondTimeDif > 0">
|
<view class="flex_box align-items_box" v-if="secondTimeDif > 0">
|
||||||
<view class="">
|
<view class="">
|
||||||
剩余时间:
|
剩余时间:
|
||||||
</view>
|
</view>
|
||||||
<view class="">
|
<view class="">
|
||||||
<uni-countdown @timeup="timeup" :font-size="20" :show-day="false"
|
<uni-countdown @timeup="timeup" :font-size="20" :show-day="false"
|
||||||
@@ -168,6 +168,7 @@
|
|||||||
showQuestIndex:false,
|
showQuestIndex:false,
|
||||||
secondTimeDif:undefined,
|
secondTimeDif:undefined,
|
||||||
pagetitle:'', // 页面标题
|
pagetitle:'', // 页面标题
|
||||||
|
flag:false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async onLoad(e) {
|
async onLoad(e) {
|
||||||
@@ -353,10 +354,15 @@
|
|||||||
},
|
},
|
||||||
// q请求提交试卷
|
// q请求提交试卷
|
||||||
sumbitPaper(ids) {
|
sumbitPaper(ids) {
|
||||||
|
let that = this
|
||||||
|
if(that.flag){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
that.flag = true
|
||||||
uni.showLoading({
|
uni.showLoading({
|
||||||
title:'正在交卷'
|
title:'正在交卷'
|
||||||
})
|
})
|
||||||
let that = this
|
|
||||||
$http.request({
|
$http.request({
|
||||||
url: "common/classExam/submitExamPaper",
|
url: "common/classExam/submitExamPaper",
|
||||||
method: "POST",
|
method: "POST",
|
||||||
@@ -394,6 +400,7 @@
|
|||||||
|
|
||||||
},300)
|
},300)
|
||||||
}else{
|
}else{
|
||||||
|
that.flag = false
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: e.errMsg,
|
title: e.errMsg,
|
||||||
icon: 'error'
|
icon: 'error'
|
||||||
@@ -401,6 +408,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
|
that.flag = false
|
||||||
uni.hideLoading()
|
uni.hideLoading()
|
||||||
console.log(e, '数据报错')
|
console.log(e, '数据报错')
|
||||||
// this.status = 3
|
// this.status = 3
|
||||||
|
|||||||
@@ -397,9 +397,9 @@
|
|||||||
// paperEndTime = planEndTimeDate.getTime(); // 结束的时间戳
|
// paperEndTime = planEndTimeDate.getTime(); // 结束的时间戳
|
||||||
paperEndTime = historyPaper.planEndTime
|
paperEndTime = historyPaper.planEndTime
|
||||||
this.examId = historyPaper.id
|
this.examId = historyPaper.id
|
||||||
this.classId = historyPaper.relationId
|
// this.classId = historyPaper.relationId
|
||||||
}else{
|
}else{
|
||||||
this.classId = undefined
|
// this.classId = undefined
|
||||||
this.examId = undefined
|
this.examId = undefined
|
||||||
paperEndTime = 0
|
paperEndTime = 0
|
||||||
}
|
}
|
||||||
@@ -474,7 +474,8 @@
|
|||||||
// 继续考试
|
// 继续考试
|
||||||
continueTest(id,classId) {
|
continueTest(id,classId) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: `/pages/miniClass/continueTest?id=${id}&classId=${classId}`
|
// url: `/pages/miniClass/continueTest?id=${id}&classId=${classId}`
|
||||||
|
url: `/pages/miniClass/continueTest?id=${id}`
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 获取考试中的试卷
|
// 获取考试中的试卷
|
||||||
@@ -535,7 +536,8 @@
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
.then(async res => {
|
.then(async res => {
|
||||||
if (res.code == 0) {
|
console.log(res);
|
||||||
|
if (res && res.code == 0) {
|
||||||
if (res.result.length > 0) {
|
if (res.result.length > 0) {
|
||||||
_list = res.result
|
_list = res.result
|
||||||
}
|
}
|
||||||
@@ -579,8 +581,8 @@
|
|||||||
this.$http
|
this.$http
|
||||||
.post('medical/home/getCourseMedicalTree')
|
.post('medical/home/getCourseMedicalTree')
|
||||||
.then(res => {
|
.then(res => {
|
||||||
// console.log(res)
|
console.log(res)
|
||||||
if (res.code == 0) {
|
if (res && res.code == 0) {
|
||||||
if (res.labels.length > 0) {
|
if (res.labels.length > 0) {
|
||||||
this.curseTagList = res.labels
|
this.curseTagList = res.labels
|
||||||
this.tabsid = res.labels[0].id
|
this.tabsid = res.labels[0].id
|
||||||
|
|||||||
959
pages/selfStudy/selfStudy.vue
Normal file
959
pages/selfStudy/selfStudy.vue
Normal file
@@ -0,0 +1,959 @@
|
|||||||
|
<template style="">
|
||||||
|
<view class="" style="background-color: #d4eaf0; min-height: calc(100vh); padding: 20rpx;">
|
||||||
|
<public-module></public-module>
|
||||||
|
<z-nav-bar :title="pagetitle" backState="2000">
|
||||||
|
<text slot="right" style="padding-right: 20rpx; font-size: 26rpx; color: #666;"
|
||||||
|
@click="showPopup = true">考试说明</text>
|
||||||
|
</z-nav-bar>
|
||||||
|
<!-- 有考试结果时候 -->
|
||||||
|
<template v-if="exameResult.id">
|
||||||
|
<view class="border_radius_10 haveResult">
|
||||||
|
<view class="scoreBox">
|
||||||
|
本次考试卷面成绩为:<text class="score PM_font">{{exameResult.score}} 分</text>
|
||||||
|
</view>
|
||||||
|
<view class="" style="margin: 20rpx 0; text-align: center;">
|
||||||
|
<template v-if="exameResult.score >= 60 && selfStudyCertificate.length > 0">
|
||||||
|
<view class="">
|
||||||
|
<view class="congritulations">
|
||||||
|
<image src="../../static/icon/xunzhang.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
<view class="">
|
||||||
|
<text>恭喜!您本次考试获得了自考证书,请前往 我的->我的证书查看</text>
|
||||||
|
<view class="" style="text-align: center;">
|
||||||
|
<text class="small_btn border_radius_10"
|
||||||
|
style="display: inline-block;font-size: 28rpx; color: #55aaff; border:1px solid #55aaff"
|
||||||
|
@click="onPageJump('/pages/certificate/certificate')">查看证书</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<text>很遗憾本次考试您没有获得自考证书,祝您下次考试旗开得胜!!</text>
|
||||||
|
</template>
|
||||||
|
</view>
|
||||||
|
<view class="flex_box flex_between">
|
||||||
|
<button type="primary" size="mini" @click="goToClass">返回课程</button>
|
||||||
|
<button type="warn" size="mini" @click="goToPaper">查看试卷</button>
|
||||||
|
</view>
|
||||||
|
<view class="result_imgBox">
|
||||||
|
<image src="../../static/jiesuan_Icon.jpg" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<!-- 没有考试结果的时候 -->
|
||||||
|
<template v-else>
|
||||||
|
<view style="padding: 20rpx; " class="timeBox border_radius_10 flex_box flex_between align-items_box"
|
||||||
|
v-if="secondTimeDif > 0">
|
||||||
|
<!-- <view class=""> -->
|
||||||
|
<view class="">
|
||||||
|
<text><i style="color: #00aaff; font-style: normal; margin-right: 10rpx;" class="">{{curIndex1+1}}
|
||||||
|
</i> / {{testPaper.length}}</text>
|
||||||
|
<text class="checkQuestBtn small_btn border_radius_10" @click="showQuestIndex = true">全部题目</text>
|
||||||
|
</view>
|
||||||
|
<view class="flex_box align-items_box" v-if="secondTimeDif > 0">
|
||||||
|
<view class="">
|
||||||
|
剩余时间:
|
||||||
|
</view>
|
||||||
|
<view class="">
|
||||||
|
<uni-countdown @timeup="timeup" :font-size="20" :show-day="false"
|
||||||
|
:hour="timeDif.hour"
|
||||||
|
:minute="timeDif.minutes"
|
||||||
|
:second="timeDif.second"
|
||||||
|
color="#ffaa7f" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- </view> -->
|
||||||
|
<!-- <pre>{{testPaper}}</pre> -->
|
||||||
|
</view>
|
||||||
|
<view class="question border_radius_10" v-if="curQuestion.id">
|
||||||
|
<view class="">
|
||||||
|
<text class="questionType">{{curQuestion.type == 0 ? '单选题' : '多选题'}}</text>
|
||||||
|
<!-- <text class="checkQuestBtn small_btn border_radius_10" @click="showQuestIndex = true">检查</text> -->
|
||||||
|
<view class="questionItem" v-if="curQuestion.id">
|
||||||
|
<view class="">
|
||||||
|
<text>{{curQuestion.content}}</text>
|
||||||
|
</view>
|
||||||
|
<view class="optionsBox">
|
||||||
|
<view
|
||||||
|
:class="['item','border_radius_10',curQuestion.answerIds.includes(item.id) ? 'choosed' : '']"
|
||||||
|
@click="clickOption(item, index)" v-for="(item, index) in curQuestion.options"
|
||||||
|
:key="index">
|
||||||
|
<text>{{item.content}}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="btnBox " style="overflow: hidden;">
|
||||||
|
<view class="flex_box flex_between">
|
||||||
|
<view class="item">
|
||||||
|
<button @click="showPrevQuestion" type="default" plain="true" :disabled="curIndex1 == 0"
|
||||||
|
size="mini">上一题</button>
|
||||||
|
</view>
|
||||||
|
<view class="item" v-show="curIndex1 == testPaper.length-1 && !isOvertime">
|
||||||
|
<button @click="sumitAnswer" type="primary" size="mini">交 卷</button>
|
||||||
|
</view>
|
||||||
|
<view class="item">
|
||||||
|
<button @click="showNextQuestion" type="primary"
|
||||||
|
:disabled="curIndex1 == testPaper.length-1" size="mini">下一题</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<u-popup key="1" :show="showPopup" :round="10" @close="hidePopup">
|
||||||
|
<view class="guanli">
|
||||||
|
<h3>考试说明</h3>
|
||||||
|
<view class="tips border_radius_10">
|
||||||
|
<text>①、每位学员共有两次考试的机会,如第一次考试成绩达标则不用进行第二次的考试,请认真对待每次考试;<br />
|
||||||
|
②、请在倒计时结束前完成答题,倒计时结束后将自动交卷。</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
<u-popup key="2" :show="showQuestIndex" :round="10" @close="hidePopup">
|
||||||
|
<view class="guanli">
|
||||||
|
<h3>题目索引</h3>
|
||||||
|
<view class="" style="text-align: center; font-size: 28rpx; line-height: 50rpx; color: #666;">
|
||||||
|
<text>红框标识未作答,绿色框标识已选定答案,灰色框标识您未查看的题目</text>
|
||||||
|
</view>
|
||||||
|
<view class="">
|
||||||
|
<view class="questIndx questIndxPup flex_box">
|
||||||
|
<!-- <scroll-view class="scroll-view_H" scroll-x="true">
|
||||||
|
<view class="scroll-view-item_H" v-for="index of getallLIst" :key="index"> -->
|
||||||
|
<text v-for="index of getallLIst" @click="clickIndex(index)" :key="index"
|
||||||
|
:class="[ haveAnswerList.includes(index-1) ? 'green' : '', noAnswerList.includes(index-1) ? 'red' : '',(curIndex1+1) == index ? 'cur' :'']">{{index}}</text>
|
||||||
|
<!-- </view>
|
||||||
|
</scroll-view> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
<u-popup :show="protocolShow" mode="center" round="6" :key="3">
|
||||||
|
<view class="popup_box">
|
||||||
|
<view class="title">温馨提示</view>
|
||||||
|
<view class="content">
|
||||||
|
<view class="center">
|
||||||
|
用户您好,本次考试时间为 <text style="color: red; font-weight: bold; font-size: 30rpx;">{{testDuration}}</text> 分钟<br />
|
||||||
|
<view style="color: red; font-weight: bold"> 注: </view>
|
||||||
|
<view>
|
||||||
|
<text>①、每位学员共有两次考试的机会,如第一次考试成绩达标则不用进行第二次的考试,请认真对待每次考试;<br />
|
||||||
|
②、请在倒计时结束前完成答题,倒计时结束后将自动交卷;</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="bottom">
|
||||||
|
<view class="button_box">
|
||||||
|
<u-button size="small" text="稍后再考" @click="cancelClick"></u-button>
|
||||||
|
<u-button text="开始考试" color="#258feb" size="small" @click="onHandleClickBuy"></u-button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import $http from '@/config/requestConfig.js';
|
||||||
|
import debounce from "@/common/debounce.js";
|
||||||
|
import {
|
||||||
|
mapState,mapMutations
|
||||||
|
} from "vuex";
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
testDuration:'45', // 考试时长
|
||||||
|
protocolShow:false,
|
||||||
|
flag:false,
|
||||||
|
showPopup: false,
|
||||||
|
code: 0, // 英文code
|
||||||
|
courseId: undefined,
|
||||||
|
testPaper: [],
|
||||||
|
curQuestion: {
|
||||||
|
answerIds: []
|
||||||
|
},
|
||||||
|
result: {}, // 考试结果
|
||||||
|
curIndex1: 0,
|
||||||
|
paperCreateTime: 0,
|
||||||
|
examId: undefined,
|
||||||
|
endTime: undefined, // 结束时间戳
|
||||||
|
timeDif:{}, // 时间差(结束 - 现在)
|
||||||
|
isOvertime: false, // 是否超时
|
||||||
|
step: 8, /// 步长
|
||||||
|
// questIndexList: [],
|
||||||
|
nowPart: 1,
|
||||||
|
|
||||||
|
maxNumber: 0,
|
||||||
|
minNumber: 0,
|
||||||
|
noAnswerList: [],
|
||||||
|
haveAnswerList:[],
|
||||||
|
exameResult:{},
|
||||||
|
showQuestIndex:false,
|
||||||
|
secondTimeDif:undefined,
|
||||||
|
pagetitle:'', // 页面标题
|
||||||
|
selfStudyCertificate:[],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async onLoad(e) {
|
||||||
|
console.log('收到得值',e);
|
||||||
|
this.courseId = e.id
|
||||||
|
// this.testDuration = e.testDuration
|
||||||
|
this.protocolShow = true
|
||||||
|
this.pagetitle = '准备考试'
|
||||||
|
},
|
||||||
|
onHide() {
|
||||||
|
if (!this.isOvertime) {}
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
// this.endTime = this.hourUp(1)
|
||||||
|
// console.log('this.endTime', this.endTime.getTime());
|
||||||
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
if (!this.isOvertime) { // 如果中途退出
|
||||||
|
// this.giveZero()
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(["userInfo"]),
|
||||||
|
getallLIst() {
|
||||||
|
const numbers = Array.from(Array(this.testPaper.length).keys(), n => n + 1);
|
||||||
|
console.log('numbers', numbers);
|
||||||
|
return numbers
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
...mapMutations(['setPaperEndTime']),
|
||||||
|
cancelClick(){
|
||||||
|
this.protocolShow = false
|
||||||
|
uni.navigateBack({
|
||||||
|
delta: 2
|
||||||
|
});
|
||||||
|
// uni.navigateTo({
|
||||||
|
// url: `/pages/course/courseDetail?id=${this.courseId}`
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
onHandleClickBuy(){ // 确定开始考试
|
||||||
|
debounce(async () => {
|
||||||
|
this.protocolShow = false
|
||||||
|
if (this.testPaper.length <= 0) {
|
||||||
|
this.pagetitle = '获取试卷'
|
||||||
|
this.getTestPage()
|
||||||
|
}else{
|
||||||
|
uni.showToast({
|
||||||
|
title:'页面发生错误,请退出后重新进入页面或联系客服人员',
|
||||||
|
icon:'none',
|
||||||
|
duration:3000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},300)
|
||||||
|
},
|
||||||
|
// 获取服务器时间
|
||||||
|
async getServerTime() {
|
||||||
|
var time = 0
|
||||||
|
await $http.request({
|
||||||
|
url: "common/classExam/getServerTime",
|
||||||
|
method: "POST",
|
||||||
|
data: {},
|
||||||
|
header: { //默认 无 说明:请求头
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(async (res) => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
time = res.serverTime
|
||||||
|
} else {
|
||||||
|
time = -1
|
||||||
|
}
|
||||||
|
}).catch(e => {
|
||||||
|
time = -1
|
||||||
|
});
|
||||||
|
return time
|
||||||
|
},
|
||||||
|
// 单个题的提交
|
||||||
|
saveQuestAnswer(paperId,questIndex,ids){
|
||||||
|
console.log('收到的值',paperId,questIndex,ids);
|
||||||
|
$http.request({
|
||||||
|
url: "common/classExam/submitOption",
|
||||||
|
method: "POST",
|
||||||
|
data: {
|
||||||
|
"id": paperId, //试卷id
|
||||||
|
"no": questIndex, // 提索引 1....
|
||||||
|
"answer": ids // 答案id
|
||||||
|
},
|
||||||
|
header: { //默认 无 说明:请求头
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
|
||||||
|
if (res.code == 0) {
|
||||||
|
console.log('提交成功');
|
||||||
|
}else{
|
||||||
|
uni.showToast({
|
||||||
|
title: e.errMsg,
|
||||||
|
icon: 'error'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}).catch(e => {
|
||||||
|
console.log(e, '数据报错')
|
||||||
|
uni.showToast({
|
||||||
|
title: e.errMsg,
|
||||||
|
icon: 'error'
|
||||||
|
})
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getNoAnswerList() {
|
||||||
|
var list = []
|
||||||
|
// if (this.curIndex1 > 0) {
|
||||||
|
for (var i = 0; i < this.testPaper.length; i++) {
|
||||||
|
if (this.testPaper[i].answerIds.length == 0 && this.testPaper[i].hadOpend) {
|
||||||
|
console.log('fuhe?');
|
||||||
|
list.push(i)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// }
|
||||||
|
return list
|
||||||
|
},
|
||||||
|
gethaveAnswerList() {
|
||||||
|
var list = []
|
||||||
|
// if (this.curIndex1 > 0) {
|
||||||
|
for (var i = 0; i < this.testPaper.length; i++) {
|
||||||
|
if (this.testPaper[i].answerIds.length > 0 && this.testPaper[i].hadOpend) {
|
||||||
|
// console.log('fuhe?');
|
||||||
|
list.push(i)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// }
|
||||||
|
return list
|
||||||
|
},
|
||||||
|
// 倒计时结束 (超时)
|
||||||
|
timeup() {
|
||||||
|
this.isOvertime = true
|
||||||
|
this.sumbitPaper()
|
||||||
|
let that = this
|
||||||
|
uni.showModal({
|
||||||
|
title: '提示',
|
||||||
|
content: "考试结束,系统已为您自动交卷,点击按钮返回课程",
|
||||||
|
confirmText: '知道了',
|
||||||
|
showCancel: false,
|
||||||
|
success: (res) => {
|
||||||
|
if (res.confirm) {
|
||||||
|
// that.goToClass()
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/course/courseDetail?id=${that.courseId}`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
goToPaper(){
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/miniClass/paperBack?id=${this.examId}`
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
// 获取交卷数据
|
||||||
|
sumitAnswer() {
|
||||||
|
debounce(async () => {
|
||||||
|
let that = this
|
||||||
|
// this.noAnswerList = await this.getNoAnswerList()
|
||||||
|
if(this.noAnswerList.length > 0){
|
||||||
|
this.showQuestIndex = true
|
||||||
|
uni.showModal({
|
||||||
|
title:'提示',
|
||||||
|
content:'您有未作答的题目,是否继续交卷操作?',
|
||||||
|
cancelText:'点错了',
|
||||||
|
confirmText:'确定',
|
||||||
|
success(res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
that.sumbitPaper()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
that.sumbitPaper()
|
||||||
|
}
|
||||||
|
},300)
|
||||||
|
},
|
||||||
|
// q请求提交试卷
|
||||||
|
async sumbitPaper(ids) {
|
||||||
|
let that = this
|
||||||
|
if(that.flag){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
that.flag = true
|
||||||
|
uni.showLoading({
|
||||||
|
title:'正在交卷'
|
||||||
|
})
|
||||||
|
await $http.request({
|
||||||
|
url: "common/classExam/submitExamPaper",
|
||||||
|
method: "POST",
|
||||||
|
data: {
|
||||||
|
id: that.examId
|
||||||
|
},
|
||||||
|
header: { //默认 无 说明:请求头
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(async res => {
|
||||||
|
uni.hideLoading()
|
||||||
|
if (res.code == 0) {
|
||||||
|
console.log('交卷结果',res);
|
||||||
|
uni.showToast({
|
||||||
|
title: '交卷成功',
|
||||||
|
icon: 'success'
|
||||||
|
})
|
||||||
|
setTimeout( async ()=>{
|
||||||
|
that.exameResult = res.examPaper
|
||||||
|
// this.timeup()
|
||||||
|
that.showQuestIndex = false
|
||||||
|
that.secondTimeDif = 0
|
||||||
|
that.isOvertime = true
|
||||||
|
if(that.exameResult.score >= 60){
|
||||||
|
var newCertificate = await that.getCertificateInfo()
|
||||||
|
console.log('5555555证书资料', newCertificate);
|
||||||
|
that.selfStudyCertificate = []
|
||||||
|
if (newCertificate && newCertificate.length > 0) {
|
||||||
|
newCertificate.forEach(item => {
|
||||||
|
if (item.classId != '' && item.classId > 0) {
|
||||||
|
// this.classCertificate.push(item)
|
||||||
|
} else {
|
||||||
|
that.selfStudyCertificate.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
},300)
|
||||||
|
}else{
|
||||||
|
that.flag = false
|
||||||
|
uni.showToast({
|
||||||
|
title: e.errMsg,
|
||||||
|
icon: 'error'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}).catch(e => {
|
||||||
|
that.flag = false
|
||||||
|
uni.hideLoading()
|
||||||
|
console.log(e, '数据报错')
|
||||||
|
// this.status = 3
|
||||||
|
uni.showToast({
|
||||||
|
title: e.errMsg,
|
||||||
|
icon: 'error'
|
||||||
|
})
|
||||||
|
});
|
||||||
|
},
|
||||||
|
showPrevQuestion() {
|
||||||
|
// 上一题
|
||||||
|
this.curIndex1--
|
||||||
|
// this.curQuestion.answerIds = []
|
||||||
|
this.curQuestion = {
|
||||||
|
...this.testPaper[this.curIndex1]
|
||||||
|
}
|
||||||
|
this.testPaper[this.curIndex1].hadOpend = true
|
||||||
|
console.log('----------------', this.testPaper );
|
||||||
|
this.noAnswerList = this.getNoAnswerList()
|
||||||
|
this.haveAnswerList = this.gethaveAnswerList()
|
||||||
|
},
|
||||||
|
showNextQuestion() {
|
||||||
|
debounce(async () => {
|
||||||
|
// 下一题
|
||||||
|
this.curIndex1++
|
||||||
|
// this.curQuestion.answerIds = []
|
||||||
|
this.curQuestion = {
|
||||||
|
...this.testPaper[this.curIndex1]
|
||||||
|
}
|
||||||
|
this.testPaper[this.curIndex1].hadOpend = true
|
||||||
|
// console.log('+++++++++++++++', this.testPaper, );
|
||||||
|
this.noAnswerList = this.getNoAnswerList()
|
||||||
|
this.haveAnswerList = this.gethaveAnswerList()
|
||||||
|
},300)
|
||||||
|
},
|
||||||
|
clickOption(item, index) {
|
||||||
|
// debounce(async () => {
|
||||||
|
console.log('item', item, index, this.curIndex1);
|
||||||
|
if (this.curQuestion.type == 0) {
|
||||||
|
this.testPaper[this.curIndex1].answerIds = [item.id]
|
||||||
|
this.curQuestion.answerIds = [item.id]
|
||||||
|
// console.log('666666666', this.testPaper, this.curQuestion.answerIds);
|
||||||
|
this.$forceUpdate()
|
||||||
|
} else if (this.curQuestion.type == 1) {
|
||||||
|
console.log('多选');
|
||||||
|
var isIN = this.curQuestion.answerIds.findIndex(itemss => {
|
||||||
|
return itemss == item.id
|
||||||
|
})
|
||||||
|
if (isIN >= 0) {
|
||||||
|
console.log('有重复的,删除对应的', isIN);
|
||||||
|
this.testPaper[this.curIndex1].answerIds.splice(isIN, 1)
|
||||||
|
this.curQuestion.answerIds.splice(isIN, 1)
|
||||||
|
} else {
|
||||||
|
this.testPaper[this.curIndex1].answerIds.push(item.id)
|
||||||
|
|
||||||
|
this.curQuestion.answerIds = [...this.testPaper[this.curIndex1].answerIds]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.noAnswerList = this.getNoAnswerList()
|
||||||
|
this.haveAnswerList = this.gethaveAnswerList()
|
||||||
|
console.log('this.testPaper.',this.testPaper.id);
|
||||||
|
this.saveQuestAnswer(this.examId,this.curIndex1+1,this.curQuestion.answerIds.join(','))
|
||||||
|
console.log('noAnswerList', this.noAnswerList)
|
||||||
|
// },300)
|
||||||
|
},
|
||||||
|
onPageJump(url, id) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `${url}?id=${id}`,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
setDesc() {
|
||||||
|
const letterArr = []
|
||||||
|
// 字母A的code值是65,但因为已经到字母D了,所以直接从69E开始循环
|
||||||
|
for (let i = 65; i < 91; i++) {
|
||||||
|
letterArr[i] = String.fromCharCode(i)
|
||||||
|
}
|
||||||
|
return letterArr
|
||||||
|
},
|
||||||
|
async getTestPage() {
|
||||||
|
uni.showLoading({
|
||||||
|
title: '正在生成试卷'
|
||||||
|
})
|
||||||
|
console.log('this.courseId',this.courseId);
|
||||||
|
await $http.request({
|
||||||
|
url: "common/classExam/generateExamPaper",
|
||||||
|
method: "POST",
|
||||||
|
data: {
|
||||||
|
// "classId":
|
||||||
|
"type":"2",//考试类型 1小班 2自考
|
||||||
|
"relationId": parseInt(this.courseId), //小班id、课程id
|
||||||
|
},
|
||||||
|
header: { //默认 无 说明:请求头
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(async res => {
|
||||||
|
uni.hideLoading()
|
||||||
|
if (res.code == 0) {
|
||||||
|
// that.isHave = true
|
||||||
|
res.examPaper.forEach(item => {
|
||||||
|
item.answerIds = []
|
||||||
|
item.hadOpend = false // 是否呗打开过
|
||||||
|
var code = 0
|
||||||
|
item.options.forEach(item1 => {
|
||||||
|
const randomAbc = this.setDesc().splice(65)
|
||||||
|
item1.content = randomAbc[code] + '、' + item1.content
|
||||||
|
code++
|
||||||
|
})
|
||||||
|
})
|
||||||
|
this.testPaper = res.examPaper
|
||||||
|
this.examId = res.id
|
||||||
|
this.paperCreateTime = 1
|
||||||
|
this.endTime = res.planEndTime
|
||||||
|
var severNowTime = await this.getServerTime()
|
||||||
|
this.secondTimeDif = this.endTime - severNowTime // 时间差 毫秒
|
||||||
|
let that = this
|
||||||
|
if(this.secondTimeDif > 0){
|
||||||
|
this.timeDif.hour = parseInt((this.secondTimeDif % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))
|
||||||
|
this.timeDif.minutes = parseInt((this.secondTimeDif % (1000 * 60 * 60)) / (1000 * 60))
|
||||||
|
this.timeDif.second = (this.secondTimeDif % (1000 * 60)) / 1000
|
||||||
|
console.log('this.endTime',this.timeDif.hour, this.timeDif.minutes, this.timeDif.second);
|
||||||
|
}else{
|
||||||
|
uni.showModal({
|
||||||
|
title:'提示',
|
||||||
|
content:'您的时间已经结束,即将返回课程页面',
|
||||||
|
confirmText:'好的',
|
||||||
|
showCancel:fals,
|
||||||
|
success: (res) => {
|
||||||
|
if(res.confirm){
|
||||||
|
that.goToClass()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
this.curQuestion = {
|
||||||
|
...this.testPaper[this.curIndex1]
|
||||||
|
}
|
||||||
|
this.testPaper[this.curIndex1].hadOpend = true
|
||||||
|
uni.showToast({
|
||||||
|
title: '获取成功',
|
||||||
|
icon: 'success'
|
||||||
|
})
|
||||||
|
console.log(res, '试卷', this.curQuestion)
|
||||||
|
this.pagetitle = '正在考试'
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.errMsg,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 3000
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}).catch(e => {
|
||||||
|
uni.hideLoading()
|
||||||
|
console.log(e, '数据报错')
|
||||||
|
// this.status = 3
|
||||||
|
uni.showToast({
|
||||||
|
title: e.errMsg,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 3000
|
||||||
|
})
|
||||||
|
setTimeout(()=>{
|
||||||
|
this.goToClass()
|
||||||
|
},1000)
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 查询证书情况
|
||||||
|
async getCertificateInfo() {
|
||||||
|
var list = undefined
|
||||||
|
await $http.request({
|
||||||
|
url: "common/userCertificate/getUserCertificateList",
|
||||||
|
method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||||||
|
data: {
|
||||||
|
"type": '', //证书类型A a证 B b证 ZK自考
|
||||||
|
"courseId": this.courseId //课程id
|
||||||
|
},
|
||||||
|
header: { //默认 无 说明:请求头
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
if (res.code != 0) {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.errMsg,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (res.code == 0) {
|
||||||
|
res.certificateList.forEach(item => {
|
||||||
|
item.certificateUrl && item.certificateUrl != '' ? item
|
||||||
|
.certificateUrlList = item.certificateUrl.split(',') : item
|
||||||
|
.certificateUrlList = []
|
||||||
|
})
|
||||||
|
list = res.certificateList
|
||||||
|
}
|
||||||
|
console.log('证书接口请求结果', res);
|
||||||
|
uni.hideLoading()
|
||||||
|
}).catch(e => {
|
||||||
|
uni.hideLoading()
|
||||||
|
console.log(e, '数据报错')
|
||||||
|
// this.status = 3
|
||||||
|
uni.showToast({
|
||||||
|
title: e.errMsg,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
});
|
||||||
|
return list
|
||||||
|
},
|
||||||
|
giveZero() {
|
||||||
|
// 没有完成完成考试,记为0分
|
||||||
|
},
|
||||||
|
showElart() {
|
||||||
|
// uni.showModal({
|
||||||
|
// title:'提示',
|
||||||
|
// content:"您还没有完成考试,确定要离开吗?离开后成绩会记为0分,是否继续?"
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
goToClass() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/course/courseDetail?id=${this.courseId}`
|
||||||
|
})
|
||||||
|
},
|
||||||
|
hidePopup() {
|
||||||
|
this.showPopup = false
|
||||||
|
this.showQuestIndex = false
|
||||||
|
},
|
||||||
|
clickIndex(val) {
|
||||||
|
this.curIndex1 = val - 1
|
||||||
|
console.log('val', val, this.curIndex1, this.testPaper.length);
|
||||||
|
for (var i = 0; i < this.curIndex1; i++) {
|
||||||
|
this.testPaper[i].hadOpend = true
|
||||||
|
}
|
||||||
|
this.curQuestion = this.testPaper[this.curIndex1]
|
||||||
|
this.testPaper[this.curIndex1].hadOpend = true
|
||||||
|
this.hidePopup()
|
||||||
|
this.noAnswerList = this.getNoAnswerList()
|
||||||
|
this.haveAnswerList = this.gethaveAnswerList()
|
||||||
|
},
|
||||||
|
hourUp(start,e) {
|
||||||
|
// 比现在多几个小时
|
||||||
|
// var end = Date.now()
|
||||||
|
var startTimeDate = new Date(start)
|
||||||
|
var startTime = startTimeDate.getTime();
|
||||||
|
var step = 1000 * 60 * 60 * e // 时间间隔
|
||||||
|
var interval = startTime + step; //开始 + 时长 = 结束的毫秒数
|
||||||
|
// var a = new Date(interval)
|
||||||
|
console.log('aaaaaaaaaa结束时间的毫秒数,时间戳',interval);
|
||||||
|
return interval
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "@/style/mixin.scss";
|
||||||
|
.congritulations {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
text-align: center;
|
||||||
|
margin: 10rpx auto;
|
||||||
|
display: block;
|
||||||
|
image {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.popup_box {
|
||||||
|
padding-bottom: 20rpx;
|
||||||
|
width: 85vw;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
height: auto;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-family: PangMenZhengDaoBiaoTiTiMianFeiBan;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 46rpx;
|
||||||
|
color: $themeColor;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
// line-height: 46rpx;
|
||||||
|
padding: 20rpx;
|
||||||
|
// border-leradius: 6px;
|
||||||
|
border-top-left-radius: 6px;
|
||||||
|
border-top-right-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
font-size: 26rpx;
|
||||||
|
letter-spacing: 0.15rpx;
|
||||||
|
padding: 20rpx;
|
||||||
|
color: #3f3f3f;
|
||||||
|
|
||||||
|
.top {
|
||||||
|
margin: 30rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center {
|
||||||
|
line-height: 40rpx;
|
||||||
|
// padding:0 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 60rpx;
|
||||||
|
|
||||||
|
font-size: 24rpx;
|
||||||
|
line-height: 26rpx;
|
||||||
|
color: #b0b0b0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.button_box {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
|
||||||
|
.u-button {
|
||||||
|
margin-left: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.u-button:nth-child(1) {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.questIndx { overflow: hidden;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
span{padding: 20rpx 0; display: inline-block;}
|
||||||
|
.red{border-color: #f56c6c; color: #f56c6c;}
|
||||||
|
.green{
|
||||||
|
border-color: #67c23a; color: #67c23a;
|
||||||
|
}
|
||||||
|
text {
|
||||||
|
font-size: 28rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
// padding: 6rpx 10rpx;
|
||||||
|
display: flex;
|
||||||
|
// justify-content: center;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
// align-items: center;
|
||||||
|
width: 70rpx;
|
||||||
|
height: 70rpx;
|
||||||
|
line-height: 70rpx;
|
||||||
|
text-align: center;
|
||||||
|
border: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cur {
|
||||||
|
background-color: #409eff;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.guanli {
|
||||||
|
padding: 40rpx;
|
||||||
|
max-height: 60vh;
|
||||||
|
overflow-y: scroll;
|
||||||
|
h3 {
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tips {
|
||||||
|
background: #fbe8e8;
|
||||||
|
color: #f56c6c;
|
||||||
|
line-height: 50rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
padding: 10rpx 20rpx;
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
|
||||||
|
.questionType {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
top: 20rpx;
|
||||||
|
background-color: $themeColor;
|
||||||
|
color: #fff;
|
||||||
|
padding: 10rpx 20rpx;
|
||||||
|
border-radius: 0 50rpx 50rpx 0;
|
||||||
|
}
|
||||||
|
.checkQuestBtn {
|
||||||
|
margin-left: 10rpx;
|
||||||
|
// position: absolute;
|
||||||
|
// right: 20rpx;
|
||||||
|
// top: 20rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
// border: 1px solid $themeColor;
|
||||||
|
background-color: #409eff;
|
||||||
|
color: #fff;
|
||||||
|
// padding: 10rpx 20rpx;
|
||||||
|
// border-radius: 0 50rpx 50rpx 0;
|
||||||
|
}
|
||||||
|
// .checkQuestBtn {
|
||||||
|
// position: absolute;
|
||||||
|
// right: 20rpx;
|
||||||
|
// top: 20rpx;
|
||||||
|
// border: 1px solid $themeColor;
|
||||||
|
// color: $themeColor;
|
||||||
|
// // padding: 10rpx 20rpx;
|
||||||
|
// // border-radius: 0 50rpx 50rpx 0;
|
||||||
|
// }
|
||||||
|
.scroll-Y {
|
||||||
|
height: 300rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll-view_H {
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll-view-item {
|
||||||
|
// height: 300rpx;
|
||||||
|
line-height: 300rpx;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 36rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll-view-item_H {
|
||||||
|
display: inline-block;
|
||||||
|
width: 13%;
|
||||||
|
// height: 300rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
// line-height: 300rpx;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 36rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.haveResult {
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 20rpx;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scoreBox {
|
||||||
|
margin-top: 100rpx;
|
||||||
|
color: #333;
|
||||||
|
margin-bottom: 50rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.score {
|
||||||
|
font-size: 50rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.question {
|
||||||
|
padding: 20rpx;
|
||||||
|
padding-top: 100rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.optionsBox {
|
||||||
|
margin: 30rpx 0;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
border: 1px solid #eee;
|
||||||
|
padding: 20rpx 16rpx;
|
||||||
|
margin-bottom: 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.choosed {
|
||||||
|
border-color: #b3d8ff;
|
||||||
|
color: #409eff;
|
||||||
|
background-color: #ecf5ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
border-color: #c2e7b0;
|
||||||
|
color: #67c23a;
|
||||||
|
background-color: #f0f9eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wrong {
|
||||||
|
border-color: #fbc4c4;
|
||||||
|
color: #f56c6c;
|
||||||
|
background-color: #fef0f0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.result_imgBox {
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeBox {
|
||||||
|
background-color: #fff;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.questIndx {
|
||||||
|
|
||||||
|
.cur {
|
||||||
|
border-color:#409eff ;
|
||||||
|
background-color: #409eff;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.questIndxPup{
|
||||||
|
justify-content: space-around;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
text{
|
||||||
|
display: inline-block; margin: 10rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.btnBox {
|
||||||
|
.item {
|
||||||
|
width: 40%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -267,12 +267,13 @@
|
|||||||
});
|
});
|
||||||
this.getOS()
|
this.getOS()
|
||||||
// #endif
|
// #endif
|
||||||
|
this.getCountyCode()
|
||||||
|
this.getSettlement()
|
||||||
},
|
},
|
||||||
//页面显示
|
//页面显示
|
||||||
onShow() {
|
onShow() {
|
||||||
// this.closeMusic()
|
// this.closeMusic()
|
||||||
this.getCountyCode()
|
|
||||||
this.getSettlement()
|
|
||||||
},
|
},
|
||||||
|
|
||||||
//方法
|
//方法
|
||||||
|
|||||||
BIN
static/icon/notbuy.png
Normal file
BIN
static/icon/notbuy.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
BIN
static/icon/xunzhang.png
Normal file
BIN
static/icon/xunzhang.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
BIN
static/icon/yesbuy.png
Normal file
BIN
static/icon/yesbuy.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
Reference in New Issue
Block a user