util.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  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. continue;
  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. //过滤暂无资料不显示
  73. function filter (arr) {
  74. const studyLog = [];
  75. for(let item of arr) {
  76. if(!item.fileName) {
  77. continue;
  78. }
  79. studyLog.push(
  80. {
  81. fileName: item.fileName,
  82. warePath: item.warePath,
  83. }
  84. )
  85. }
  86. console.log(studyLog)
  87. return studyLog;
  88. }
  89. //本周推荐勋章攻略 取消<br>
  90. function strategy (str) {
  91. return str.split('<br/>');
  92. }
  93. //判断能不能预览
  94. function preview (arr) {
  95. const studyLog = [];
  96. for(let item of arr) {
  97. if(item.warePath){
  98. studyLog.push(
  99. {
  100. title: item.title,
  101. lessonId: item.lessonId,
  102. warePath: item.warePath
  103. }
  104. )
  105. }
  106. }
  107. return studyLog;
  108. }
  109. //获取当前页面传的的值
  110. function getUrl() {
  111. var pages = getCurrentPages() //获取加载的页面
  112. var currentPage = pages[pages.length-1] //获取当前页面的对象
  113. var url = currentPage.route //当前页面url
  114. var options = currentPage.options //如果要获取url中所带的参数可以查看options
  115. return options
  116. }
  117. //判断科目唯一值columnId
  118. function column(columnNum) {
  119. let column = {};
  120. switch(columnNum) {
  121. case '1':
  122. column.columnId = '1'
  123. column.columnName = '语文'
  124. break;
  125. case '2':
  126. column.columnId = '2'
  127. column.columnName = '数学'
  128. break;
  129. case '3':
  130. column.columnId = '3'
  131. column.columnName = '中文'
  132. break;
  133. case '4':
  134. column.columnId = '4'
  135. column.columnName = '英语'
  136. break;
  137. case '5':
  138. column.columnId = '5'
  139. column.columnName = '科学'
  140. break;
  141. case '6':
  142. column.columnId = '6'
  143. column.columnName = '艺术'
  144. break;
  145. }
  146. return column;
  147. }
  148. //输入跳转URL链接
  149. function url(columnNum) {
  150. let url = '';
  151. switch(columnNum) {
  152. case '1':
  153. url = '../language/language?ind=2'
  154. break;
  155. case '2':
  156. url = '../mathematics/mathematics?ind=3'
  157. break;
  158. case '3':
  159. url = '../chinese/chinese?ind=4'
  160. break;
  161. case '4':
  162. url = '../english/english?ind=5'
  163. break;
  164. case '5':
  165. url = '../science/science?ind=6'
  166. break;
  167. case '6':
  168. url = '../art/art?ind=7'
  169. break;
  170. }
  171. return url;
  172. }
  173. //过滤返回回来的数组找出前三名重新排序
  174. function topThree (arr) {
  175. var arr1 = [];
  176. for(var item of arr.slice(0,3)){
  177. if(item.rank == 2){
  178. arr1.unshift(item)
  179. }
  180. if(item.rank == 1) {
  181. arr1.push(item)
  182. }
  183. if(item.rank == 3) {
  184. arr1.push(item)
  185. }
  186. }
  187. return arr1;
  188. }
  189. //获取回复条数
  190. function replyNo (arr) {
  191. let num = 0;
  192. for( let item of arr) {
  193. num += item.currentReplyCount
  194. }
  195. return num
  196. }
  197. //url地址转成对象
  198. function convertObject (str) {
  199. const arr = str.split('&');
  200. let obj = {};
  201. for (let item of arr) {
  202. let key = item.split('=')[0];
  203. let val = item.split('=')[1];
  204. obj[key] = val;
  205. }
  206. return obj;
  207. }
  208. /*另一个小程序用到的方法 */
  209. //时间转换
  210. function formatTime(time) {
  211. let currentTime = (new Date()).getTime();
  212. let durationTime = (currentTime - Number(time)) / 1000;
  213. let date = new Date(time)
  214. let year = date.getFullYear()
  215. let month = date.getMonth() + 1
  216. let day = date.getDate()
  217. let hour = date.getHours()
  218. let minute = date.getMinutes()
  219. let second = date.getSeconds()
  220. let interval = '';
  221. switch (true) {
  222. case durationTime < 60:
  223. interval = '刚刚';
  224. break;
  225. case durationTime < 3600:
  226. interval = `${parseInt(durationTime / 60)}分钟前`;
  227. break;
  228. case durationTime < 3600 * 24:
  229. interval = `${parseInt(durationTime / 3600)}小时前`;
  230. break;
  231. default:
  232. interval = [month, day].map(formatNumber).join('/') + ' ' + [hour, minute].map(formatNumber).join(':');
  233. }
  234. return interval
  235. }
  236. const formatNumber = n => {
  237. n = n.toString()
  238. return n[1] ? n : '0' + n
  239. }
  240. // 弹出Toast
  241. function showToast(str, mask, icon, time) {
  242. wx.showToast({
  243. title: str.toString(),
  244. mask: mask,
  245. icon: icon,
  246. duration: +time
  247. })
  248. }
  249. //隐藏Toast
  250. function hideToast() {
  251. wx.hideToast();
  252. }
  253. // 保存文件
  254. function saveFile(tempFile, success) {
  255. wx.saveFile({
  256. tempFilePath: tempFile,
  257. success: function(res) {
  258. let svaedFile = res.savedFilePath
  259. if (success) {
  260. success(svaeFile)
  261. }
  262. }
  263. })
  264. }
  265. module.exports = {
  266. studyTime,
  267. studyPageTime,
  268. filter,
  269. strategy,
  270. gradeUpper,
  271. day,
  272. preview,
  273. getUrl,
  274. column,
  275. url,
  276. topThree,
  277. replyNo,
  278. convertObject,
  279. formatTime,
  280. showToast,
  281. hideToast,
  282. saveFile
  283. }