util.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. //年级显示方法
  2. let gradeArr = ["学前班", "一年级", "二年级", "三年级"]
  3. const gradeUpper = grade => {
  4. return gradeArr[grade];
  5. }
  6. //将秒转化为 X/XX 比如四小时三十六分 为4/36
  7. const day = msd => {
  8. //不到一分钟的情况;
  9. let time = Math.floor(msd) + '秒';//整数秒
  10. //time = "0/00";
  11. //超过一分钟的情况
  12. if (Math.floor(msd) > 60) {
  13. let min = Math.floor(msd / 60);
  14. time = min + "分";
  15. // let hour = Math.floor(min / 60);
  16. // let minShow = min % 60;
  17. // time = hour + "/" + minShow ;
  18. if (min > 60) {
  19. min = Math.floor(msd / 60) % 60;
  20. let hour = Math.floor(msd / 3600);
  21. time = hour + "小时";
  22. // time = hour + "时";
  23. if (hour > 24) {
  24. hour = Math.floor(msd / 3600) % 24;
  25. let day = Math.floor(msd / 3600 / 24);
  26. time = day + "天";
  27. // time = day + "天";
  28. }
  29. }
  30. }
  31. return time;
  32. }
  33. //计算首页学过了多长时间
  34. function studyTime (arr) {
  35. const studyLog = [];
  36. const time = new Date();
  37. for(let item of arr) {
  38. if(!item.lessonTitle) {
  39. break;
  40. }
  41. let msd = (time - item.gmtCreated*1) / 1000;
  42. studyLog.push(
  43. {
  44. lessonTitle: item.lessonTitle,
  45. lessonId: item.lessonId,
  46. gmtCreated:day(msd) + '之前'
  47. }
  48. )
  49. }
  50. return studyLog
  51. }
  52. //计算各个页面学了多长时间
  53. function studyPageTime (arr) {
  54. const studyLog = [];
  55. const time = new Date();
  56. for(let item of arr) {
  57. if(!item.title) {
  58. break;
  59. }
  60. let msd = (time - item.studyDate*1) / 1000;
  61. studyLog.push(
  62. {
  63. title: item.title,
  64. lessonId: item.lessonId,
  65. isStudy: item.isStudy,
  66. studyDate: day(msd) + '之前'
  67. }
  68. )
  69. }
  70. return studyLog;
  71. }
  72. //本周推荐勋章攻略 取消<br>
  73. function strategy (str) {
  74. return str.split('<br/>');
  75. }
  76. //判断能不能预览
  77. function preview (arr) {
  78. const studyLog = [];
  79. for(let item of arr) {
  80. if(item.warePath){
  81. studyLog.push(
  82. {
  83. title: item.title,
  84. lessonId: item.lessonId,
  85. warePath: item.warePath
  86. }
  87. )
  88. }
  89. }
  90. return studyLog;
  91. }
  92. //获取当前页面传的的值
  93. function getUrl() {
  94. var pages = getCurrentPages() //获取加载的页面
  95. var currentPage = pages[pages.length-1] //获取当前页面的对象
  96. var url = currentPage.route //当前页面url
  97. var options = currentPage.options //如果要获取url中所带的参数可以查看options
  98. return options
  99. }
  100. //判断科目唯一值columnId
  101. function column(columnNum) {
  102. let column = {};
  103. switch(columnNum) {
  104. case '1':
  105. column.columnId = '1'
  106. column.columnName = '语文'
  107. break;
  108. case '2':
  109. column.columnId = '2'
  110. column.columnName = '数学'
  111. break;
  112. case '3':
  113. column.columnId = '3'
  114. column.columnName = '中文'
  115. break;
  116. case '4':
  117. column.columnId = '4'
  118. column.columnName = '英语'
  119. break;
  120. case '5':
  121. column.columnId = '5'
  122. column.columnName = '科学'
  123. break;
  124. case '6':
  125. column.columnId = '6'
  126. column.columnName = '艺术'
  127. break;
  128. }
  129. return column;
  130. }
  131. //输入跳转URL链接
  132. function url(columnNum) {
  133. let url = '';
  134. switch(columnNum) {
  135. case '1':
  136. url = '../language/language?ind=2'
  137. break;
  138. case '2':
  139. url = '../mathematics/mathematics?ind=3'
  140. break;
  141. case '3':
  142. url = '../chinese/chinese?ind=4'
  143. break;
  144. case '4':
  145. url = '../english/english?ind=5'
  146. break;
  147. case '5':
  148. url = '../science/science?ind=6'
  149. break;
  150. case '6':
  151. url = '../art/art?ind=7'
  152. break;
  153. }
  154. return url;
  155. }
  156. //过滤返回回来的数组找出前三名重新排序
  157. function topThree (arr) {
  158. var arr1 = [];
  159. for(var item of arr.slice(0,3)){
  160. if(item.rank == 2){
  161. arr1.unshift(item)
  162. }
  163. if(item.rank == 1) {
  164. arr1.push(item)
  165. }
  166. if(item.rank == 3) {
  167. arr1.push(item)
  168. }
  169. }
  170. return arr1;
  171. }
  172. //获取回复条数
  173. function replyNo (arr) {
  174. let num = 0;
  175. for( let item of arr) {
  176. num += item.currentReplyCount
  177. }
  178. return num
  179. }
  180. //url地址转成对象
  181. function convertObject (str) {
  182. const arr = str.split('&');
  183. let obj = {};
  184. for (let item of arr) {
  185. let key = item.split('=')[0];
  186. let val = item.split('=')[1];
  187. obj[key] = val;
  188. }
  189. return obj;
  190. }
  191. /*另一个小程序用到的方法 */
  192. //时间转换
  193. function formatTime(time) {
  194. let currentTime = (new Date()).getTime();
  195. let durationTime = (currentTime - Number(time)) / 1000;
  196. let date = new Date(time)
  197. let year = date.getFullYear()
  198. let month = date.getMonth() + 1
  199. let day = date.getDate()
  200. let hour = date.getHours()
  201. let minute = date.getMinutes()
  202. let second = date.getSeconds()
  203. let interval = '';
  204. switch (true) {
  205. case durationTime < 60:
  206. interval = '刚刚';
  207. break;
  208. case durationTime < 3600:
  209. interval = `${parseInt(durationTime / 60)}分钟前`;
  210. break;
  211. case durationTime < 3600 * 24:
  212. interval = `${parseInt(durationTime / 3600)}小时前`;
  213. break;
  214. default:
  215. interval = [month, day].map(formatNumber).join('/') + ' ' + [hour, minute].map(formatNumber).join(':');
  216. }
  217. return interval
  218. }
  219. const formatNumber = n => {
  220. n = n.toString()
  221. return n[1] ? n : '0' + n
  222. }
  223. // 弹出Toast
  224. function showToast(str, mask, icon, time) {
  225. wx.showToast({
  226. title: str.toString(),
  227. mask: mask,
  228. icon: icon,
  229. duration: +time
  230. })
  231. }
  232. //隐藏Toast
  233. function hideToast() {
  234. wx.hideToast();
  235. }
  236. // 保存文件
  237. function saveFile(tempFile, success) {
  238. wx.saveFile({
  239. tempFilePath: tempFile,
  240. success: function(res) {
  241. let svaedFile = res.savedFilePath
  242. if (success) {
  243. success(svaeFile)
  244. }
  245. }
  246. })
  247. }
  248. module.exports = {
  249. studyTime,
  250. studyPageTime,
  251. strategy,
  252. gradeUpper,
  253. day,
  254. preview,
  255. getUrl,
  256. column,
  257. url,
  258. topThree,
  259. replyNo,
  260. convertObject,
  261. formatTime,
  262. showToast,
  263. hideToast,
  264. saveFile
  265. }