myMission.js 28 KB

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