myMission.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835
  1. const app = require('../../utils/util.js');
  2. const tools = require('../../utils/tools.js');
  3. Page({
  4. data: {
  5. isRz: false,
  6. showewm: false, //是否显示班级群二维码
  7. showzs: false, //是否显示毕业证书
  8. show: false, //协议显示
  9. kcArr: [], //课程列表
  10. sfmArr: [], //课程的时间换算成(时分秒)
  11. istask1: false, //第一个任务加入班级群
  12. istask2: false, //第二个任务学员登记表
  13. istask3: false, //第三个任务所有课程是否学完
  14. istask4: false, //第四个任务是否完成期末开始
  15. istask5: false, //第五个任务综合反馈
  16. istask6: false, //第六个任务是否领取毕业证书
  17. studentName: "", //学生的名字用于毕业证书
  18. classInfo: {}, //有关我这个班级的所有信息
  19. byzsbj: "../../images/zsbj.jpg", //毕业证书的背景 用于合成图片
  20. myCanvasId: 0, //画布的id 再次绘制不成功的原因是id不能一致 所以id为变量++
  21. IngCourseArr: [], //如果有正在进行的课就存一下
  22. currentId: null,
  23. currentName: ""
  24. },
  25. // 检查第一个任务 班级二维码是否点击 && 检查第二个任务 学员登记表 && 第六个任务 领取结业证
  26. checkTaskList(sessionKey) {
  27. wx.request({
  28. url: app.globalData.publicUrl + '/wx/student/selStudentSessionKey',
  29. method: "post",
  30. data: {
  31. sessionKey: sessionKey
  32. },
  33. success: (res) => {
  34. if (res.data.code == 0) {
  35. this.setData({
  36. studentName: res.data.data.studentName,
  37. })
  38. if (res.data.data.joinClas == 0) {
  39. this.setData({
  40. istask1: true
  41. })
  42. }
  43. if (res.data.data.register == 0) {
  44. this.setData({
  45. istask2: true
  46. })
  47. }
  48. if (res.data.data.graduation == 0) {
  49. this.setData({
  50. istask6: true
  51. })
  52. }
  53. }
  54. }
  55. })
  56. },
  57. //保存班级二维码
  58. saveImg() {
  59. console.log(this.data.classInfo.codeImg)
  60. wx.showLoading({
  61. title: '保存中...'
  62. })
  63. wx.downloadFile({
  64. url: this.data.classInfo.codeImg,
  65. success: (res) => {
  66. console.log(res)
  67. //图片保存到本地
  68. wx.saveImageToPhotosAlbum({
  69. filePath: res.tempFilePath,
  70. success: () => {
  71. wx.hideLoading()
  72. wx.showModal({
  73. title: '提示',
  74. content: '保存成功',
  75. showCancel: false,
  76. })
  77. },
  78. fail: (err) => {
  79. console.log(err, "我保存失败了")
  80. if (err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
  81. wx.showModal({
  82. title: '提示',
  83. content: '需要您授权保存相册',
  84. showCancel: false,
  85. success: () => {
  86. wx.hideLoading()
  87. wx.openSetting({
  88. success(settingdata) {
  89. if (settingdata.authSetting['scope.writePhotosAlbum']) {
  90. wx.showModal({
  91. title: '提示',
  92. content: '获取权限成功,再次点击即可保存',
  93. showCancel: false,
  94. })
  95. } else {
  96. wx.showModal({
  97. title: '提示',
  98. content: '获取权限失败,将无法保存到相册哦~',
  99. showCancel: false,
  100. })
  101. }
  102. },
  103. fail(failData) {
  104. console.log("failData", failData)
  105. },
  106. complete(finishData) {
  107. console.log("finishData", finishData)
  108. }
  109. })
  110. }
  111. })
  112. }
  113. }
  114. })
  115. },
  116. fail: (res) => {
  117. console.log(res, "我下载失败了")
  118. wx.hideLoading()
  119. wx.showModal({
  120. title: '提示',
  121. content: '下载失败',
  122. showCancel: false,
  123. })
  124. }
  125. })
  126. },
  127. // (第三个任务在获取列表是做了 --getMycourse()) 第四个任务 期末考试
  128. checkTaskList4(sessionKey, id) {
  129. wx.request({
  130. url: app.globalData.publicUrl + '/wx/exam/clasExamstatus',
  131. method: "post",
  132. data: {
  133. sessionKey: sessionKey,
  134. clasId: id
  135. },
  136. success: (res) => {
  137. if (res.data.code == 0 && res.data.status == 1) {
  138. this.setData({
  139. istask4: true
  140. })
  141. }
  142. }
  143. })
  144. },
  145. // 检查第五个任务 综合反馈表
  146. checkTaskList5(sessionKey, id) {
  147. wx.request({
  148. url: app.globalData.publicUrl + '/wx/exam/status',
  149. method: "post",
  150. data: {
  151. sessionKey: sessionKey,
  152. clasId: id
  153. },
  154. success: (res) => {
  155. if (res.data.code == 0 && res.data.status == 1) {
  156. this.setData({
  157. istask5: true
  158. })
  159. }
  160. }
  161. })
  162. },
  163. // 是否认证
  164. isRz(sessionKey) {
  165. wx.request({
  166. url: app.globalData.publicUrl + '/wx/student/selStudentSessionKey',
  167. method: "post",
  168. data: {
  169. sessionKey: sessionKey
  170. },
  171. success: (res) => {
  172. if (res.data.code == 0 && (res.data.data !== null || res.data.data !== "")) {
  173. this.isClass(sessionKey)
  174. this.setData({
  175. isRz: false
  176. })
  177. } else {
  178. this.setData({
  179. isRz: true
  180. })
  181. // wx.showModal({
  182. // content: "您还没有进行身份认证哦",
  183. // showCancel: false,
  184. // success(res) {
  185. // if (res.confirm) {
  186. // wx.redirectTo({
  187. // url: '../Identity/Identity'
  188. // })
  189. // }
  190. // }
  191. // })
  192. }
  193. }
  194. })
  195. },
  196. escRz() {
  197. wx.switchTab({
  198. url: '/pages/index/index',
  199. })
  200. },
  201. goRz() {
  202. wx.navigateTo({
  203. url: '/pages/Identity/Identity',
  204. })
  205. },
  206. // 查询我是否有班&&班级名字
  207. isClass(sessionKey) {
  208. wx.request({
  209. url: app.globalData.publicUrl + '/wx/student/selMyClas',
  210. method: "post",
  211. data: {
  212. sessionKey: sessionKey
  213. },
  214. success: (res) => {
  215. if (res.data.code == 0) {
  216. this.setData({
  217. classInfo: res.data.data
  218. })
  219. this.isAgree(sessionKey);
  220. this.getMycourse(sessionKey);
  221. this.checkTaskList(sessionKey);
  222. this.checkTaskList4(sessionKey, res.data.data.id)
  223. this.checkTaskList5(sessionKey, res.data.data.id)
  224. } else {
  225. if (res.data.msg == "运行时异常:学员不可同时存在两个班级中。") {
  226. wx.showModal({
  227. content: "学员不可同时存在多个班级中哦",
  228. showCancel: false,
  229. success(res) {
  230. if (res.confirm) {
  231. wx.switchTab({
  232. url: '../index/index'
  233. })
  234. }
  235. }
  236. })
  237. return false;
  238. } else {
  239. wx.showModal({
  240. content: "您当前还没有正在开放的班级!",
  241. showCancel: false,
  242. success(res) {
  243. if (res.confirm) {
  244. wx.switchTab({
  245. url: '../index/index'
  246. })
  247. }
  248. }
  249. })
  250. return false;
  251. }
  252. }
  253. }
  254. })
  255. },
  256. // 协议是否已同意
  257. isAgree(sessionKey) {
  258. wx.request({
  259. url: app.globalData.publicUrl + '/wx/student/selStudentSessionKey',
  260. method: "post",
  261. data: {
  262. sessionKey
  263. },
  264. success: (res) => {
  265. if (res.data.code == 0 && res.data.data) {
  266. if (res.data.data.agreement == 0) {
  267. this.setData({
  268. studentName: res.data.data.studentName,
  269. show: false
  270. });
  271. } else {
  272. this.setData({
  273. studentName: res.data.data.studentName,
  274. show: true
  275. });
  276. }
  277. }
  278. }
  279. })
  280. },
  281. moreThink() {
  282. wx.switchTab({
  283. url: '../index/index'
  284. })
  285. },
  286. // 点击同意协议 并且记一下
  287. hidePopup() {
  288. wx.request({
  289. url: app.globalData.publicUrl + '/wx/student/verification',
  290. method: "post",
  291. data: {
  292. sessionKey: this.data.sessionKey
  293. },
  294. success: (res) => {
  295. this.setData({
  296. show: false
  297. });
  298. }
  299. })
  300. },
  301. // 获取我的课程表
  302. getMycourse(sessionKey) {
  303. wx.request({
  304. url: app.globalData.publicUrl + '/wx/course/selectBySessionKey',
  305. method: "post",
  306. data: {
  307. sessionKey: sessionKey
  308. },
  309. success: (res) => {
  310. if (res.data.code == 0 && res.data.list.length !== 0) {
  311. this.setData({
  312. kcArr: res.data.list,
  313. istask3: res.data.allDone,
  314. currentName: "",
  315. currentId: null
  316. });
  317. // 过滤数组
  318. for (let i = 0; i < res.data.list.length; i++) {
  319. // 这个节课未全部完成
  320. if (res.data.list[i].isLive == -1) {
  321. if (res.data.list[i].isDone == 0) {
  322. // 这个视频已经进行了 看一半或者看完了
  323. if (res.data.list[i].isStudyDone == 0 || res.data.list[i].isStudyDone == 1) {
  324. this.setData({
  325. currentName: res.data.list[i].courseName,
  326. currentId: res.data.list[i].id
  327. })
  328. }
  329. }
  330. }
  331. }
  332. // 换算时间
  333. let result = [];
  334. if (res.data.list)
  335. for (let i = 0; i < res.data.list.length; i++) {
  336. result.push({
  337. courseTime: res.data.list[i].courseTime
  338. });
  339. }
  340. const timesArr = result.map((item) => {
  341. return item.courseTime;
  342. });
  343. let sfmArr = [];
  344. for (let i = 0; i < timesArr.length; i++) {
  345. let value = timesArr[i];
  346. const resultValue = this.handler(value);
  347. sfmArr.push({
  348. courseTime: resultValue
  349. })
  350. this.setData({
  351. sfmArr: sfmArr
  352. })
  353. }
  354. }
  355. }
  356. })
  357. },
  358. // 记录二维码已经点击
  359. showEwm() {
  360. wx.showLoading({
  361. title: '记载中',
  362. mask: true
  363. })
  364. wx.request({
  365. url: app.globalData.publicUrl + '/wx/student/wxGroup',
  366. method: "post",
  367. data: {
  368. sessionKey: this.data.sessionKey
  369. },
  370. success: () => {
  371. this.setData({
  372. showewm: true,
  373. istask1: true
  374. })
  375. wx.hideLoading();
  376. },
  377. fail: () => {
  378. wx.hideLoading();
  379. }
  380. })
  381. },
  382. // 二维码隐藏
  383. onClose() {
  384. wx.hideLoading()
  385. this.setData({
  386. showewm: false
  387. });
  388. },
  389. // 填写学员登记表
  390. goWrite() {
  391. if (this.data.istask1 == false) {
  392. wx.showModal({
  393. showCancel: false,
  394. content: "请先去扫描班级二维码加入班级群吧!"
  395. })
  396. return false
  397. }
  398. wx.navigateTo({
  399. url: '../studentRegistration/studentRegistration'
  400. })
  401. },
  402. // 去学习
  403. goStudy(e) {
  404. let id = e.currentTarget.dataset.item.id //此课程的id
  405. let courseUrl = e.currentTarget.dataset.item.courseUrl //此课程的id
  406. let courseName = e.currentTarget.dataset.item.courseName //此课程的id
  407. let courseInfo = e.currentTarget.dataset.item.courseInfo //此课程的id
  408. if (!this.data.istask2) {
  409. wx.showModal({
  410. showCancel: false,
  411. content: "请先去填写学院登记表吧!"
  412. })
  413. return false
  414. }
  415. // 直播
  416. if (e.currentTarget.dataset.item.isLive == 1) {
  417. if (e.currentTarget.dataset.item.isActive == 1) {
  418. wx.navigateTo({
  419. url: '../zbDetails/zbDetails?id=' + id
  420. })
  421. }
  422. // else if (e.currentTarget.dataset.item.isActive == -1) {
  423. // wx.navigateTo({
  424. // url: '../livePlayback/livePlayback?courseName=' + courseName + '&courseUrl=' + courseUrl + '&courseInfo=' + courseInfo
  425. // })
  426. // }
  427. else if (e.currentTarget.dataset.item.isActive == -1) {
  428. if(courseUrl==null||courseUrl==""){
  429. wx.showModal({
  430. showCancel: false,
  431. content: "直播回放还未上传噢"
  432. })
  433. }else{
  434. wx.navigateTo({
  435. url: '../livePlayback/livePlayback?courseName=' + courseName + '&courseUrl=' + courseUrl + '&courseInfo=' + courseInfo
  436. })
  437. }
  438. }else {
  439. wx.showModal({
  440. showCancel: false,
  441. content: "直播还未开始哦"
  442. })
  443. return false;
  444. }
  445. } else {
  446. if (this.data.currentId != null) {
  447. // 没学或者没学完
  448. if (e.currentTarget.dataset.item.isDone == 0) {
  449. if (id == this.data.currentId) {
  450. wx.navigateTo({
  451. url: '../dbDetails/dbDetails?id=' + id
  452. })
  453. } else {
  454. // 有未完成的但不是我 就不能跳转
  455. wx.showModal({
  456. showCancel: false,
  457. content: "您的" + this.data.currentName + "课还未学完,快去学习吧"
  458. })
  459. }
  460. } else {
  461. // 我看完了这个视频 还能看
  462. wx.navigateTo({
  463. url: '../dbDetails/dbDetails?id=' + id
  464. })
  465. }
  466. } else {
  467. wx.navigateTo({
  468. url: '../dbDetails/dbDetails?id=' + id
  469. })
  470. }
  471. }
  472. },
  473. // 去考试
  474. gokhAnswer(e) {
  475. if (!this.data.istask2) {
  476. wx.showModal({
  477. showCancel: false,
  478. content: "请先去填写学院登记表吧!"
  479. })
  480. return false
  481. }
  482. let isStudyDone = e.currentTarget.dataset.item.isStudyDone
  483. if (isStudyDone != 1) {
  484. wx.showModal({
  485. showCancel: false,
  486. content: "您当前的学习课程还未完成哦,请先完成再来考试吧!"
  487. })
  488. return false
  489. } else {
  490. wx.request({
  491. url: app.globalData.publicUrl + '/wx/exam/examList',
  492. method: "post",
  493. data: {
  494. sessionKey: this.data.sessionKey,
  495. courseId: e.currentTarget.dataset.item.id,
  496. clasId: this.data.classInfo.id
  497. },
  498. success: (res) => {
  499. if (res.data.code == 0) {
  500. if (res.data.list.length == 0) {
  501. wx.showModal({
  502. showCancel: false,
  503. content: '此课程还没有考试噢'
  504. })
  505. } else {
  506. if (res.data.list[0]) {
  507. if (res.data.list[0].answersId) {
  508. this.toPath(res.data.list[0].id, res.data.list[0].paperId, res.data.list[0].answersId, 'answerAfterclass');
  509. } else {
  510. this.beginKao(res.data.list[0].id, res.data.list[0].paperId, this.data.sessionKey, 'answerAfterclass');
  511. }
  512. }
  513. }
  514. }
  515. }
  516. })
  517. }
  518. },
  519. //去评价
  520. gopjClass(e) {
  521. if (!this.data.istask2) {
  522. wx.showModal({
  523. showCancel: false,
  524. content: "请先去填写学院登记表吧!"
  525. })
  526. return false
  527. }
  528. let isStudyDone = e.currentTarget.dataset.item.isStudyDone
  529. if (isStudyDone != 1) {
  530. wx.showModal({
  531. showCancel: false,
  532. content: "您的学习课程还未完成哦,请先完成学习任务后再来评价吧!"
  533. })
  534. return false
  535. } else {
  536. wx.request({
  537. url: app.globalData.publicUrl + '/wx/exam/quesExamList',
  538. method: "post",
  539. data: {
  540. sessionKey: this.data.sessionKey,
  541. // questSub: '3',
  542. courseId: e.currentTarget.dataset.item.id,
  543. clasId: this.data.classInfo.id
  544. },
  545. success: (res) => {
  546. if (res.data.code == 0) {
  547. if (res.data.list.length == 0) {
  548. wx.showModal({
  549. showCancel: false,
  550. content: '此课程还不可以评价哦!'
  551. })
  552. } else {
  553. if (res.data.list[0]) {
  554. if (res.data.list[0].answersId) {
  555. this.toPath(res.data.list[0].id, res.data.list[0].paperId, res.data.list[0].answersId, 'evaluationCourse');
  556. } else {
  557. this.beginKao(res.data.list[0].id, res.data.list[0].paperId, this.data.sessionKey, 'evaluationCourse');
  558. }
  559. }
  560. }
  561. }
  562. }
  563. })
  564. }
  565. },
  566. // 期末考试
  567. goQmks() {
  568. if (!this.data.istask1) {
  569. wx.showModal({
  570. showCancel: false,
  571. content: "请先去扫描二维码加入班级群吧",
  572. success(res) {
  573. if (res.confirm) {
  574. wx.switchTab({
  575. url: '../myMission/myMission'
  576. })
  577. }
  578. }
  579. })
  580. return false
  581. }
  582. if (!this.data.istask3) {
  583. wx.showModal({
  584. showCancel: false,
  585. content: "您的课程任务还未全部完成哦!请先去完成再来期末考试吧!"
  586. })
  587. return false
  588. }
  589. wx.request({
  590. url: app.globalData.publicUrl + '/wx/exam/examList',
  591. method: "post",
  592. data: {
  593. sessionKey: this.data.sessionKey,
  594. clasId: this.data.classInfo.id
  595. },
  596. success: (res) => {
  597. if (res.data.code == 0) {
  598. if (res.data.list.length == 0) {
  599. wx.showModal({
  600. showCancel: false,
  601. content: '期末考试还未开始哦!'
  602. })
  603. } else {
  604. if (res.data.list[0].answersId) {
  605. if (res.data.list[0].status == '1') {
  606. wx.request({
  607. url: app.globalData.publicUrl + '/wx/answer/detail',
  608. method: "post",
  609. data: {
  610. answersId: res.data.list[0].answersId
  611. },
  612. success: (res1) => {
  613. if (res1.data.list[0].answerScore >= 0 && res1.data.list[0].answerScore != null) {
  614. wx.navigateTo({
  615. url: '/pages/grade/grade?answersId=' + res.data.list[0].answersId,
  616. })
  617. } else {
  618. wx.showModal({
  619. showCancel: false,
  620. content: '当前老师批阅中,请耐心等待'
  621. })
  622. }
  623. }
  624. })
  625. } else {
  626. this.toPath(res.data.list[0].id, res.data.list[0].paperId, res.data.list[0].answersId, 'answerAfterclass');
  627. }
  628. } else {
  629. this.beginKao(res.data.list[0].id, res.data.list[0].paperId, this.data.sessionKey, 'answerAfterclass');
  630. }
  631. }
  632. }
  633. }
  634. })
  635. },
  636. // 综合反馈表
  637. goWrite2() {
  638. wx.request({
  639. url: app.globalData.publicUrl + '/wx/exam/quesExamList',
  640. method: "post",
  641. data: {
  642. sessionKey: this.data.sessionKey,
  643. questSub: '1',
  644. clasId: this.data.classInfo.id
  645. },
  646. success: (res) => {
  647. if (res.data.code == 0) {
  648. if (res.data.list.length == 0) {
  649. wx.showModal({
  650. showCancel: false,
  651. content: '当前综合反馈还不可以填写哦!'
  652. })
  653. } else {
  654. if (res.data.list[0]) {
  655. if (res.data.list[0].answersId) {
  656. if (res.data.list[0].status == '1') {
  657. wx.navigateTo({
  658. url: '/pages/feedBackDetail/feedBackDetail?answersId=' + res.data.list[0].answersId,
  659. })
  660. } else {
  661. this.toPath(res.data.list[0].id, res.data.list[0].paperId, res.data.list[0].answersId, 'feedBack');
  662. }
  663. } else {
  664. this.beginKao(res.data.list[0].id, res.data.list[0].paperId, this.data.sessionKey, 'feedBack');
  665. }
  666. }
  667. }
  668. }
  669. }
  670. })
  671. },
  672. // 考试需要的方法
  673. toPath(id, paperId, answersId, address, status) {
  674. wx.navigateTo({
  675. url: '/pages/' + address + '/' + address + '?id=' + id + '&paperId=' + paperId + '&answersId=' + answersId + '&status=' + status,
  676. })
  677. },
  678. // 考试需要的方法
  679. beginKao(id, paperId, sessionKey, address) {
  680. wx.request({
  681. url: app.globalData.publicUrl + '/wx/exam/begin',
  682. method: "post",
  683. data: {
  684. sessionKey: sessionKey,
  685. id: id,
  686. paperId: paperId
  687. },
  688. success: (res) => {
  689. if (res.data.code == 0) {
  690. this.setData({
  691. status: res.data.status
  692. })
  693. this.toPath(id, paperId, res.data.answersId, address, );
  694. }
  695. }
  696. })
  697. },
  698. // 领取结业证
  699. lq() {
  700. if (!this.data.istask4) {
  701. wx.showModal({
  702. showCancel: false,
  703. content: "请先去期末考试再来领取结业证吧!"
  704. })
  705. return false
  706. }
  707. wx.showLoading({
  708. mask: true,
  709. title: '加载中',
  710. })
  711. this.setData({
  712. myCanvasId: this.data.myCanvasId + 1
  713. })
  714. let str = this.data.studentName + "同志于" + this.data.classInfo.beginDate + " 至 " + this.data.classInfo.endDate + "参加学习完成规定培训内容,准予结业,特发此证。"
  715. let strArr = [];
  716. let a = str.slice(0, 18);
  717. let b = str.slice(16, 36);
  718. let c = str.slice(36, 56);
  719. strArr.push(a, b, c);
  720. const ctx = wx.createCanvasContext(this.data.myCanvasId);
  721. ctx.drawImage(this.data.byzsbj, 0, 0, 300, 415); //里面的参数无非就是图片放置的位置即图片的横纵坐标,图片的宽高
  722. ctx.setFillStyle("#000");
  723. ctx.setFontSize(16); //字大小
  724. ctx.setTextAlign('left'); //是否居中显示,参考点画布中线
  725. let leftPositionAarr = [60, 30, 30, 30]
  726. for (let i = 0; i < strArr.length; i++) {
  727. ctx.fillText(strArr[i], leftPositionAarr[i], 160 + i * 30);
  728. }
  729. // ctx.fillText(str, 150, 160); //150:canvas画布宽300,取1/2,中间,280:纵向位置
  730. ctx.draw();
  731. wx.hideLoading();
  732. this.setData({
  733. showzs: true,
  734. istask6: true
  735. });
  736. wx.request({
  737. url: app.globalData.publicUrl + '/wx/student/wxGraduation',
  738. method: "post",
  739. data: {
  740. sessionKey: this.data.sessionKey
  741. },
  742. success: (res) => {
  743. console.log(res.data, "领取结业证提交")
  744. }
  745. })
  746. },
  747. // 保存结业证
  748. saveZs() {
  749. wx.canvasToTempFilePath({ //把当前画布指定区域的内容导出生成指定大小的图片
  750. canvasId: this.data.myCanvasId,
  751. success(res) {
  752. wx.authorize({ //向用户发起授权请求
  753. scope: 'scope.writePhotosAlbum', //保存相册授权
  754. success: () => {
  755. wx.saveImageToPhotosAlbum({ //保存图片到系统相册
  756. filePath: res.tempFilePath,
  757. success: () => {
  758. wx.showToast({
  759. title: '图片保存成功'
  760. })
  761. }
  762. })
  763. }
  764. })
  765. }
  766. })
  767. },
  768. // 视频时长换算 换成多少时多少分多少秒
  769. handler(value) {
  770. //换算为秒 进制1000
  771. const second = Math.floor(value / 1000); //判断是否够1秒
  772. if (second < 1) {
  773. return "0秒";
  774. }
  775. const secondValue = second % 60; // 秒
  776. const minutes = Math.floor(second / 60); //判断是否够1分钟
  777. if (minutes < 1) {
  778. return `${secondValue}秒`;
  779. }
  780. const minutesValue = minutes % 60; //分
  781. const hours = Math.floor(minutes / 60); //判断是否够1小时
  782. if (hours < 1) {
  783. return `${minutesValue}分${secondValue}秒`;
  784. }
  785. const hoursValue = hours % 60; //小时
  786. return `${hoursValue}时${minutesValue}分${secondValue}秒`;
  787. },
  788. // 结业证隐藏
  789. onClose1() {
  790. this.setData({
  791. showzs: false
  792. });
  793. },
  794. // 查看详情成绩
  795. gockcj(e) {
  796. if (e.currentTarget.dataset.item.isExamId) {
  797. wx.request({
  798. url: app.globalData.publicUrl + '/wx/answer/detail',
  799. method: "post",
  800. data: {
  801. answersId: e.currentTarget.dataset.item.isExamId
  802. },
  803. success: (res) => {
  804. if (res.data.list[0] &&res.data.list[0].answerScore >= 0 && res.data.list[0].answerScore != null) {
  805. wx.navigateTo({
  806. url: '/pages/grade/grade?answersId=' + e.currentTarget.dataset.item.isExamId,
  807. })
  808. } else {
  809. wx.showModal({
  810. showCancel: false,
  811. content: '当前老师批阅中,请耐心等待'
  812. })
  813. }
  814. }
  815. })
  816. }
  817. },
  818. // 查看详情评价
  819. gockpj(e) {
  820. wx.navigateTo({
  821. url: '/pages/evaluationCourseDetail/evaluationCourseDetail?answersId=' + e.currentTarget.dataset.item.isFeedbackId,
  822. })
  823. },
  824. async onShow() {
  825. const sessionKey = await tools.checkSessionAndLogin();
  826. this.setData({
  827. sessionKey
  828. })
  829. this.isRz(sessionKey);
  830. }
  831. })