myClass.js 27 KB

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