myClass.js 26 KB

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