123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774 |
- 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)
- }
- })
|