myClass.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702
  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,
  16. byzsbj: "../../images/zsbj.jpg",
  17. IngCourseArr: [], //如果有正在进行的课就存一下
  18. istask1: false, //学员登记表是否完成
  19. istask2: false, //课程是否完成
  20. istask3: false, //期末考试是否完成
  21. istask4: false, //综合反馈是否完成
  22. },
  23. // 更多
  24. listToggle: function () {
  25. this.setData({
  26. showMore: !this.data.showMore
  27. })
  28. },
  29. hidePopup() {
  30. this.setData({
  31. show: false
  32. });
  33. let sessionKey = "";
  34. wx.checkSession({
  35. success: () => {
  36. sessionKey = wx.getStorageSync('sessionKey');
  37. wx.request({
  38. url: app.globalData.publicUrl + '/wx/student/verification',
  39. method: "post",
  40. data: {
  41. sessionKey: sessionKey
  42. },
  43. success: function (res) {
  44. console.log(res, "我成功了")
  45. }
  46. })
  47. },
  48. fail() {
  49. console.log("我没有缓存并去登录请求")
  50. wx.login({
  51. success(res) {
  52. console.log(res);
  53. let code = res.code
  54. wx.request({
  55. url: app.globalData.publicUrl + '/wx/user/wx7e7a46e129d6cd0f/login',
  56. method: "get",
  57. data: {
  58. code
  59. },
  60. success: function (res) {
  61. sessionKey = res.data.sessionKey;
  62. wx.setStorageSync('sessionKey', res.data.sessionKey);
  63. wx.request({
  64. url: app.globalData.publicUrl + '/wx/student/verification',
  65. method: "post",
  66. data: {
  67. sessionKey: sessionKey
  68. },
  69. success: function (res) {
  70. console.log(res, "我成功了")
  71. }
  72. })
  73. }
  74. })
  75. }
  76. })
  77. }
  78. })
  79. },
  80. myactiveMore() {
  81. wx.navigateTo({
  82. url: '../myActive/myActive'
  83. })
  84. },
  85. // 随堂考试
  86. // gokhAnswer() {
  87. // wx.navigateTo({
  88. // url: '../answerAfterclass/answerAfterclass'
  89. // })
  90. // },
  91. gokhAnswer(e) {
  92. if (this.data.istask1 == false) {
  93. wx.showModal({
  94. showCancel: false,
  95. content: "请按照任务顺序执行哦!"
  96. })
  97. return false
  98. }
  99. let isStudyDone = e.currentTarget.dataset.item.isStudyDone
  100. let isExam = e.currentTarget.dataset.item.isExam
  101. if (isStudyDone != 1) {
  102. wx.showModal({
  103. showCancel: false,
  104. content: "您的学习课程还未完成哦,请先完成学习任务后再来考试吧!"
  105. })
  106. return false
  107. } else {
  108. if (isExam == 0) {
  109. wx.request({
  110. url: app.globalData.publicUrl + '/wx/exam/examList',
  111. method: "post",
  112. data: {
  113. sessionKey: this.data.sessionKey,
  114. courseId: e.currentTarget.dataset.item.id,
  115. clasId: this.data.classInfo.id
  116. },
  117. success: (res) => {
  118. if (res.data.code == 0) {
  119. console.log(res.data);
  120. //let answersId = res.data.list[0].answersId ;
  121. if (res.data.list[0]) {
  122. if (res.data.list[0].answersId) {
  123. this.toPath(res.data.list[0].id, res.data.list[0].paperId, res.data.list[0].answersId, 'answerAfterclass');
  124. } else {
  125. console.log('777777');
  126. this.beginKao(res.data.list[0].id, res.data.list[0].paperId, this.data.sessionKey, 'answerAfterclass');
  127. }
  128. }
  129. }
  130. }
  131. })
  132. } else {
  133. wx.showModal({
  134. showCancel: false,
  135. content: "您已经考完试了!"
  136. })
  137. }
  138. }
  139. // console.log(e.currentTarget.dataset.courseid, "00");
  140. },
  141. //我的班级去评价
  142. gopjClass(e) {
  143. if (this.data.istask1 == false) {
  144. wx.showModal({
  145. showCancel: false,
  146. content: "请按照任务顺序执行哦!"
  147. })
  148. return false
  149. }
  150. console.log(e.currentTarget.dataset.item, "8888")
  151. let isStudyDone = e.currentTarget.dataset.item.isStudyDone
  152. let isFeedback = e.currentTarget.dataset.item.isFeedback
  153. if (isStudyDone != 1) {
  154. wx.showModal({
  155. showCancel: false,
  156. content: "您的学习课程还未完成哦,请先完成学习任务后再来评价吧!"
  157. })
  158. return false
  159. } else {
  160. if (isFeedback == 0) {
  161. wx.request({
  162. url: app.globalData.publicUrl + '/wx/exam/quesExamList',
  163. method: "post",
  164. data: {
  165. sessionKey: this.data.sessionKey,
  166. questSub: '3',
  167. courseId: e.currentTarget.dataset.id,
  168. clasId: this.data.classInfo.id
  169. },
  170. success: (res) => {
  171. if (res.data.code == 0) {
  172. console.log(res.data);
  173. //let answersId = res.data.list[0].answersId ;
  174. if (res.data.list[0]) {
  175. if (res.data.list[0].answersId) {
  176. if (res.data.list[0].status == '1') {
  177. wx.navigateTo({
  178. url: '/pages/evaluationCourseDetail/evaluationCourseDetail?answersId=' + res.data.list[0].answersId,
  179. })
  180. } else {
  181. this.toPath(res.data.list[0].id, res.data.list[0].paperId, res.data.list[0].answersId, 'evaluationCourse');
  182. }
  183. } else {
  184. console.log('777777');
  185. this.beginKao(res.data.list[0].id, res.data.list[0].paperId, this.data.sessionKey, 'evaluationCourse');
  186. }
  187. }
  188. }
  189. }
  190. })
  191. } else {
  192. wx.showModal({
  193. showCancel: false,
  194. content: "您已经评价过了!"
  195. })
  196. }
  197. }
  198. },
  199. goMyPoints() {
  200. // wx.showModal({
  201. // showCancel: false,
  202. // content: "敬请期待",
  203. // success(res) {}
  204. // })
  205. wx.navigateTo({
  206. url: '../myPoints/myPoints'
  207. })
  208. },
  209. goactiveDetails() {
  210. wx.navigateTo({
  211. url: '../myactiveDetails/myactiveDetails'
  212. })
  213. },
  214. lq() {
  215. wx.showLoading({
  216. mask: true,
  217. title: '加载中',
  218. })
  219. this.setData({
  220. myCanvasId: this.data.myCanvasId + 1
  221. })
  222. console.log(this.data.myCanvasId)
  223. let str = this.data.studentName + "同志于" + this.data.classInfo.beginDate + " 至 " + this.data.classInfo.endDate + "参加学习完成规定培训内容,准予结业,特发此证。"
  224. let strArr = [];
  225. //每15个字截取一下
  226. // let n = 15;
  227. // for (let i = 0, l = str.length; i < l / n; i++) {
  228. // let a = str.slice(n * i, n * (i + 1));
  229. // strArr.push(a);
  230. // }
  231. let a = str.slice(0, 18);
  232. let b = str.slice(16, 36);
  233. let c = str.slice(36, 56);
  234. strArr.push(a, b, c);
  235. console.log(strArr, "我是截取之后的")
  236. const ctx = wx.createCanvasContext(this.data.myCanvasId);
  237. ctx.drawImage(this.data.byzsbj, 0, 0, 300, 415); //里面的参数无非就是图片放置的位置即图片的横纵坐标,图片的宽高
  238. ctx.setFillStyle("#000");
  239. ctx.setFontSize(16); //字大小
  240. ctx.setTextAlign('left'); //是否居中显示,参考点画布中线
  241. let leftPositionAarr = [60, 30, 30, 30]
  242. for (let i = 0; i < strArr.length; i++) {
  243. console.log(i);
  244. ctx.fillText(strArr[i], leftPositionAarr[i], 160 + i * 30);
  245. }
  246. // ctx.fillText(str, 150, 160); //150:canvas画布宽300,取1/2,中间,280:纵向位置
  247. ctx.draw();
  248. wx.hideLoading();
  249. this.setData({
  250. showzs: true
  251. });
  252. wx.request({
  253. url: app.globalData.publicUrl + '/wx/student/wxGraduation',
  254. method: "post",
  255. data: {
  256. sessionKey: this.data.sessionKey
  257. },
  258. success: (res) => {
  259. console.log(res.data, "领取结业证提交")
  260. }
  261. })
  262. },
  263. saveZs() {
  264. wx.canvasToTempFilePath({ //把当前画布指定区域的内容导出生成指定大小的图片
  265. canvasId: this.data.myCanvasId,
  266. success(res) {
  267. console.log(res)
  268. wx.authorize({ //向用户发起授权请求
  269. scope: 'scope.writePhotosAlbum', //保存相册授权
  270. success: () => {
  271. wx.saveImageToPhotosAlbum({ //保存图片到系统相册
  272. filePath: res.tempFilePath,
  273. success: () => {
  274. wx.showToast({
  275. title: '图片保存成功'
  276. })
  277. }
  278. })
  279. }
  280. })
  281. }
  282. })
  283. },
  284. onClose1() {
  285. this.setData({
  286. showzs: false
  287. });
  288. },
  289. // 期末考试
  290. // goQmks() {
  291. // this.getgoQmks();
  292. // },
  293. // 期末考试接口 、、、、、、
  294. goQmks() {
  295. if (this.data.istask2 == false) {
  296. wx.showModal({
  297. showCancel: false,
  298. content: "请按照任务顺序执行哦!"
  299. })
  300. return false
  301. }
  302. console.log(this.data.sessionKey);
  303. console.log(this.data.classInfo.id);
  304. wx.request({
  305. url: app.globalData.publicUrl + '/wx/exam/examList',
  306. method: "post",
  307. data: {
  308. sessionKey: this.data.sessionKey,
  309. clasId: this.data.classInfo.id
  310. },
  311. success: (res) => {
  312. if (res.data.code == 0) {
  313. console.log(res.data);
  314. //let answersId = res.data.list[0].answersId ;
  315. console.log(res.data.list.length);
  316. if (res.data.list[0]) {
  317. if (res.data.list[0].answersId) {
  318. if (res.data.list[0].status == '1') {
  319. wx.navigateTo({
  320. url: '/pages/grade/grade?answersId=' + res.data.list[0].answersId,
  321. })
  322. } else {
  323. this.toPath(res.data.list[0].id, res.data.list[0].paperId, res.data.list[0].answersId, 'answerAfterclass');
  324. }
  325. } else {
  326. this.beginKao(res.data.list[0].id, res.data.list[0].paperId, this.data.sessionKey, 'answerAfterclass');
  327. }
  328. }
  329. }
  330. }
  331. })
  332. },
  333. // 学员登记表 、、、、、、
  334. goWrite() {
  335. console.log(this.data.sessionKey);
  336. wx.navigateTo({
  337. url: '../studentRegistration/studentRegistration'
  338. })
  339. },
  340. // 综合反馈表 、、、、、、
  341. goWrite2() {
  342. if (this.data.istask3 == false) {
  343. wx.showModal({
  344. showCancel: false,
  345. content: "请按照任务顺序执行哦!"
  346. })
  347. return false
  348. }
  349. console.log(this.data.sessionKey, "dayin");
  350. console.log(this.data.classInfo.id);
  351. wx.request({
  352. url: app.globalData.publicUrl + '/wx/exam/quesExamList',
  353. method: "post",
  354. data: {
  355. sessionKey: this.data.sessionKey,
  356. questSub: '1',
  357. clasId: this.data.classInfo.id
  358. },
  359. success: (res) => {
  360. if (res.data.code == 0) {
  361. console.log(res.data, "zonghe");
  362. //let answersId = res.data.list[0].answersId ;
  363. console.log(res.data.list.length);
  364. if (res.data.list[0]) {
  365. if (res.data.list[0].answersId) {
  366. if (res.data.list[0].status == '1') {
  367. wx.navigateTo({
  368. url: '/pages/feedBackDetail/feedBackDetail?answersId=' + res.data.list[0].answersId,
  369. })
  370. } else {
  371. this.toPath(res.data.list[0].id, res.data.list[0].paperId, res.data.list[0].answersId, 'feedBack');
  372. }
  373. } else {
  374. this.beginKao(res.data.list[0].id, res.data.list[0].paperId, this.data.sessionKey, 'feedBack');
  375. }
  376. }
  377. }
  378. }
  379. })
  380. },
  381. toPath(id, paperId, answersId, address, status) {
  382. wx.navigateTo({
  383. url: '/pages/' + address + '/' + address + '?id=' + id + '&paperId=' + paperId + '&answersId=' + answersId + '&status=' + status,
  384. })
  385. },
  386. beginKao(id, paperId, sessionKey, address) {
  387. console.log(paperId, "8888888");
  388. wx.request({
  389. url: app.globalData.publicUrl + '/wx/exam/begin',
  390. method: "post",
  391. data: {
  392. sessionKey: sessionKey,
  393. id: id,
  394. paperId: paperId
  395. },
  396. success: (res) => {
  397. console.log(res);
  398. if (res.data.code == 0) {
  399. console.log(res, "为我么我们微妙"); // 提交答案是后
  400. this.setData({
  401. status: res.data.status
  402. })
  403. this.toPath(id, paperId, res.data.answersId, address, );
  404. }
  405. }
  406. })
  407. },
  408. // goWrite2() {
  409. // // wx.showModal({
  410. // // showCancel: false,
  411. // // content: "敬请期待",
  412. // // success(res) {}
  413. // // })
  414. // // wx.navigateTo({
  415. // // url: '../feedBack/feedBack'
  416. // // })
  417. // this.getBanner1();
  418. // },
  419. // 跳转直播点播页面
  420. goStudy(e) {
  421. // if (this.data.istask1 == false) {
  422. // wx.showModal({
  423. // showCancel: false,
  424. // content: "请按照任务顺序执行哦!"
  425. // })
  426. // return false
  427. // }
  428. let id = e.currentTarget.dataset.item.id //此课程的id
  429. console.log(id)
  430. console.log(this.data.IngCourseArr, "我是筛选的列表")
  431. if (this.data.IngCourseArr.length == 0) {
  432. if (e.currentTarget.dataset.item.isLive == 1) {
  433. if (e.currentTarget.dataset.item.isActive == 1) {
  434. wx.navigateTo({
  435. url: '../zbDetails/zbDetails?id=' + id
  436. })
  437. } else {
  438. wx.showModal({
  439. showCancel: false,
  440. content: "直播还未开始哦"
  441. })
  442. return false;
  443. }
  444. } else {
  445. wx.navigateTo({
  446. url: '../dbDetails/dbDetails?id=' + id
  447. })
  448. }
  449. } else {
  450. if (id == this.data.IngCourseArr.id) {
  451. if (e.currentTarget.dataset.item.isLive == 1) {
  452. if (e.currentTarget.dataset.item.isActive == 1) {
  453. wx.navigateTo({
  454. url: '../zbDetails/zbDetails?id=' + id
  455. })
  456. } else {
  457. wx.showModal({
  458. showCancel: false,
  459. content: "直播还未开始哦"
  460. })
  461. return false;
  462. }
  463. } else {
  464. wx.navigateTo({
  465. url: '../dbDetails/dbDetails?id=' + id
  466. })
  467. }
  468. } else {
  469. wx.showModal({
  470. showCancel: false,
  471. content: "您的"+this.data.IngCourseArr.courseName+"课还未学完,快去学习吧"
  472. })
  473. }
  474. }
  475. },
  476. // 查询我是否有班&&班级名字
  477. isClass(sessionKey) {
  478. // let _this = this;
  479. wx.request({
  480. url: app.globalData.publicUrl + '/wx/student/selMyClas',
  481. method: "post",
  482. data: {
  483. sessionKey: sessionKey
  484. },
  485. success: (res) => {
  486. console.log(res.data.code, "我是返回是否有班级")
  487. if (res.data.code == 0) {
  488. this.setData({
  489. classInfo: res.data.data
  490. })
  491. this.isAgree(sessionKey);
  492. } else {
  493. wx.showModal({
  494. content: "您当前还没有开放的班级!",
  495. showCancel: false,
  496. success(res) {
  497. if (res.confirm) {
  498. wx.switchTab({
  499. url: '../index/index'
  500. })
  501. }
  502. }
  503. })
  504. return false;
  505. }
  506. }
  507. })
  508. },
  509. // 协议是否已同意
  510. isAgree(sessionKey) {
  511. // let _this = this;
  512. wx.request({
  513. url: app.globalData.publicUrl + '/wx/student/selStudentSessionKey',
  514. method: "post",
  515. data: {
  516. sessionKey: sessionKey
  517. },
  518. success: (res) => {
  519. console.log(res, "查询学员信息")
  520. if (res.data.code == 0 && res.data.data) {
  521. if (res.data.data.agreement == 0) {
  522. this.setData({
  523. studentName: res.data.data.studentName,
  524. show: false
  525. });
  526. } else {
  527. this.setData({
  528. studentName: res.data.data.studentName,
  529. show: true
  530. });
  531. }
  532. }
  533. }
  534. })
  535. },
  536. // 我的通知
  537. getMynotice(sessionKey) {
  538. // let _this = this;
  539. wx.request({
  540. url: app.globalData.publicUrl + '/wx/eduNoticeSee/list',
  541. method: "post",
  542. data: {
  543. sessionKey: sessionKey,
  544. isSee: 1,
  545. isNotice: 0
  546. },
  547. success: (res) => {
  548. console.log(res, "333333333")
  549. if (res.data.code == 0) {
  550. if (res.data.list && res.data.list.length !== 0)
  551. this.setData({
  552. notice: res.data.list[0].noticeContent
  553. });
  554. }
  555. }
  556. })
  557. },
  558. gomyNotice() {
  559. // if (this.data.notice !== "暂无未读通知") {
  560. wx.navigateTo({
  561. url: '../myNotice/myNotice'
  562. })
  563. // }
  564. },
  565. // // 我的课程
  566. getMycourse(sessionKey) {
  567. // let _this = this;
  568. wx.request({
  569. url: app.globalData.publicUrl + '/wx/course/selectBySessionKey',
  570. method: "post",
  571. data: {
  572. sessionKey: sessionKey
  573. },
  574. success: (res) => {
  575. console.log(res, "kckckc")
  576. this.setData({
  577. kcArr: res.data.list,
  578. istask3: res.data.allDone
  579. });
  580. for (let i = 0; i < res.data.list.length; i++) {
  581. if (res.data.list[i].isStudyDone == 0) {
  582. this.setData({
  583. IngCourseArr: res.data.list[i]
  584. })
  585. }
  586. }
  587. let result = [];
  588. if (res.data.list)
  589. for (let i = 0; i < res.data.list.length; i++) {
  590. result.push({
  591. courseTime: res.data.list[i].courseTime
  592. });
  593. }
  594. const timesArr = result.map((item) => {
  595. return item.courseTime;
  596. });
  597. let sfmArr = [];
  598. for (let i = 0; i < timesArr.length; i++) {
  599. let value = timesArr[i];
  600. const resultValue = this.handler(value);
  601. sfmArr.push({
  602. courseTime: resultValue
  603. })
  604. this.setData({
  605. sfmArr: sfmArr
  606. })
  607. }
  608. }
  609. })
  610. },
  611. handler(value) {
  612. //换算为秒 进制1000
  613. const second = Math.floor(value / 1000); //判断是否够1秒
  614. if (second < 1) {
  615. return "0秒";
  616. }
  617. const secondValue = second % 60; // 秒
  618. const minutes = Math.floor(second / 60); //判断是否够1分钟
  619. if (minutes < 1) {
  620. return `${secondValue}秒`;
  621. }
  622. const minutesValue = minutes % 60; //分
  623. const hours = Math.floor(minutes / 60); //判断是否够1小时
  624. if (hours < 1) {
  625. return `${minutesValue}分${secondValue}秒`;
  626. }
  627. const hoursValue = hours % 60; //小时
  628. return `${hoursValue}时${minutesValue}分${secondValue}秒`;
  629. },
  630. // 学员登记任务check
  631. checkTaskList1(sessionKey) {
  632. wx.request({
  633. url: app.globalData.publicUrl + '/wx/student/selStudentSessionKey',
  634. method: "post",
  635. data: {
  636. sessionKey: sessionKey
  637. },
  638. success: (res) => {
  639. console.log(res.data, "我是第一个任务的检查状态")
  640. if (res.data.code == 0 && res.data.data.register == 0) {
  641. this.setData({
  642. istask1: true
  643. })
  644. }
  645. }
  646. })
  647. },
  648. checkTaskList3(sessionKey) {
  649. wx.request({
  650. url: app.globalData.publicUrl + '/wx/exam/clasExamstatus',
  651. method: "post",
  652. data: {
  653. sessionKey: sessionKey
  654. },
  655. success: (res) => {
  656. console.log(res.data, "我是第三个任务的检查状态")
  657. if (res.data.code == 0 && res.data.status == 0) {
  658. this.setData({
  659. istask3: true
  660. })
  661. }
  662. }
  663. })
  664. },
  665. // 综合反馈任务check
  666. checkTaskList4(sessionKey) {
  667. wx.request({
  668. url: app.globalData.publicUrl + '/wx/exam/status',
  669. method: "post",
  670. data: {
  671. sessionKey: sessionKey
  672. },
  673. success: (res) => {
  674. console.log(res.data, "我是第四个任务的检查状态")
  675. if (res.data.code == 0 && res.data.status == 0) {
  676. this.setData({
  677. istask4: true
  678. })
  679. }
  680. }
  681. })
  682. },
  683. async onShow() {
  684. const sessionKey = await tools.checkSessionAndLogin();
  685. console.log(sessionKey, "000000");
  686. //const sessionKey = 'BqQROCKCxn7R2NXdQLud9Q==';
  687. this.setData({
  688. sessionKey: sessionKey
  689. })
  690. this.isClass(sessionKey);
  691. this.getMycourse(sessionKey);
  692. this.getMynotice(sessionKey);
  693. this.checkTaskList1(sessionKey)
  694. this.checkTaskList3(sessionKey)
  695. this.checkTaskList4(sessionKey)
  696. }
  697. })