This commit is contained in:
@fawn-nine
2024-10-15 16:50:47 +08:00
parent 42da449031
commit bc7656e5ed
12 changed files with 580 additions and 392 deletions

View File

@@ -26,7 +26,7 @@
onLaunch: function(e) { onLaunch: function(e) {
// 检测自动更新 // 检测自动更新
// #ifdef APP-PLUS // #ifdef APP-PLUS
updata(); // updata();
// #endif // #endif
uni.getSystemInfo({ uni.getSystemInfo({

View File

@@ -6,9 +6,9 @@ if (process.env.NODE_ENV === 'development') {
// socketUrl = "ws://localhost:6001/"; // socketUrl = "ws://localhost:6001/";
// baseUrl = "https://twin-ui.com/demo/"; // baseUrl = "https://twin-ui.com/demo/";
// baseUrl = "https://testapi.nuttyreading.com/"; // 线上测试环境 // baseUrl = "https://testapi.nuttyreading.com/"; // 线上测试环境
// baseUrl = "https://api.nuttyreading.com/"; // 线上正式 baseUrl = "https://api.nuttyreading.com/"; // 线上正式
// baseUrl = "http://192.168.110.110:9200/pb/"; // 磊哥 // baseUrl = "http://192.168.110.110:9200/pb/"; // 磊哥
baseUrl = "http://192.168.110.100:9200/pb/"; // 开发用电脑 // baseUrl = "http://192.168.110.100:9200/pb/"; // 开发用电脑
// baseUrl = "http://59.110.212.44:9200/pb/"; // baseUrl = "http://59.110.212.44:9200/pb/";
// baseUrl = "http://192.168.110.100:9100/pb/"; // 开发用电脑 // baseUrl = "http://192.168.110.100:9100/pb/"; // 开发用电脑
// baseUrl = "http://192.168.110.110:9200/pb/"; // baseUrl = "http://192.168.110.110:9200/pb/";

View File

@@ -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,15 +66,21 @@
</view> </view>
</view> </view>
</view> </view>
<!-- {{selfStudyCertificate.length}}-{{classInfo.id}}-{{classInfo.state}}- -->
<!-- 自考入口 没有加入班级的时候暴漏入口--> <!-- 自考入口 没有加入班级的时候暴漏入口-->
<view class="selfStudyBox" v-if="librayList[curIndex] && !classInfo.id"> <view class="selfStudyBox"
<view style="padding: 20rpx;"> v-if="librayList[curIndex] && (!classInfo.id || classInfo.state == '2' || selfStudyCertificate.length >= 0)">
<view style="padding: 20rpx;"
v-if="(selfStudyCertificate.length == 0 || selfStudyPaperList.length > 0 && !testingPaper.id) && (!classInfo.id || classInfo.state == '2')">
<view class=""> <view class="">
<view class="" style="line-height: 40rpx; font-size: 28rpx;" v-if="selfStudyCertificate.length == 0"> <view class="" style="line-height: 40rpx; font-size: 28rpx;"
<text>课程学习进度大于等于70%您可以参与本门课程的自考考试考试成绩大于60分即可获得本门课程的B级证书如您想获得本门课程的A级证书可参加小班教学</text> v-if="selfStudyCertificate.length == 0">
<text>课程学习进度大于等于70%您可以参与本门课程的自考考试考试成绩大于60分即可获得本门课程的自考证书如您想获得本门课程的A级或B级证书可参加小班教学</text>
</view> </view>
<view :class="['testRecode',zhedieTestRecode?'zhedie':'']" v-if="selfStudyPaperList.length > 0 && !testingPaper.id"> <view :class="['testRecode',!zhedieTestRecode?'zhedie':'']"
<view class="item flex_box flex_between align-items_box" v-for="(item, index) in selfStudyPaperList" :key="index"> 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 style="color: #999; font-size: 26rpx;">{{index + 1}}次自考成绩</text>
<text class="score PM_font">{{item.score}}</text> <text class="score PM_font">{{item.score}}</text>
<view class="seePaper" @click.stop="seePaper(item.id)"> <view class="seePaper" @click.stop="seePaper(item.id)">
@@ -87,40 +91,52 @@
查看试卷 查看试卷
</view> </view>
</view> </view>
<view class="opbutn" v-if="selfStudyPaperList.length >= 3" @click="zhedieTestRecode = !zhedieTestRecode"> <view class="opbutn" v-if="selfStudyPaperList.length >= 3"
@click="zhedieTestRecode = !zhedieTestRecode">
{{zhedieTestRecode ? '收起' : '展开'}} {{zhedieTestRecode ? '收起' : '展开'}}
</view> </view>
</view> </view>
<view v-if="selfStudyCertificate.length > 0" style="font-size: 30rpx; text-align: center; margin: 20rpx 0;"> <view class="" v-if="selfStudyCertificate.length > 0"
<text>恭喜您已通过自考考试获得本门课程的B级证书,如您想获得本门课程的A级证书可参加小班教学</text> 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>
<view class=" " style="margin-top: 20rpx;"> </view>
<view class=" " style="margin-top: 20rpx; text-align: center;">
<!-- <view class=""> --> <!-- <view class=""> -->
<template v-if="selfStudyCertificate.length <= 0"> <!-- {{canJoinTestTime}} -->
<!-- {{selfStudyPaperList.length % 2}} -->
<template v-if="selfStudyCertificate.length <= 0 && (!classInfo.id || classInfo.state == '2')">
<template v-if="!testingPaper.id"> <template v-if="!testingPaper.id">
<button @click="onPageJump('/pages/selfStudy/selfStudy',courseId)" style="padding: 0 20rpx" <button @click="onPageJump('/pages/selfStudy/selfStudy',courseId)"
type="primary" v-if="selfStudyPaperList.length == 0" style="padding: 0 20rpx" type="primary"
:disabled="librayList[curIndex].completion < 70 && canJoinTestTime">参加自考考试</button> v-if="canJoinTestTime && selfStudyPaperList.length % 2 == 0"
<button v-if="selfStudyPaperList.length % 2 != 0 && canJoinTestTime" @click="onPageJump('/pages/selfStudy/selfStudy',courseId)" style="padding: 0 20rpx" :disabled="courseCompletion < 70 ">参加自考考试</button>
type="primary"
:disabled="librayList[curIndex].completion < 70">再考一次</button> <button v-if="selfStudyPaperList.length % 2 != 0 && canJoinTestTime"
<button v-if="!canJoinTestTime && showNextTestDate" @click="onPageJump('/pages/selfStudy/selfStudy',courseId)" style="padding: 0 20rpx" @click="onPageJump('/pages/selfStudy/selfStudy',courseId)" style="padding: 0 20rpx"
type="primary" type="primary" :disabled="courseCompletion < 70">再考一次</button>
:disabled="!canJoinTestTime">{{showNextTestDate.nextZKTime}} 后可参与自考</button> <button v-if="!canJoinTestTime && showNextTestDate"
@click="onPageJump('/pages/selfStudy/selfStudy',courseId)" style="padding: 0 20rpx"
type="primary" :disabled="!canJoinTestTime">{{showNextTestDate.nextZKTime}}
后可参与自考</button>
</template> </template>
<button v-else @click="onPageJump('/pages/miniClass/continueTest',testingPaper.id)" style="padding: 0 20rpx" <button v-else @click="onPageJump('/pages/miniClass/continueTest',testingPaper.id)"
type="primary" style="padding: 0 20rpx" type="primary" :disabled="courseCompletion < 70">
:disabled="librayList[curIndex].completion < 70">
继续自考考试 继续自考考试
<template v-if="showCountDown" style="font-size: 26rpx;"> (剩余时间 <template v-if="showCountDown" style="font-size: 26rpx;"> (剩余时间
<uni-countdown style="display: inline-block; " @timeup="timeup" :font-size="20" :show-day="false" <uni-countdown style="display: inline-block; " @timeup="timeup" :font-size="20"
:hour="timeDif.hour" :minute="timeDif.minutes" :second="timeDif.second" :show-day="false" :hour="timeDif.hour" :minute="timeDif.minutes"
color="#fff" splitorColor="#fff" />) :second="timeDif.second" color="#fff" splitorColor="#fff" />)
</template> </template>
</button> </button>
</template> </template>
<button style="padding: 0 20rpx" v-if="selfStudyCertificate.length > 0" type="primary" @click="onPageJump('/pages/certificate/certificate')">查看证书</button> <button style="padding: 0 20rpx" v-if="selfStudyCertificate.length > 0" type="primary"
@click="onPageJump('/pages/certificate/certificate')">查看证书</button>
<!-- </view> --> <!-- </view> -->
<!-- <view class="" v-if="!classInfo.id"> <!-- <view class="" v-if="!classInfo.id">
<button style="background-color: #00e1ec;" type="primary" size="mini">查看可加入的小班</button> <button style="background-color: #00e1ec;" type="primary" size="mini">查看可加入的小班</button>
@@ -129,26 +145,36 @@
</view> </view>
</view> </view>
<!-- 小班入口 --> <!-- 小班入口 -->
<view class="classEntrance" > <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;">
<text class="mainTxt" v-if="linkClassList.length > 0 "> </image>
<text class="mainTxt">
<span style="font-weight: bold; padding: 0 16rpx;"></span> <span style="font-weight: bold; padding: 0 16rpx;"></span>
加入班级开始更加系统的学习</text> 加入班级开始更加系统的学习</text>
<text class="mainTxt" v-else>
<span style="font-weight: bold; padding: 0 16rpx;"></span>
暂无可加入的小班</text>
</view> </view>
<view class="btntext" v-if="linkClassList.length > 0 "> <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>
<!-- {{classInfo.id}} -->
<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>
@@ -158,6 +184,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':'']"
@@ -211,7 +249,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>
@@ -258,7 +297,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>
@@ -413,7 +452,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>
@@ -594,6 +634,7 @@
selfStudyPaperList: [], ///自考考试记录 selfStudyPaperList: [], ///自考考试记录
showNextTestDate: undefined, showNextTestDate: undefined,
canJoinTestTime: false, //时间上是否可以参加自考考试 canJoinTestTime: false, //时间上是否可以参加自考考试
courseCompletion: undefined, // 课程学习进度
}; };
}, },
//第一次加载 //第一次加载
@@ -626,67 +667,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() this.getLinkClassList()
var newCertificate = await this.getCertificateInfo() await this.request()
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)
}
})
}
var historyPaper = await this.getingPaper()
console.log('historyPaper正在考试的信息',historyPaper);
if(historyPaper && historyPaper.id && historyPaper.type == '2' && historyPaper.relationId == this.courseId){
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
}
}
var selfStudyPaperList = await this.getSelfStudyPaperList()
this.selfStudyPaperList = selfStudyPaperList
console.log('selfStudyPaperList',selfStudyPaperList);
if(selfStudyPaperList && selfStudyPaperList.length > 0 && selfStudyPaperList.length < 2){
this.canJoinTestTime = true
}
if(selfStudyPaperList && selfStudyPaperList.length > 0){
selfStudyPaperList.forEach((item, index) => {
if(item.score < 60 && index < 2){
this.showSecondTestBtn = true
}else{
this.showSecondTestBtn = false
}
})
}
if(selfStudyPaperList.length >= 2 && this.selfStudyCertificate.length == 0){
this.showNextTestDate = await this.getNextTestDate()
console.log('下次考试时间',this.showNextTestDate);
var now = new Date()
if(this.showNextTestDate.nextLongTime < now){
this.canJoinTestTime = true
}else{
this.canJoinTestTime = false
}
}
}, },
onUnload() { onUnload() {
@@ -704,7 +692,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() {
@@ -720,6 +710,78 @@
}, },
//方法 //方法
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)
}
})
}
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
}
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() { async getNextTestDate() {
var time = { var time = {
@@ -849,7 +911,10 @@
.then(async (res) => { .then(async (res) => {
console.log('考试中', res); console.log('考试中', res);
if (res.code == 0 && res.classExamUser != null) { if (res.code == 0 && res.classExamUser != null) {
obj = {...res.classExamUser, planEndTime:res.planEndTime} obj = {
...res.classExamUser,
planEndTime: res.planEndTime
}
} else { } else {
obj = undefined obj = undefined
} }
@@ -1568,6 +1633,22 @@
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) {
@@ -1749,7 +1830,9 @@
} }
if (res.code == 0) { if (res.code == 0) {
res.certificateList.forEach(item => { res.certificateList.forEach(item => {
item.certificateUrl && item.certificateUrl != '' ? item.certificateUrlList = item.certificateUrl.split(',') : item.certificateUrlList = [] item.certificateUrl && item.certificateUrl != '' ? item
.certificateUrlList = item.certificateUrl.split(',') : item
.certificateUrlList = []
}) })
list = res.certificateList list = res.certificateList
} }
@@ -1776,27 +1859,65 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "@/style/mixin.scss"; @import "@/style/mixin.scss";
.selfStudyBox{position: relative; background-color:#fff0e7;} .congritulations {
.classEntrance{background-color: #d0ecc1; padding:20rpx; 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;
} }
@@ -1852,9 +1973,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%;
}
} }
} }
@@ -1895,7 +2022,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;
@@ -2485,7 +2614,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;
@@ -2610,7 +2744,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;
} }
@@ -2765,7 +2903,12 @@
} }
} }
} }
.hidden2{line-height: 50rpx; height: 100rpx;}
.hidden2 {
line-height: 50rpx;
height: 100rpx;
}
.subLine { .subLine {
* { * {
display: inline !important; display: inline !important;
@@ -2912,15 +3055,51 @@
padding: 20rpx; padding: 20rpx;
} }
} }
.testRecode{ position: relative; margin-top: 20rpx; background-color:rgba(255, 255, 255, .8); padding: 20rpx;
.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: 34rpx;}
.opbutn{position:absolute; padding-bottom: 20rpx; width: 100%; text-align: center; font-size: 26rpx; color: #999; bottom: 0; left: 0; z-index: 1;}
}
.testRecode.zhedie{height: 240rpx; overflow: hidden;}
.seePaper { color: #35a6ff; font-size: 26rpx; .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; // width: 50rpx;
// height: 50rpx; // height: 50rpx;

View File

@@ -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>

View File

@@ -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"

View File

@@ -33,7 +33,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"

View File

@@ -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 => {

View File

@@ -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"

View File

@@ -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"

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
static/icon/yesbuy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB