From bc7656e5ed3024ecf796e29e7de6d94281b3ad48 Mon Sep 17 00:00:00 2001
From: "@fawn-nine" <1271023382@qq.com>
Date: Tue, 15 Oct 2024 16:50:47 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
App.vue | 2 +-
config/baseUrl.js | 4 +-
pages/course/courseDetail.vue | 935 ++++++++++++++++++-------------
pages/course/coursePrice.vue | 15 +-
pages/miniClass/classInfoMan.vue | 4 +
pages/miniClass/continueTest.vue | 2 +-
pages/miniClass/paperBack.vue | 6 +-
pages/miniClass/test.vue | 2 +-
pages/selfStudy/selfStudy.vue | 2 +-
static/icon/notbuy.png | Bin 0 -> 2034 bytes
static/icon/xunzhang.png | Bin 0 -> 5028 bytes
static/icon/yesbuy.png | Bin 0 -> 2090 bytes
12 files changed, 580 insertions(+), 392 deletions(-)
create mode 100644 static/icon/notbuy.png
create mode 100644 static/icon/xunzhang.png
create mode 100644 static/icon/yesbuy.png
diff --git a/App.vue b/App.vue
index 3633f12..21ce195 100644
--- a/App.vue
+++ b/App.vue
@@ -26,7 +26,7 @@
onLaunch: function(e) {
// 检测自动更新
// #ifdef APP-PLUS
- updata();
+ // updata();
// #endif
uni.getSystemInfo({
diff --git a/config/baseUrl.js b/config/baseUrl.js
index cf9a6a3..647c20e 100644
--- a/config/baseUrl.js
+++ b/config/baseUrl.js
@@ -6,9 +6,9 @@ if (process.env.NODE_ENV === 'development') {
// socketUrl = "ws://localhost:6001/";
// baseUrl = "https://twin-ui.com/demo/";
// 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.100:9200/pb/"; // 开发用电脑
+ // baseUrl = "http://192.168.110.100:9200/pb/"; // 开发用电脑
// baseUrl = "http://59.110.212.44:9200/pb/";
// baseUrl = "http://192.168.110.100:9100/pb/"; // 开发用电脑
// baseUrl = "http://192.168.110.110:9200/pb/";
diff --git a/pages/course/courseDetail.vue b/pages/course/courseDetail.vue
index 4298424..b96490c 100644
--- a/pages/course/courseDetail.vue
+++ b/pages/course/courseDetail.vue
@@ -4,7 +4,7 @@
-
+
-
+
@@ -51,113 +51,151 @@
-
- {{ isHideCourseInfo ? "展开" : "收起" }}
-
+ ">
+ {{ isHideCourseInfo ? "展开" : "收起" }}
+
+
-
-
-
-
- 课程学习进度大于等于70%时,您可以参与本门课程的自考考试,考试成绩大于60分即可获得本门课程的B级证书,如您想获得本门课程的A级证书可参加小班教学
-
-
-
- 第{{index + 1}}次自考成绩
- {{item.score}}分
-
-
- 查看试卷
+ > -->
+ 查看试卷
+
+
+
+ {{zhedieTestRecode ? '收起' : '展开'}}
-
- {{zhedieTestRecode ? '收起' : '展开'}}
+
+
+
+
+
+ 恭喜!您已通过自考考试获得本门课程的自考证书,如您想获得本门课程的A级或B级证书可参加小班教学
+
-
- 恭喜!您已通过自考考试获得本门课程的B级证书,如您想获得本门课程的A级证书可参加小班教学
-
-
-
-
-
-
-
-
-
-
-
-
- 查看证书
-
-
+
-
+ -->
+
-
-
-
-
-
-
- 加入班级开始更加系统的学习
-
-
- 暂无可加入的小班
-
-
- 前往查看 >>
-
+
+
+
+ 恭喜!您在小班学习中取得了本课程的{{classCertificate[0].type}}级证书
+ 前往查看
-
-
-
-
-
-
- 班级:{{classInfo.title}}
+
+
+
+
+
+
+
+
+ 加入班级开始更加系统的学习
+
+
+ 前往查看
+ >>
+
-
- 进入班级 >>
-
-
+
+
+
+
+
+
+
+
+ 班级:{{classInfo.title}}
+
+
+ 进入班级 >>
+
+
+
+
+
+
+
+
+
+
+ 暂无可加入的小班
+
+
+
+
{{item.title}}
-
+
@@ -174,14 +212,14 @@
v-if="librayList[curIndex].isBuy == 1 || userMsg.vip == 2 || userMsg.vip == 1">
-
-
+
+
VIP畅学权益有效期截止到:{{userMsg.userVip.endTime}}
-
- 当前目录还未开始学习
+
+ 当前目录还未开始学习
@@ -189,7 +227,7 @@
续费
-
+
@@ -211,7 +249,8 @@
-
VIP畅学权益生效中
@@ -256,10 +295,10 @@
-
-
-
-
+
+
+
+
@@ -300,7 +339,7 @@
- 发布留言
+ 发布留言
@@ -413,7 +452,8 @@
发 布
- 取 消
+ 取
+ 消
@@ -475,8 +515,8 @@
} from "vuex";
export default {
data() {
- return {
- zhedieTestRecode:false, // 是否折叠自考的记录
+ return {
+ zhedieTestRecode: false, // 是否折叠自考的记录
goodsList: [],
currentCateIndex: 0,
protocolShow: false,
@@ -551,7 +591,7 @@
fatherIndex: null,
supportFlag: false,
selectGoodsData: {},
-
+
buyOptions: [
// {
// icon: 'chat',
@@ -582,18 +622,19 @@
startStudyForMF: "sociology/course/startStudyForMF",
},
isAndorid: true,
- oprateOsName:'',
- linkClassList:[], // 可加入关联班级数组
- classInfo:[], // 所在班级信息
- selfStudyCertificate:[], // 自考证书
- classCertificate:[], // 小班学习证书
- testingPaper:{}, // 当前课程正在考试信息
+ oprateOsName: '',
+ linkClassList: [], // 可加入关联班级数组
+ classInfo: [], // 所在班级信息
+ selfStudyCertificate: [], // 自考证书
+ classCertificate: [], // 小班学习证书
+ testingPaper: {}, // 当前课程正在考试信息
timeDif: {},
showCountDown: false,
- showSecondTestBtn:false, // 先否显示二次考试按钮
- selfStudyPaperList:[], ///自考考试记录
- showNextTestDate:undefined,
- canJoinTestTime:false, //时间上是否可以参加自考考试
+ showSecondTestBtn: false, // 先否显示二次考试按钮
+ selfStudyPaperList: [], ///自考考试记录
+ showNextTestDate: undefined,
+ canJoinTestTime: false, //时间上是否可以参加自考考试
+ courseCompletion: undefined, // 课程学习进度
};
},
//第一次加载
@@ -626,68 +667,15 @@
// 隐藏原生的tabbar
uni.hideTabBar();
console.log('this.courseId', this.courseId);
+ this.canJoinTestTime = false
await this.getData(this.courseId);
// #ifdef APP-PLUS
plus.screen.unlockOrientation();
plus.screen.lockOrientation("portrait-primary");
// #endif
this.getLinkClassList()
- 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
- 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
- }
- }
-
+ await this.request()
+
},
onUnload() {
this.selectGoodsData = {};
@@ -704,7 +692,9 @@
// this.showSearchList = false
// this.searchList = []
},
- onPullDownRefresh() {
+ async onPullDownRefresh() {
+ await this.getData(this.courseId);
+ await this.request()
uni.stopPullDownRefresh()
},
onReachBottom() {
@@ -720,98 +710,170 @@
},
//方法
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 = {
- nextLongTime:0,
- nextZKTime:''
+ nextLongTime: 0,
+ nextZKTime: ''
}
await $http.request({
url: "common/classExam/getNextZKTime",
method: "POST",
data: {
- "courseId": parseInt(this.courseId)
+ "courseId": parseInt(this.courseId)
},
header: { //默认 无 说明:请求头
'Content-Type': 'application/json'
},
})
.then(async (res) => {
- if(res.code != 0) {
+ if (res.code != 0) {
uni.showToast({
- title:res.errMsg,
- icon:'none'
+ title: res.errMsg,
+ icon: 'none'
})
return
}
if (res.code == 0) {
- console.log('res',res);
- time.nextZKTime = res.nextZKTime
- time.nextLongTime = res.nextLongTime
- }
+ console.log('res', res);
+ time.nextZKTime = res.nextZKTime
+ time.nextLongTime = res.nextLongTime
+ }
}).catch(e => {
uni.showToast({
- title:e.errMsg,
- icon:'none'
+ title: e.errMsg,
+ icon: 'none'
})
});
- return time
+ return time
},
seePaper(val) {
- // console.log('点击了');
- uni.navigateTo({
- url: `/pages/miniClass/paperBack?id=${val}`,
- });
+ // console.log('点击了');
+ uni.navigateTo({
+ url: `/pages/miniClass/paperBack?id=${val}`,
+ });
},
async timeup() {
this.showCountDown = false
- setTimeout(async ()=>{
+ setTimeout(async () => {
var selfStudyPaperList = await this.getSelfStudyPaperList()
this.selfStudyPaperList = selfStudyPaperList
- console.log('selfStudyPaperList',selfStudyPaperList);
- if(selfStudyPaperList && selfStudyPaperList.length > 0){
+ console.log('selfStudyPaperList', selfStudyPaperList);
+ if (selfStudyPaperList && selfStudyPaperList.length > 0) {
selfStudyPaperList.forEach((item, index) => {
- if(item.score < 60 && index < 2){
+ if (item.score < 60 && index < 2) {
this.showSecondTestBtn = true
- }else{
+ } else {
this.showSecondTestBtn = false
}
})
}
- },3000)
+ }, 3000)
},
// 获取自考试卷列表
- async getSelfStudyPaperList(){
+ async getSelfStudyPaperList() {
var list = undefined
await $http.request({
url: "common/classExam/getZKExamPaperList",
method: "POST",
data: {
- "courseId": parseInt(this.courseId)
+ "courseId": parseInt(this.courseId)
},
header: { //默认 无 说明:请求头
'Content-Type': 'application/json'
},
})
.then(async (res) => {
- if(res.code != 0) {
+ if (res.code != 0) {
uni.showToast({
- title:res.errMsg,
- icon:'none'
+ title: res.errMsg,
+ icon: 'none'
})
return
}
if (res.code == 0) {
- console.log('res',res);
+ console.log('res', res);
list = res.ZKExamUserList
- }
+ }
}).catch(e => {
uni.showToast({
- title:e.errMsg,
- icon:'none'
+ title: e.errMsg,
+ icon: 'none'
})
});
- return list
+ return list
},
// 获取服务器时间
async getServerTime() {
@@ -836,31 +898,34 @@
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
+ 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
}
- }).catch(e => {
+ } else {
obj = undefined
- });
- return obj
-
+ }
+ }).catch(e => {
+ obj = undefined
+ });
+ return obj
+
},
// 获得课程关联的班级
- getLinkClassList(){
+ getLinkClassList() {
this.$http
.request({
url: 'common/class/getClassByCourseIdNoUser',
@@ -875,27 +940,27 @@
"Content-Type": "application/json",
},
})
- .then(async (res) => {
+ .then(async (res) => {
if (res.code == 0 && res.result.length > 0) {
this.linkClassList = res.result
- }else{
+ } else {
this.linkClassList = []
// 查询是否有所在的班级
this.getClassList()
- }
+ }
}).catch(e => {
uni.showToast({
- title:'获取班级列表错误',
- icon:'none'
+ title: '获取班级列表错误',
+ icon: 'none'
})
})
},
- getClassList(){
+ getClassList() {
$http.request({
url: '/common/class/getClassByUser',
method: "POST",
data: {
- "courseId": this.courseId
+ "courseId": this.courseId
},
header: { //默认 无 说明:请求头
'Content-Type': 'application/json'
@@ -903,15 +968,15 @@
})
.then(res => {
this.classInfo = {}
- console.log('获取班级列表',res.result);
- if(res.code == 0 && res.result != null){
- if(res.result.id){
+ console.log('获取班级列表', res.result);
+ if (res.code == 0 && res.result != null) {
+ if (res.result.id) {
this.classInfo = res.result
}
}
- console.log('获取班级列表++++++',this.classList);
+ console.log('获取班级列表++++++', this.classList);
}).catch(e => {
- console.log('获取班级列表失败',e);
+ console.log('获取班级列表失败', e);
this.classInfo = {}
});
},
@@ -920,7 +985,7 @@
let oprateOs = "";
oprateOs = uni.getSystemInfoSync().platform;
this.oprateOsName = uni.getSystemInfoSync().platform;
- console.log('oprateOs',oprateOs)
+ console.log('oprateOs', oprateOs)
if (oprateOs == "android") {
this.isAndorid = true;
} else {
@@ -1004,8 +1069,8 @@
// if(this.oprateOsName == 'ios'){
// _myurl = '/pages/course/chapterDetail'
// }else{
- // h5 和安卓
- _myurl = '/pages/course/chapterDetailAndorid'
+ // h5 和安卓
+ _myurl = '/pages/course/chapterDetailAndorid'
// }
if (this.librayList[this.curIndex].isBuy == 1 || v.isAudition == 1 ||
this.vip.type == "1" || this.vip.type == "2") {
@@ -1015,7 +1080,7 @@
uni.navigateTo({
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后观看本课程");
} else {
this.$commonJS.showToast("请先购买课程");
@@ -1026,8 +1091,8 @@
this.$forceUpdate();
},
onHandleClickBuy(e) {
- console.log("this.selectGoodsData at line 589:", this.selectGoodsData);
-
+ console.log("this.selectGoodsData at line 589:", this.selectGoodsData);
+
var mynavData = JSON.stringify({
goods: [this.selectGoodsData],
typeId: 0,
@@ -1047,7 +1112,7 @@
//获取相关关联课程商品
handleClickGetGoodsList(v) {
// console.log("data at line 313:", data);
-
+
if (v.type == 0) {
//免费
this.$http
@@ -1063,21 +1128,21 @@
},
})
.then(async (res) => {
- console.log("res at line 493:", res);
+ console.log("res at line 493:", res);
if (res.code == 0) {
this.getCourseDescriptionData();
// this.$commonJS.showToast("");
}
this.$forceUpdate();
});
- } else if(v.type == 2 && this.userMsg.vip != 1 ){
+ } else if (v.type == 2 && this.userMsg.vip != 1) {
uni.showModal({
- title:'提示',
- content:'当前课程目录是超V专享,开通超V可观看',
- confirmText:'好的',
- showCancel:false
+ title: '提示',
+ content: '当前课程目录是超V专享,开通超V可观看',
+ confirmText: '好的',
+ showCancel: false
})
- }else {
+ } else {
this.$http
.request({
url: this.urlList.goodsList,
@@ -1090,7 +1155,7 @@
"Content-Type": "application/json",
},
})
- .then(async (res) => {
+ .then(async (res) => {
if (res.productList.length > 0) {
this.goodsList = res.productList;
this.selectGoodsData = this.goodsList[0];
@@ -1514,95 +1579,111 @@
url: `/pages/course/myCourseLearn?id=${this.course.id}`,
});
},
- async getData(id) {
+ async getData(id) {
this.courseList = [];
// console.log("at line 1167:", "调用了几次");
- var that = this;
-
- await $http
- .request({
- url: "sociology/course/getCourseDetail",
- method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
- data: {
- id: id,
- },
- header: {
- //默认 无 说明:请求头
- "Content-Type": "application/json",
- },
- })
- .then(async (res) => {
- if (res.code == 0) {
- this.course = res.data.course;
- //0 购买 1 续费 2 升级
- // console.log("this.vip.type at line 1045:", this.vip);
- switch (this.vip.type) {
- case 0:
- this.goBuyTitle = "购买VIP,即可免费观看吴门医述所有课程";
- this.goBuyType = 0;
- break;
- case 1 || 2:
- var vipName = "";
- if (this.vip.type == 1) {
- vipName = "超级VIP";
- }
- if (this.vip.type == 2) {
- vipName = "吴门医述VIP";
- }
- //超级VIP
- this.goBuyTitle = `尊贵的${vipName},您的有效期到 ${
+ var that = this;
+
+ await $http
+ .request({
+ url: "sociology/course/getCourseDetail",
+ method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
+ data: {
+ id: id,
+ },
+ header: {
+ //默认 无 说明:请求头
+ "Content-Type": "application/json",
+ },
+ })
+ .then(async (res) => {
+ if (res.code == 0) {
+ this.course = res.data.course;
+ //0 购买 1 续费 2 升级
+ // console.log("this.vip.type at line 1045:", this.vip);
+ switch (this.vip.type) {
+ case 0:
+ this.goBuyTitle = "购买VIP,即可免费观看吴门医述所有课程";
+ this.goBuyType = 0;
+ break;
+ case 1 || 2:
+ var vipName = "";
+ if (this.vip.type == 1) {
+ vipName = "超级VIP";
+ }
+ if (this.vip.type == 2) {
+ vipName = "吴门医述VIP";
+ }
+ //超级VIP
+ this.goBuyTitle = `尊贵的${vipName},您的有效期到 ${
this.vip.endTime && this.vip.endTime.split(" ")[0]
}`;
- this.goBuyType = 1;
- break;
+ this.goBuyType = 1;
+ break;
- case 3:
- //众妙之门
- this.goBuyTitle =
- "尊贵的众妙之门VIP,升级至超级VIP,即可免费观看吴门医述所有课程";
+ case 3:
+ //众妙之门
+ this.goBuyTitle =
+ "尊贵的众妙之门VIP,升级至超级VIP,即可免费观看吴门医述所有课程";
- this.goBuyType = 2;
- break;
- }
- this.$forceUpdate();
- this.pageTitle = this.course.title;
- this.librayList = [...res.data.catalogues];
- console.log('获取课程详情=》',res.data);
- that.$forceUpdate();
- if (this.librayList.length > 0) {
- if(this.catalogueId){
- this.curId = this.catalogueId
- let _list = this.librayList
- _list = _list.map( item => item.id)
- // console.log('_list过滤后的_list',_list);
- this.curIndex = _list.findIndex((element) => element == this.catalogueId)
- console.log('其他页面返回来,_list过滤后的curIndex',this.curIndex,this.catalogueId);
- }else{
- this.catalogueId = this.librayList[0].id;
- this.curId = this.librayList[0].id;
- this.curIndex = 0
- console.log('首次加载');
- }
-
- this.chapterList = await this.getChapterList(this.catalogueId)
- // console.log('目录列表', this.librayList)
- // console.log('外面得到的方法列表', this.chapterList);
- if (
- res.data.shopProductList &&
- res.data.shopProductList.length > 0
- ) {
- this.tjProList = res.data.shopProductList;
- } else {
- this.tjProList;
- }
- // console.log("list at line 1233:", list);
- }
+ this.goBuyType = 2;
+ break;
}
- })
- .catch((e) => {
- console.log(e, "获取目录数据报错");
- });
- },
+ this.$forceUpdate();
+ this.pageTitle = this.course.title;
+ this.librayList = [...res.data.catalogues];
+ 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();
+ if (this.librayList.length > 0) {
+ if (this.catalogueId) {
+ this.curId = this.catalogueId
+ let _list = this.librayList
+ _list = _list.map(item => item.id)
+ // console.log('_list过滤后的_list',_list);
+ this.curIndex = _list.findIndex((element) => element == this.catalogueId)
+ console.log('其他页面返回来,_list过滤后的curIndex', this.curIndex, this.catalogueId);
+ } else {
+ this.catalogueId = this.librayList[0].id;
+ this.curId = this.librayList[0].id;
+ this.curIndex = 0
+ console.log('首次加载');
+ }
+
+ this.chapterList = await this.getChapterList(this.catalogueId)
+ // console.log('目录列表', this.librayList)
+ // console.log('外面得到的方法列表', this.chapterList);
+ if (
+ res.data.shopProductList &&
+ res.data.shopProductList.length > 0
+ ) {
+ this.tjProList = res.data.shopProductList;
+ } else {
+ this.tjProList;
+ }
+ // console.log("list at line 1233:", list);
+ }
+ }
+ })
+ .catch((e) => {
+ console.log(e, "获取目录数据报错");
+ });
+ },
goBuy() {
$http
.request({
@@ -1726,30 +1807,32 @@
});
},
// 查询证书情况
- async getCertificateInfo(){
+ 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
+ "type": '', //证书类型A a证 B b证 ZK自考
+ "courseId": this.courseId //课程id
},
header: { //默认 无 说明:请求头
'Content-Type': 'application/json'
},
})
.then(res => {
- if(res.code != 0) {
+ if (res.code != 0) {
uni.showToast({
title: res.errMsg,
icon: 'none'
})
- return
+ return
}
if (res.code == 0) {
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
}
@@ -1757,46 +1840,84 @@
uni.hideLoading()
}).catch(e => {
uni.hideLoading()
- console.log(e, '数据报错')
+ console.log(e, '数据报错')
// this.status = 3
uni.showToast({
title: e.errMsg,
icon: 'none'
})
});
- return list
+ return list
+ },
+ goClassLIst(url, id, title) {
+ uni.navigateTo({
+ url: `${url}?courseId=${id}&courseTitle=${title}`,
+ });
},
- goClassLIst(url, id,title){
- uni.navigateTo({
- url: `${url}?courseId=${id}&courseTitle=${title}`,
- });
- },
},
};
\ No newline at end of file
diff --git a/pages/course/coursePrice.vue b/pages/course/coursePrice.vue
index f060b93..fa33f9e 100644
--- a/pages/course/coursePrice.vue
+++ b/pages/course/coursePrice.vue
@@ -21,7 +21,7 @@
-
@@ -31,8 +31,9 @@
size="24">{{item1.title}}
-
-
+
+
+
【{{item2.title}}】
@@ -40,11 +41,13 @@
height: 40rpx; text-align: center; line-height: 40rpx; color: #ffb861;">V
半年:¥{{item2.halfFee}} 元整年:¥{{item2.fee}} 元
+
立即购买
+ v-if="item2.isBuy == 0 && (userMsg.vip == 0 || userMsg.vip == 3)">立即购买
- 已购买
-
+ 已购买
diff --git a/pages/miniClass/classInfoMan.vue b/pages/miniClass/classInfoMan.vue
index 19d47e3..f487b87 100644
--- a/pages/miniClass/classInfoMan.vue
+++ b/pages/miniClass/classInfoMan.vue
@@ -290,6 +290,10 @@
匿名用户
+
+
+
+
- 剩余时间:
+ 剩余时间:
+
+ 开始时间:{{testPaper.startTime}}
结束时间:{{testPaper.endTime}}
+
@@ -223,8 +226,6 @@ checkAnswer(id){
if (res.code == 0) {
// that.isHave = true
var subOptions = JSON.parse(res.examPaper.subject)
-
-
subOptions.forEach(item => {
var code = 0
item.options.forEach(item1 => {
@@ -236,6 +237,7 @@ checkAnswer(id){
this.questionList = subOptions
this.testPaper = res.examPaper
+ console.log('试卷信息', this.testPaper);
this.answerIdsList = JSON.parse(res.examPaper.answer)
var newList = JSON.parse(res.examPaper.answer)
newList = newList.map(item => {
diff --git a/pages/miniClass/test.vue b/pages/miniClass/test.vue
index f5095a5..7c9e86f 100644
--- a/pages/miniClass/test.vue
+++ b/pages/miniClass/test.vue
@@ -32,7 +32,7 @@
- 剩余时间:
+ 剩余时间:
- 剩余时间:
+ 剩余时间:
Px+tVu*cRCr$PT5GIaRTci$KDR9up$1VS4_{~^ifw!(L~RWk3$#_^4^WX>C_Q_w
zmd>7ALKSGyf)7*-+}Ts0cg`to0pI;$lvi6Ljm1Zdk5DNk#`>QBt*Znuu3Sy>
z=2j$plEjxBWlx`SkJP^nJ2g)U=ZfG{fSj6^7m+m*7Qf;ZO$S0VV4&uvH=?VcH8k$3O_~!s#+dv?KEfSjLnTP-|
zwwp;@o|65oxLI$L{{E+Y^z+Dchk*9c7yMCX9zI8wt$Er99PhgML>`&-D2P|32<%E0
zbcKLgRK7_d*EGNr_++3>+gdO_6}8B&5#Y;B8~kFROV|1km`A271i0Al1~ESwJ<5er
zC~nUKjMd5o6h4^f2p(3UX;~Zc*c(f>I|M|QEsNM}%#o#Le;&ZR$DYhXXqod$o8yl6
zxErho>DmbB6!`J7Gam7|2{;+B}$!
zMK*W&oQnVs4Zea({pnZ`c3W4Rd!_Ub{Mpw}J_0t~HlMDx+t>I+$cYLT$cif;_Vt~M
zfZ?jWR0-}$8Q-R~xj5~N(cnTt?P$K^y-Jtf?+d8ami;b)L|5R>7d@~uE#o5lZ2%WF
z-Z^4vU%`CU*IzCIYSr?!BJzb~e+LFdo7HWgFCp-?L`HD8gl3s9pf+1u2_(7#d{ngg
zdYjCx1O^)KNM08dN;moX%S8aA${hqho^rM(D3n@GYOI!v6tO9pN>C^nUqCIv#g##l
zrG!kVPwBa
z;6o|U%Oot_?F*cmp$*e}4iZ+n#E_Qrf&_
z6aw}@@TO)4;9LpK&pIK1cWyYBHTTm*m-w|Rn7Jc-M)sEg-aOvaJZ1uhtL2X=k-Jh(
zz9-szU=%Qa1Mu=hF6cW;u2}i|jtJOTejNk(O-lFgN}JP0W$E+l`Ct5dbrq>3Hx((tk}ytt`gzDdfR_rvg5zw3*pXKrJfYA&}GM9M=OCamBw!&SfVe&=n1qnV`}AQ+AbUj@y;tPX0K3T6dy9=5q)`t$wW?hw
zg3mSwN2-A?_8(UQ7}*C1T-co3yj;T4))AvIR9>%?dbTum&TR|&OY41rj3vWrWf6t-
z;0}y+++|$8jFc^@>G_~&v&hG&e+_ibSaq*Sx$QK-9_cc
z06Duk4P?HA#UEw)_9LKbFJ-C^AdsD+i|1z<@8x$!l^p~ZCIk>m#iK9aML=z+yjE1I
z1`uosJg>QWMM5pMn%v#YVX^iwL$npFzveywviXRa~
z5}KrL8B5oT02kZsAd-|9;9}8c+hhp5fq{{|h(NtP)>x=_sL))Hh0%|I$nFF1`lf9+
zPxQc^EaScW&S-Ehp`QKU;Q8lqrA@LZ9$N-f?Li1;Cj|7JG+UN0f2NlKX8Gdg%_ng9
zz@bErIHU^Z1zCET8Nf}I)9Coul%XR^n^{?gC*r${>|p@OVM&ynE-Q-l)9ILx2LY{R
zCV)REZC*1G0cQDhk*y!QU!7#CN4cI&KxA9m+yK6>v`O~cEKt4t?jl>iGk9-vts2=z
zZ^x5Kz=*p58QGZZWsu|fYH!H;+!16Fz}Rjik({kXWI)1V(y5&+!Pjvxu9Qe79cU2@
zNobNr$!J(J32>3E|D}=ar=n!BtSCM(nF4QM;ik$WI;I=2+m$v+52GUj7}SbOuZm^OMEzl+S?w0qLFcUtoi#
Q$^ZZW07*qoM6N<$g4c@C5C8xG
literal 0
HcmV?d00001
diff --git a/static/icon/xunzhang.png b/static/icon/xunzhang.png
new file mode 100644
index 0000000000000000000000000000000000000000..c11c5b7512ef472b38a367a699a9f101788e49d5
GIT binary patch
literal 5028
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
uVgazPx+Gh-E3hP)kK9vU6uQn@k^>
zEYs67v%7tJl9_C3_x|iYkMDea?!D)p+k_cDXokm+SpsG=V1_d=I|XKV0?aOg9i0N1
z!Q4wY#mfkMJ{!hjfZsfxf%Iz%f=3y2kjk{D*zf+gQ<>Q@0y3VnE+BlIfb*sbj)6ZJ
zjIS3hxup{%bc6umJ9`0KoG_q$%9NKR)JZJfb^?U&{2joViII&fJf%!|R*Sk?YHcMz
z_|A0zzE+Qfp9bhFC;aw^*J5=Br;
z2(^WPw4d8g;3XlB0GFvgxjO+ah#_Y=4D1Rs0Q7LlbnDiJB=#ngZ3_XycR1>Beitox
zW`%nw3E+i0bG?U0xo*xYQ=V|VC){8q$VLKM1%9IJOhtTR0y5j3i#dhQwout6Nq|;l
z_fZ+Q7FWrANt6>4&|+De1k>@zCN7^75zuwtz}cyz!C#LDVY_w9bBuFFuh{%IT|bEk
z=H14VfG9W*
zfUzP31iq?h=D#0xmhp49GWat!8Twq&bSv9t;*s{8TZoQrxyJ^f*;dB4-^ZX@RuFco
ztX!$lpXbAZ8jgxN&cQp!p@
zD$}z)w=_ucPis>E2b3i*(Dj#$0N*|YP*2r(`KWQuXn*~dBMP}6fVsa$0IyNm{Jpw>
z>e9R5tOlc|OEjpm?t7y$U4sK>r{+YrW*$~%zE{_uHUZ6!@E>K$mo+*Pp8XRLg}pou
zcx9
zngGmW0Nzl29uQqPl68O83IW|a>-!>_?}&l|NiKG_NZy+Z@9DI38bBD()lraYsWfQEX3
zd5yC4rk!>Mq6+^XEXqhl{>wUyPoYs12F>B#>g0UuGOoYzP|
z%zUL%s~a!u-N#B(W(<`qd5aE^$z;+6
z=W=4c4WQx4j=RFQKlptAa9hm=?NX+DxsG4$3=jq902r?e7dPxIWWQkC}28k#B!gC^RGofkLSESAVkmD2bC$q
z=@93n6YquZJOSYRFhdzjhAsKCINw?X2tRiJ$mWv+n^#uG2JY0WAVDzO$8q4_AX>rkhHZTWgGTD#|JR
zq`lmYL>v}B1l(OTWmvaNrm97N@SV!7PMGql?gDs%#$@M0oZ3@ULssLCAeMlPZ{NwF+S!_Lt;))D
zMlnWKi}!XSL_cHu>?eV
zd|EB0=@L1B13Ep)SOTU|Ky86COF&y_J%xnUV(#%I9)0TY|n
UUj||lVgLXD07*qoM6N<$f|SeG-v9sr
literal 0
HcmV?d00001