demandCourses.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. const app = require('../../utils/util.js');
  2. const tools = require('../../utils/tools.js');
  3. Page({
  4. data: {
  5. lbArr: [],
  6. showNull: false,
  7. sfmArr: [],
  8. currentId: null,
  9. currentName: "",
  10. istask: false,
  11. istask1: false
  12. },
  13. // 点击按跳转
  14. goIn(e) {
  15. if(!this.data.istask){
  16. wx.showModal({
  17. showCancel: false,
  18. content: "您的班级二维码还未扫描哦"
  19. })
  20. return
  21. }
  22. if(!this.data.istask1){
  23. wx.showModal({
  24. showCancel: false,
  25. content: "您的学员登记表还未填写哦"
  26. })
  27. return
  28. }
  29. let id = e.currentTarget.dataset.item.id
  30. console.log(this.data.classId)
  31. if (this.data.classId != -1) {
  32. if (this.data.currentId != null) {
  33. // 没学或者没学完
  34. if (e.currentTarget.dataset.item.isDone == 0) {
  35. if (id == this.data.currentId) {
  36. wx.navigateTo({
  37. url: '../dbDetails/dbDetails?id=' + id
  38. })
  39. } else {
  40. // 有未完成的但不是我 就不能跳转
  41. wx.showModal({
  42. showCancel: false,
  43. content: "您的" + this.data.currentName + "课还未学完,快去学习吧"
  44. })
  45. }
  46. } else {
  47. // 我看完了这个视频 还能看
  48. wx.navigateTo({
  49. url: '../dbDetails/dbDetails?id=' + id
  50. })
  51. }
  52. } else {
  53. wx.navigateTo({
  54. url: '../dbDetails/dbDetails?id=' + id
  55. })
  56. }
  57. } else {
  58. wx.navigateTo({
  59. url: '../dbDetails/dbDetails?id=' + id
  60. })
  61. }
  62. },
  63. // 录播列表
  64. getArr(sessionKey) {
  65. wx.request({
  66. url: app.globalData.publicUrl + '/wx/course/selectRecordBySessionKey',
  67. method: "post",
  68. data: {
  69. sessionKey
  70. },
  71. success: (res) => {
  72. if (res.data.code == 0) {
  73. this.setData({
  74. lbArr: res.data.list,
  75. currentName: "",
  76. currentId: null
  77. })
  78. for (let i = 0; i < res.data.list.length; i++) {
  79. // 这个节课未全部完成
  80. if (res.data.list[i].isDone == 0) {
  81. // 这个视频已经进行了 看一半或者看完了
  82. if (res.data.list[i].isStudyDone == 0 || res.data.list[i].isStudyDone == 1) {
  83. this.setData({
  84. currentName: res.data.list[i].courseName,
  85. currentId: res.data.list[i].id
  86. })
  87. }
  88. }
  89. }
  90. let result = [];
  91. for (let i = 0; i < res.data.list.length; i++) {
  92. result.push({
  93. courseTime: res.data.list[i].courseTime
  94. });
  95. }
  96. const timesArr = result.map((item) => {
  97. return item.courseTime;
  98. });
  99. let sfmArr = [];
  100. for (let i = 0; i < timesArr.length; i++) {
  101. let value = timesArr[i];
  102. const resultValue = this.handler(value);
  103. sfmArr.push({
  104. courseTime: resultValue
  105. })
  106. this.setData({
  107. sfmArr: sfmArr
  108. })
  109. }
  110. if (this.data.lbArr.length == 0) {
  111. this.setData({
  112. showNull: true
  113. })
  114. }
  115. } else {
  116. if (this.data.lbArr.length == 0) {
  117. this.setData({
  118. showNull: true
  119. })
  120. }
  121. }
  122. },
  123. fail: () => {
  124. if (this.data.lbArr.length == 0) {
  125. this.setData({
  126. showNull: true
  127. })
  128. }
  129. }
  130. })
  131. },
  132. // 时间处理
  133. handler(value) {
  134. const second = Math.floor(value / 1000); //判断是否够1秒
  135. if (second < 1) {
  136. return "0秒";
  137. }
  138. const secondValue = second % 60; // 秒
  139. const minutes = Math.floor(second / 60); //判断是否够1分钟
  140. if (minutes < 1) {
  141. return `${secondValue}秒`;
  142. }
  143. const minutesValue = minutes % 60; //分
  144. const hours = Math.floor(minutes / 60); //判断是否够1小时
  145. if (hours < 1) {
  146. return `${minutesValue}分${secondValue}秒`;
  147. }
  148. const hoursValue = hours % 60; //小时
  149. return `${hoursValue}时${minutesValue}分${secondValue}秒`;
  150. },
  151. isClass(sessionKey) {
  152. wx.request({
  153. url: app.globalData.publicUrl + '/wx/student/selMyClas',
  154. method: "post",
  155. data: {
  156. sessionKey
  157. },
  158. success: (res) => {
  159. if (res.data.code == 0) {
  160. this.setData({
  161. classId: res.data.data.id
  162. })
  163. this.getArr(sessionKey)
  164. } else {
  165. if (res.data.msg == "运行时异常:学员不可同时存在两个班级中。") {
  166. wx.showModal({
  167. content: "学员不可同时存在多个班级中哦",
  168. showCancel: false,
  169. success(res) {
  170. if (res.confirm) {
  171. wx.switchTab({
  172. url: '../index/index'
  173. })
  174. }
  175. }
  176. })
  177. return false;
  178. } else {
  179. wx.showModal({
  180. content: "您当前还没有正在开放的班级!",
  181. showCancel: false,
  182. success(res) {
  183. if (res.confirm) {
  184. wx.switchTab({
  185. url: '../index/index'
  186. })
  187. }
  188. }
  189. })
  190. return false;
  191. }
  192. }
  193. }
  194. })
  195. },
  196. // 检查班级群是否加了 && 学员登记任务check
  197. checkTaskList(sessionKey) {
  198. wx.request({
  199. url: app.globalData.publicUrl + '/wx/student/selStudentSessionKey',
  200. method: "post",
  201. data: {
  202. sessionKey
  203. },
  204. success: (res) => {
  205. if (res.data.code == 0) {
  206. if (res.data.data.joinClas == 0) {
  207. this.setData({
  208. istask: true
  209. })
  210. }
  211. if (res.data.data.register == 0) {
  212. this.setData({
  213. istask1: true
  214. })
  215. }
  216. }
  217. }
  218. })
  219. },
  220. async onShow() {
  221. const sessionKey = await tools.checkSessionAndLogin();
  222. this.isClass(sessionKey)
  223. this.checkTaskList(sessionKey)
  224. }
  225. })