myClass.js 28 KB

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