Utils.js 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. window.Utils = {
  2. // name: 'Utils',
  3. javaToJs(id) {
  4. // const ANDROIDApi = require('ANDROIDApi');
  5. // ANDROIDApi.payOk(id)
  6. },
  7. stringFormat(args) {
  8. let out = arguments[0];
  9. if (arguments.length >= 1) {
  10. for (let key in arguments) {
  11. if (arguments[key] !== undefined && key > 0) {
  12. out = out.replace('{' + (key - 1) + '}', arguments[key]);
  13. }
  14. }
  15. }
  16. return out;
  17. },
  18. versionStrToInt(ver) {
  19. let verArr = ver.split('.');
  20. return verArr.reduce((total, cur, index) => {
  21. return (total + Number(cur) * Math.pow(10, verArr.length - index - 1));
  22. }, 0);
  23. },
  24. //获取当前时间,格式YYYY-MM-DD
  25. getNowFormatDate() {
  26. let date = new Date();
  27. // let seperator1 = "-";
  28. let year = date.getFullYear();
  29. let month = date.getMonth() + 1;
  30. let strDate = date.getDate();
  31. if (month >= 1 && month <= 9) {
  32. month = "0" + month;
  33. }
  34. if (strDate >= 0 && strDate <= 9) {
  35. strDate = "0" + strDate;
  36. }
  37. // let currentdate = year + seperator1 + month + seperator1 + strDate;
  38. let currentdate = year.toString() + month.toString() + strDate.toString();
  39. return currentdate;
  40. },
  41. isSecondDay() {
  42. // 计算是否到了第二天
  43. let yesterday = CC_WECHATGAME ? wx.getStorageSync('yesterday') : cc.sys.localStorage.getItem('yesterday');
  44. yesterday = yesterday ? yesterday : 0;
  45. let today = Utils.getNowFormatDate();
  46. if (CC_WECHATGAME) {
  47. wx.setStorageSync('yesterday', today);
  48. } else {
  49. cc.sys.localStorage.setItem('yesterday', today);
  50. }
  51. if (Number(today) > Number(yesterday))
  52. return true;
  53. return false;
  54. },
  55. isFirstLogin() {
  56. let isFirstLogin = CC_WECHATGAME ? wx.getStorageSync('isFirstLogin') : cc.sys.localStorage.getItem('isFirstLogin');
  57. if (isFirstLogin) return false;
  58. cc.sys.localStorage.setItem('isFirstLogin', 'true');
  59. if (CC_WECHATGAME) {
  60. wx.setStorageSync('isFirstLogin', 'true')
  61. }
  62. return true;
  63. },
  64. getTodayReconmendNum() {
  65. let num = cc.sys.localStorage.getItem('recommendNum');
  66. if (CC_WECHATGAME) {
  67. num = wx.getStorageSync('recommendNum')
  68. }
  69. num = num ? num : 0;
  70. return Number(num);
  71. },
  72. addTodayReconmendNum() {
  73. let num = cc.sys.localStorage.getItem('recommendNum');
  74. if (CC_WECHATGAME) {
  75. num = wx.getStorageSync('recommendNum');
  76. }
  77. num = num ? Number(num) : 0;
  78. num++;
  79. cc.sys.localStorage.setItem('recommendNum', num);
  80. if (CC_WECHATGAME) {
  81. wx.setStorageSync('recommendNum', num);
  82. }
  83. },
  84. clearTodayReconmendNum() {
  85. cc.sys.localStorage.setItem('recommendNum', 0);
  86. if (CC_WECHATGAME) {
  87. wx.setStorageSync('recommendNum', 0);
  88. }
  89. },
  90. //生成从minNum到maxNum的随机数
  91. randomNum(minNum, maxNum) {
  92. return Math.floor(Math.random() * (maxNum - minNum + 1) + minNum);
  93. },
  94. // 生成3-32位随机串:randomString(true, 3, 32)
  95. // 生成43位随机串:randomString(false, 43)
  96. randomString(randomLen, min, max) {
  97. let str = "",
  98. range = min,
  99. arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
  100. 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
  101. 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
  102. 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F',
  103. 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
  104. 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
  105. // 随机产生
  106. if (randomLen) {
  107. range = Math.round(Math.random() * (max - min)) + min;
  108. }
  109. for (let i = 0; i < range; i++) {
  110. let pos = Math.round(Math.random() * (arr.length - 1));
  111. str += arr[pos];
  112. }
  113. return str;
  114. },
  115. encryptedData(appId, sessionKey) {
  116. // let WXBizDataCrypt = require('./WXBizDataCrypt')
  117. // // let QQApi = require("QQApi");
  118. // let encryptedData =
  119. // 'CiyLU1Aw2KjvrjMdj8YKliAjtP4gsMZM'+
  120. // 'QmRzooG2xrDcvSnxIMXFufNstNGTyaGS'+
  121. // '9uT5geRa0W4oTOb1WT7fJlAC+oNPdbB+'+
  122. // '3hVbJSRgv+4lGOETKUQz6OYStslQ142d'+
  123. // 'NCuabNPGBzlooOmB231qMM85d2/fV6Ch'+
  124. // 'evvXvQP8Hkue1poOFtnEtpyxVLW1zAo6'+
  125. // '/1Xx1COxFvrc2d7UL/lmHInNlxuacJXw'+
  126. // 'u0fjpXfz/YqYzBIBzD6WUfTIF9GRHpOn'+
  127. // '/Hz7saL8xz+W//FRAUid1OksQaQx4CMs'+
  128. // '8LOddcQhULW4ucetDf96JcR3g0gfRK4P'+
  129. // 'C7E/r7Z6xNrXd2UIeorGj5Ef7b1pJAYB'+
  130. // '6Y5anaHqZ9J6nKEBvB4DnNLIVWSgARns'+
  131. // '/8wR2SiRS7MNACwTyrGvt9ts8p12PKFd'+
  132. // 'lqYTopNHR1Vf7XjfhQlVsAJdNiKdYmYV'+
  133. // 'oKlaRv85IfVunYzO0IKXsyl7JCUjCpoG'+
  134. // '20f0a04COwfneQAGGwd5oa+T8yO5hzuy'+
  135. // 'Db/XcxxmK01EpqOyuxINew=='
  136. // let iv = 'r7BXXKkLb8qrSNn05n0qiA=='
  137. // let pc = new WXBizDataCrypt(appId, sessionKey)
  138. // let data = pc.decryptData(encryptedData , iv)
  139. // console.log('解密后 data: ', data)
  140. // return data;
  141. },
  142. hadRedPacket() {
  143. let num = cc.sys.localStorage.getItem('hadRedPacket');
  144. if (CC_WECHATGAME) {
  145. num = wx.getStorageSync('hadRedPacket');
  146. }
  147. if (num) return true;
  148. return false;
  149. },
  150. setRedPacket() {
  151. if (CC_WECHATGAME) {
  152. wx.setStorageSync('hadRedPacket', 'true')
  153. } else {
  154. cc.sys.localStorage.setItem('hadRedPacket', 'true');
  155. }
  156. },
  157. clearRedPacket() {
  158. if (CC_WECHATGAME) {
  159. wx.removeStorageSync('hadRedPacket')
  160. } else {
  161. cc.sys.localStorage.removeItem('hadRedPacket');
  162. }
  163. },
  164. getRedPacketNum() {
  165. let num = cc.sys.localStorage.getItem('RedPacketNum');
  166. if (CC_WECHATGAME) {
  167. num = wx.getStorageSync('RedPacketNum');
  168. }
  169. num = num ? num : 0;
  170. return Number(num);
  171. },
  172. addRedPacketNum(value) {
  173. let num = cc.sys.localStorage.getItem('RedPacketNum');
  174. if (CC_WECHATGAME) {
  175. num = wx.getStorageSync('RedPacketNum');
  176. }
  177. num = num ? Number(num) : 0;
  178. num += value;
  179. num = num.toFixed(2);
  180. // num += '.00';
  181. cc.sys.localStorage.setItem('RedPacketNum', num);
  182. if (CC_WECHATGAME) {
  183. wx.setStorageSync('RedPacketNum', num);
  184. }
  185. },
  186. reduceRedPacketNum(value) {
  187. let num = cc.sys.localStorage.getItem('RedPacketNum');
  188. if (CC_WECHATGAME) {
  189. num = wx.getStorageSync('RedPacketNum');
  190. }
  191. num = num ? Number(num) : 0;
  192. num -= value;
  193. num = num.toFixed(2);
  194. // num += '.00';
  195. if (num <= 0) num = 0;
  196. cc.sys.localStorage.setItem('RedPacketNum', num);
  197. if (CC_WECHATGAME) {
  198. wx.setStorageSync('RedPacketNum', num);
  199. }
  200. },
  201. hadSignIn() {
  202. let num = cc.sys.localStorage.getItem('hadSignIn');
  203. if (CC_WECHATGAME) {
  204. num = wx.getStorageSync('hadSignIn');
  205. }
  206. if (num) return true;
  207. return false;
  208. },
  209. clearSignIn() {
  210. if (CC_WECHATGAME) {
  211. wx.removeStorageSync('hadSignIn')
  212. } else {
  213. cc.sys.localStorage.removeItem('hadSignIn');
  214. }
  215. },
  216. setSignIn() {
  217. cc.sys.localStorage.setItem('hadSignIn', "true");
  218. if (CC_WECHATGAME) {
  219. wx.setStorageSync('hadSignIn', "true");
  220. }
  221. },
  222. // getHadExchangeRedPacketNum() {
  223. // let num = cc.sys.localStorage.getItem('HadExchangeRedPacketNum');
  224. // if (CC_WECHATGAME) {
  225. // num = wx.getStorageSync('HadExchangeRedPacketNum');
  226. // }
  227. // num = num ? Number(num) : 0;
  228. // let value = this.randomNum(5, 9);
  229. // num += value;
  230. // if (num >= 50) num = 50;
  231. // cc.sys.localStorage.setItem('HadExchangeRedPacketNum', num);
  232. // if (CC_WECHATGAME) {
  233. // wx.setStorageSync('HadExchangeRedPacketNum', num);
  234. // }
  235. // return num;
  236. // },
  237. // clearHadExchangeRedPacketNum() {
  238. // cc.sys.localStorage.setItem('HadExchangeRedPacketNum', 0);
  239. // if (CC_WECHATGAME) {
  240. // wx.setStorageSync('HadExchangeRedPacketNum', 0);
  241. // }
  242. // },
  243. // 数组从小到大排序
  244. arrSort(arr) {
  245. for (let i = 0; i < arr.length - 1; i++) {
  246. for (let j = i + 1; j < arr.length; j++) {
  247. let cur = arr[i];
  248. if (cur > arr[j]) {
  249. let index = arr[j];
  250. arr[j] = cur;
  251. arr[i] = index;
  252. }
  253. }
  254. }
  255. return arr;
  256. },
  257. // 数组重新排序并去重
  258. deDuplication(arr) {
  259. let mArr = [];
  260. for (let i = 0; i < arr.length; i++) {
  261. if (mArr.indexOf(arr[i]) == -1) {
  262. mArr.push(arr[i]);
  263. }
  264. }
  265. mArr = this.arrSort(mArr);
  266. return mArr;
  267. },
  268. getConfig(cb) {
  269. let remoteUrl = AppConst.HTTPURL + "/config/popStarConfig.json";
  270. let xhr = new XMLHttpRequest();
  271. xhr.onreadystatechange = function () {
  272. if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) {
  273. console.log("远程config加载完成")
  274. let response = xhr.responseText;
  275. cb && cb(response);
  276. } else {
  277. console.log("远程config加载失败")
  278. }
  279. };
  280. xhr.open("GET", remoteUrl, true);
  281. xhr.send();
  282. },
  283. };