myClass.js 26 KB

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