myClass.js 23 KB

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