myMission.js 26 KB

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