const app = require('../../utils/util.js'); const tools = require('../../utils/tools.js'); Page({ data: { showewm: false, //是否显示班级群二维码 showzs: false, //是否显示毕业证书 kcArr: [], //课程列表 sfmArr: [], //课程的时间换算成(时分秒) istask1: false, //第一个任务加入班级群 istask2: false, //第二个任务学员登记表 istask3: false, //第三个任务所有课程是否学完 istask4: false, //第四个任务是否完成期末开始 istask5: false, //第五个任务综合反馈 istask6: false, //第六个任务是否领取毕业证书 studentName: "", //学生的名字用于毕业证书 classInfo: {}, //有关我这个班级的所有信息 byzsbj: "../../images/zsbj.jpg", //毕业证书的背景 用于合成图片 myCanvasId: 0, //画布的id 再次绘制不成功的原因是id不能一致 所以id为变量++ IngCourseArr: [] //如果有正在进行的课就存一下 }, // 检查第一个任务 班级二维码是否点击 checkTaskList(sessionKey) { wx.request({ url: app.globalData.publicUrl + '/wx/student/selStudentSessionKey', method: "post", data: { sessionKey: sessionKey }, success: (res) => { console.log(res.data, "检查第一个任务") if (res.data.code == 0) { if (res.data.data.joinClas == 0) { this.setData({ istask1: true }) } this.setData({ studentName: res.data.data.studentName, }) } } }) }, //保存班级二维码 saveImg() { wx.getSetting({ success: (res) => { if (!res.authSetting['scope.writePhotosAlbum']) { wx.authorize({ scope: 'scope.writePhotosAlbum', success() { console.log(res, "我点击同意啦") wx.showLoading({ title: '保存中...' }) let imgSrc = this.data.ewmurl; wx.downloadFile({ url: imgSrc, success: function (res) { console.log(res, '我下载完成啦'); //图片保存到本地 wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: function (data) { console.log(data, '我保存成功啦') wx.hideLoading(); wx.showToast({ title: '保存成功', icon: 'success', duration: 2000 }) }, fail: function (err) { console.log(err, '我保存失败啦') wx.hideLoading(); if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") { console.log("当初用户拒绝,再次发起授权") wx.openSetting({ success(settingdata) { console.log(settingdata) if (settingdata.authSetting['scope.writePhotosAlbum']) { console.log('获取权限成功,给出再次点击图片保存到相册的提示。') } else { console.log('获取权限失败,给出不给权限就无法正常使用的提示') } } }) } }, complete(res) { console.log(res); } }) } }) } }) } else { let imgSrc = this.data.ewmurl wx.downloadFile({ url: imgSrc, success: function (res) { console.log(res, '我下载完成啦'); wx.hideLoading(); //图片保存到本地 wx.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: function (data) { console.log(data, '我保存成功啦') wx.hideLoading(); wx.showToast({ title: '保存成功', icon: 'success', duration: 2000 }) }, fail: function (err) { console.log(err, '我保存失败啦') wx.hideLoading(); if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") { console.log("当初用户拒绝,再次发起授权") wx.openSetting({ success(settingdata) { console.log(settingdata) if (settingdata.authSetting['scope.writePhotosAlbum']) { console.log('获取权限成功,给出再次点击图片保存到相册的提示。') } else { console.log('获取权限失败,给出不给权限就无法正常使用的提示') } } }) } }, complete(res) { console.log(res); } }) } }) } } }) }, // 检查第二个任务 学员登记表 checkTaskList2(sessionKey) { wx.request({ url: app.globalData.publicUrl + '/wx/student/selStudentSessionKey', method: "post", data: { sessionKey: sessionKey }, success: (res) => { console.log(res.data, "我是第二个任务的检查状态") if (res.data.code == 0 && res.data.data.register == 0) { this.setData({ istask2: true }) } } }) }, // (第三个任务在获取列表是做了 --getMycourse()) 第四个任务 期末考试 checkTaskList4(sessionKey, id) { wx.request({ url: app.globalData.publicUrl + '/wx/exam/clasExamstatus', method: "post", data: { sessionKey: sessionKey, clasId: id }, success: (res) => { console.log(res.data, "我是第四个任务的检查状态") if (res.data.code == 0 && res.data.status == 1) { this.setData({ istask4: true }) } } }) }, // 检查第五个任务 综合反馈表 checkTaskList5(sessionKey, id) { wx.request({ url: app.globalData.publicUrl + '/wx/exam/status', method: "post", data: { sessionKey: sessionKey, clasId: id }, success: (res) => { console.log(res.data, "我是第五个任务的检查状态") if (res.data.code == 0 && res.data.status == 1) { this.setData({ istask5: true }) } } }) }, //第六个任务 领取结业证 checkTaskList6(sessionKey) { wx.request({ url: app.globalData.publicUrl + '/wx/student/wxGraduation', method: "post", data: { sessionKey: sessionKey }, success: (res) => { console.log(res.data, "我是第六个任务的检查状态") if (res.data.code == 0 && res.data.code == 0) { this.setData({ istask6: true }) } } }) }, // 查询我是否有班&&班级名字 isClass(sessionKey) { wx.request({ url: app.globalData.publicUrl + '/wx/student/selMyClas', method: "post", data: { sessionKey: sessionKey }, success: (res) => { console.log(res, "我是返回是否有班级") if (res.data.code == 0) { this.setData({ classInfo: res.data.data }) this.checkTaskList4(sessionKey, res.data.data.id) this.checkTaskList5(sessionKey, res.data.data.id) } else { wx.showModal({ content: "您当前还没有开放的班级!", showCancel: false, success(res) { if (res.confirm) { wx.switchTab({ url: '../index/index' }) } } }) return false; } } }) }, // 获取我的课程表 getMycourse(sessionKey) { wx.request({ url: app.globalData.publicUrl + '/wx/course/selectBySessionKey', method: "post", data: { sessionKey: sessionKey }, success: (res) => { console.log(res, "我的任务之课程") if (res.data.code == 0 && res.data.list.length !== 0) { this.setData({ kcArr: res.data.list, istask3: res.data.allDone }); // 过滤数组 for (let i = 0; i < res.data.list.length; i++) { if (res.data.list[i].isStudyDone == 0) { this.setData({ IngCourseArr: res.data.list[i] }) } } // 换算时间 let result = []; if (res.data.list) for (let i = 0; i < res.data.list.length; i++) { result.push({ courseTime: res.data.list[i].courseTime }); } const timesArr = result.map((item) => { return item.courseTime; }); let sfmArr = []; for (let i = 0; i < timesArr.length; i++) { let value = timesArr[i]; const resultValue = this.handler(value); sfmArr.push({ courseTime: resultValue }) this.setData({ sfmArr: sfmArr }) } } } }) }, // 记录二维码已经点击 showEwm() { wx.request({ url: app.globalData.publicUrl + '/wx/student/wxGroup', method: "post", data: { sessionKey: this.data.sessionKey }, success: () => { this.setData({ showewm: true, istask1: true }) } }) }, // 二维码隐藏 onClose() { wx.hideLoading() this.setData({ showewm: false }); }, // 填写学员登记表 goWrite() { if (this.data.istask1 == false) { wx.showModal({ showCancel: false, content: "请按照任务顺序执行哦!" }) return false } wx.navigateTo({ url: '../studentRegistration/studentRegistration' }) }, // 去学习 goStudy(e) { if (this.data.istask1 == false) { wx.showModal({ showCancel: false, content: "请按照任务顺序执行哦!" }) return false } let id = e.currentTarget.dataset.item.id //此课程的id console.log(id) console.log(this.data.IngCourseArr, "我是筛选的列表") if (this.data.IngCourseArr.length == 0) { if (e.currentTarget.dataset.item.isLive == 1) { if (e.currentTarget.dataset.item.isActive == 1) { wx.navigateTo({ url: '../zbDetails/zbDetails?id=' + id }) } else { wx.showModal({ showCancel: false, content: "直播还未开始哦" }) return false; } } else { wx.navigateTo({ url: '../dbDetails/dbDetails?id=' + id }) } } else { if (id == this.data.IngCourseArr.id) { if (e.currentTarget.dataset.item.isLive == 1) { if (e.currentTarget.dataset.item.isActive == 1) { wx.navigateTo({ url: '../zbDetails/zbDetails?id=' + id }) } else { wx.showModal({ showCancel: false, content: "直播还未开始哦" }) return false; } } else { wx.navigateTo({ url: '../dbDetails/dbDetails?id=' + id }) } } else { wx.showModal({ showCancel: false, content: "您的 ‘" + this.data.IngCourseArr.courseName + "’ 课还未学完,快去学习吧" }) } } }, // 去考试 gokhAnswer(e) { if (this.data.istask1 == false) { wx.showModal({ showCancel: false, content: "请按照任务顺序执行哦!" }) return false } let isStudyDone = e.currentTarget.dataset.item.isStudyDone if (isStudyDone != 1) { wx.showModal({ showCancel: false, content: "您的学习课程还未完成哦,请先完成学习任务后再来考试吧!" }) return false } else { wx.request({ url: app.globalData.publicUrl + '/wx/exam/examList', method: "post", data: { sessionKey: this.data.sessionKey, courseId: e.currentTarget.dataset.item.id, clasId: this.data.classInfo.id }, success: (res) => { if (res.data.code == 0) { if (res.data.list.length == 0) { wx.showModal({ showCancel: false, content: '此课程还没有考试噢' }) } else { if (res.data.list[0]) { if (res.data.list[0].answersId) { this.toPath(res.data.list[0].id, res.data.list[0].paperId, res.data.list[0].answersId, 'answerAfterclass'); } else { this.beginKao(res.data.list[0].id, res.data.list[0].paperId, this.data.sessionKey, 'answerAfterclass'); } } } } } }) } }, //去评价 gopjClass(e) { if (this.data.istask1 == false) { wx.showModal({ showCancel: false, content: "请按照任务顺序执行哦!" }) return false } let isStudyDone = e.currentTarget.dataset.item.isStudyDone if (isStudyDone != 1) { wx.showModal({ showCancel: false, content: "您的学习课程还未完成哦,请先完成学习任务后再来评价吧!" }) return false } else { wx.request({ url: app.globalData.publicUrl + '/wx/exam/quesExamList', method: "post", data: { sessionKey: this.data.sessionKey, questSub: '3', courseId: e.currentTarget.dataset.item.id, clasId: this.data.classInfo.id }, success: (res) => { console.log(res, "我去评价啦") if (res.data.code == 0) { if (res.data.list.length == 0) { wx.showModal({ showCancel: false, content: '此课程还不可以评价哦!' }) } else { if (res.data.list[0]) { if (res.data.list[0].answersId) { this.toPath(res.data.list[0].id, res.data.list[0].paperId, res.data.list[0].answersId, 'evaluationCourse'); } else { this.beginKao(res.data.list[0].id, res.data.list[0].paperId, this.data.sessionKey, 'evaluationCourse'); } } } } } }) } }, // 期末考试 goQmks() { if (this.data.istask3 == false) { wx.showModal({ showCancel: false, content: "请按照任务顺序执行哦!" }) return false } wx.request({ url: app.globalData.publicUrl + '/wx/exam/examList', method: "post", data: { sessionKey: this.data.sessionKey, clasId: this.data.classInfo.id }, success: (res) => { if (res.data.code == 0) { if (res.data.list.length == 0) { wx.showModal({ showCancel: false, content: '期末考试还未开始哦!' }) } else { if (res.data.list[0]) { if (res.data.list[0].answersId) { if (res.data.list[0].status == '1') { wx.request({ url: app.globalData.publicUrl + '/wx/answer/detail', method: "post", data: { answersId: res.data.list[0].answersId }, success: (res1) => { if (res1.data.list[0].answerScore) { wx.navigateTo({ url: '/pages/grade/grade?answersId=' + res.data.list[0].answersId, }) } else { wx.showModal({ showCancel: false, content: '当前老师批阅中,请耐心等待' }) } } }) } else { this.toPath(res.data.list[0].id, res.data.list[0].paperId, res.data.list[0].answersId, 'answerAfterclass'); } } else { this.beginKao(res.data.list[0].id, res.data.list[0].paperId, this.data.sessionKey, 'answerAfterclass'); } } } } } }) }, // 综合反馈表 goWrite2() { if (this.data.istask4 == false) { wx.showModal({ showCancel: false, content: "请按照任务顺序执行哦!" }) return false } console.log(this.data.sessionKey, "dayin"); console.log(this.data.classInfo.id); wx.request({ url: app.globalData.publicUrl + '/wx/exam/quesExamList', method: "post", data: { sessionKey: this.data.sessionKey, questSub: '1', clasId: this.data.classInfo.id }, success: (res) => { if (res.data.code == 0) { if (res.data.list.length == 0) { wx.showModal({ showCancel: false, content: '当前综合反馈还不可以填写哦!' }) } else { if (res.data.list[0]) { if (res.data.list[0].answersId) { if (res.data.list[0].status == '1') { wx.navigateTo({ url: '/pages/feedBackDetail/feedBackDetail?answersId=' + res.data.list[0].answersId, }) } else { this.toPath(res.data.list[0].id, res.data.list[0].paperId, res.data.list[0].answersId, 'feedBack'); } } else { this.beginKao(res.data.list[0].id, res.data.list[0].paperId, this.data.sessionKey, 'feedBack'); } } } } } }) }, // 考试需要的方法 toPath(id, paperId, answersId, address, status) { wx.navigateTo({ url: '/pages/' + address + '/' + address + '?id=' + id + '&paperId=' + paperId + '&answersId=' + answersId + '&status=' + status, }) }, // 考试需要的方法 beginKao(id, paperId, sessionKey, address) { console.log(paperId, "8888888"); wx.request({ url: app.globalData.publicUrl + '/wx/exam/begin', method: "post", data: { sessionKey: sessionKey, id: id, paperId: paperId }, success: (res) => { console.log(res); if (res.data.code == 0) { console.log(res, "为我么我们微妙"); // 提交答案是后 this.setData({ status: res.data.status }) this.toPath(id, paperId, res.data.answersId, address, ); } } }) }, // 领取结业证 lq() { if (this.data.istask5 == false) { wx.showModal({ showCancel: false, content: "请按照任务顺序执行哦!" }) return false } wx.showLoading({ mask: true, title: '加载中', }) this.setData({ myCanvasId: this.data.myCanvasId + 1 }) console.log(this.data.myCanvasId) let str = this.data.studentName + "同志于" + this.data.classInfo.beginDate + " 至 " + this.data.classInfo.endDate + "参加学习完成规定培训内容,准予结业,特发此证。" let strArr = []; //每15个字截取一下 // let n = 15; // for (let i = 0, l = str.length; i < l / n; i++) { // let a = str.slice(n * i, n * (i + 1)); // strArr.push(a); // } let a = str.slice(0, 18); let b = str.slice(16, 36); let c = str.slice(36, 56); strArr.push(a, b, c); console.log(strArr, "我是截取之后的") const ctx = wx.createCanvasContext(this.data.myCanvasId); ctx.drawImage(this.data.byzsbj, 0, 0, 300, 415); //里面的参数无非就是图片放置的位置即图片的横纵坐标,图片的宽高 ctx.setFillStyle("#000"); ctx.setFontSize(16); //字大小 ctx.setTextAlign('left'); //是否居中显示,参考点画布中线 let leftPositionAarr = [60, 30, 30, 30] for (let i = 0; i < strArr.length; i++) { console.log(i); ctx.fillText(strArr[i], leftPositionAarr[i], 160 + i * 30); } // ctx.fillText(str, 150, 160); //150:canvas画布宽300,取1/2,中间,280:纵向位置 ctx.draw(); wx.hideLoading(); this.setData({ showzs: true, istask5: true }); wx.request({ url: app.globalData.publicUrl + '/wx/student/wxGraduation', method: "post", data: { sessionKey: this.data.sessionKey }, success: (res) => { console.log(res.data, "领取结业证提交") } }) }, // 保存结业证 saveZs() { wx.canvasToTempFilePath({ //把当前画布指定区域的内容导出生成指定大小的图片 canvasId: this.data.myCanvasId, success(res) { console.log(res) wx.authorize({ //向用户发起授权请求 scope: 'scope.writePhotosAlbum', //保存相册授权 success: () => { wx.saveImageToPhotosAlbum({ //保存图片到系统相册 filePath: res.tempFilePath, success: () => { wx.showToast({ title: '图片保存成功' }) } }) } }) } }) }, // 视频时长换算 换成多少时多少分多少秒 handler(value) { //换算为秒 进制1000 const second = Math.floor(value / 1000); //判断是否够1秒 if (second < 1) { return "0秒"; } const secondValue = second % 60; // 秒 const minutes = Math.floor(second / 60); //判断是否够1分钟 if (minutes < 1) { return `${secondValue}秒`; } const minutesValue = minutes % 60; //分 const hours = Math.floor(minutes / 60); //判断是否够1小时 if (hours < 1) { return `${minutesValue}分${secondValue}秒`; } const hoursValue = hours % 60; //小时 return `${hoursValue}时${minutesValue}分${secondValue}秒`; }, // 结业证隐藏 onClose1() { this.setData({ showzs: false }); }, // 查看详情成绩 gockcj(e) { console.log(e.currentTarget.dataset.item.isExamId); if (e.currentTarget.dataset.item.isExamId) { wx.request({ url: app.globalData.publicUrl + '/wx/answer/detail', method: "post", data: { answersId: e.currentTarget.dataset.item.isExamId }, success: (res) => { console.log(res.data, "我是第四个任务的检查状态") if (res.data.list[0].answerScore) { wx.navigateTo({ url: '/pages/grade/grade?answersId=' + e.currentTarget.dataset.item.isExamId, }) } else { wx.showModal({ showCancel: false, content: '当前老师批阅中,请耐心等待', success(res) {} }) } } }) } }, // 查看详情评价 gockpj(e) { console.log(e.currentTarget.dataset.item.isFeedbackId); wx.navigateTo({ url: '/pages/evaluationCourseDetail/evaluationCourseDetail?answersId=' + e.currentTarget.dataset.item.isFeedbackId, }) }, async onShow() { const sessionKey = await tools.checkSessionAndLogin(); this.setData({ sessionKey }) this.isClass(sessionKey); this.getMycourse(sessionKey); this.checkTaskList(sessionKey) this.checkTaskList2(sessionKey) this.checkTaskList6(sessionKey) } })