tools.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. import store from '@/store/index.js'
  2. import router from '@/router/index.js'
  3. import { JSEncrypt } from "jsencrypt";
  4. let publicKey = "-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4qkbwIKErstK1sFESPEhOShpRpj4+sOVpJHxl5r/2xLBfA/MrXcAEra5Ro9cXNQSqmLLt8wecoLk/glfa5IdhXV0hRVQplIVs5z3MxcUa9ptKPHUTgh8xMCBvl8sUJKwkmn4vYWeDfHT22EL7Hr1pTMwUhF6WiNlWfQTVoF1rhwIDAQAB-----END PUBLIC KEY-----"
  5. export default {
  6. getToken() {
  7. return localStorage.getItem('token')
  8. },
  9. getUserAccount() {
  10. return localStorage.getItem('user_account')
  11. },
  12. //图片路径填补
  13. splitImgHost(url, scale = false, width = 250) {
  14. if (!url) {
  15. return ''
  16. } else if (url.indexOf("http") != -1 || url.indexOf("https") != -1 || url.indexOf("wxfile") != -1) {
  17. } else {
  18. url = process.env.BASE_IMG_URL + url
  19. }
  20. if (scale) {
  21. url = url + "?x-oss-process=image/resize,w_" + width
  22. }
  23. return url;
  24. },
  25. isLogin() {
  26. if (localStorage.getItem('user_account')) {
  27. return true;
  28. } else {
  29. return false
  30. }
  31. },
  32. setUuid(id) {
  33. sessionStorage.setItem('uuid', id)
  34. },
  35. getUuid() {
  36. return sessionStorage.getItem('uuid')
  37. },
  38. exit(isJ = true) {
  39. localStorage.removeItem('user_account')
  40. localStorage.removeItem('token')
  41. sessionStorage.removeItem('uuid')
  42. store.state.userInfo = null
  43. if (router.currentRoute.path != '/home'&&isJ) {
  44. router.replace({
  45. path: '/home'
  46. })
  47. }
  48. },
  49. //当前时间距离目标时间还有多久
  50. GetRTime(EndTime, isDay = true) {
  51. var EndTime = EndTime //结束时间
  52. var NowTime = new Date(); //当前时间
  53. //后台给我的是10位 精确到秒的 所有下面我就除以了1000,不要小数点后面的
  54. var t = EndTime - (NowTime.getTime() / 1000).toFixed(0);
  55. if (t <= 0) {
  56. return '已结束'
  57. }
  58. //如果后台给的是毫秒 上面不用除以1000 下面的计算时间也都要除以1000 这里我去掉1000了
  59. var d = Math.floor(t / 60 / 60 / 24); //天 var d=Math.floor(t/1000/60/60/24)
  60. var h = Math.floor(t / 60 / 60 % 24); //时 var h=Math.floor(t/1000/60/60%24)
  61. var m = Math.floor(t / 60 % 60); //分 var m=Math.floor(t/1000/60%60)
  62. var s = Math.floor(t % 60); //秒 var s=Math.floor(t/1000%60)
  63. if (parseInt(d) < 10) {
  64. d = "0" + d;
  65. }
  66. if (parseInt(h) < 10) {
  67. h = "0" + h;
  68. }
  69. if (parseInt(m) < 10) {
  70. m = "0" + m;
  71. }
  72. if (parseInt(s) < 10) {
  73. s = "0" + s;
  74. }
  75. if (isDay) {
  76. return d;
  77. }
  78. return d + '天' + h + '小时' + m + '分' + s + '秒'
  79. },
  80. TimeTotimestamp(date) {
  81. var date = date.replace(/-/g, '/');
  82. var newDate = new Date(date)
  83. return (newDate.getTime() / 1000)
  84. },
  85. timest() {
  86. var tmp = Date.parse(new Date()).toString();
  87. tmp = tmp.substr(0, 10);
  88. return tmp;
  89. },
  90. /**
  91. *
  92. * @param {int} result
  93. * @returns {string}
  94. * @remard 单位S转小时分钟秒
  95. */
  96. secondToTime(result, Diszing = true) {
  97. var h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600);
  98. var m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60));
  99. var s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60));
  100. if (h == 0 && Diszing) {
  101. result = m + ":" + s;
  102. } else {
  103. result = h + ':' + m + ":" + s
  104. }
  105. return result;
  106. },
  107. /* 时间戳转换成日期
  108. * @param timestamp
  109. * @returns {*}
  110. */
  111. timestampToTime(timestamp, isDay = true, hasChinese) {
  112. if (!timestamp) {
  113. return ''
  114. }
  115. var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
  116. var Y = date.getFullYear() + (hasChinese ? '' : '-');
  117. var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + (hasChinese ? '' : '-');
  118. var D = date.getDate() < 10 ? '0' + date.getDate() + (hasChinese ? '' : ' ') : date.getDate() + (hasChinese ? '' : ' ');
  119. var h = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
  120. var m = date.getMinutes() < 10 ? '0' + date.getMinutes() + ':' : date.getMinutes() + ':';
  121. var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
  122. if (isDay) {
  123. if (hasChinese) {
  124. return Y + '年' + M + '月' + D + '日';
  125. } else {
  126. return Y + M + D;
  127. }
  128. }
  129. if (hasChinese) {
  130. return Y + '年' + M + '月' + D + '日' + h + m + s;
  131. } else {
  132. return Y + M + D + h + m + s;
  133. }
  134. },
  135. secondToDate(result) {
  136. var h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600);
  137. var m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60));
  138. var s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60));
  139. if (h == 0) {
  140. result = m + ":" + s;
  141. } else {
  142. result = h + ':' + m + ":" + s
  143. }
  144. return result;
  145. },
  146. getZeroTime() {
  147. return Number(new Date(new Date().toLocaleDateString()).getTime() / 1000)
  148. },
  149. /**
  150. *
  151. * @param {*} urlData
  152. * @returns
  153. * base64转formdata格式文件
  154. */
  155. convertBase64UrlToBlob(urlData) {
  156. var bytes = window.atob(urlData.split(",")[1]);
  157. var ab = new ArrayBuffer(bytes.length);
  158. var ia = new Uint8Array(ab);
  159. for (var i = 0; i < bytes.length; i++) {
  160. ia[i] = bytes.charCodeAt(i);
  161. }
  162. return new Blob([ab], { type: "image/jpeg" });
  163. },
  164. imageToBase64(url, quality = 0.8) {
  165. console.log(url,'1')
  166. return new Promise((resolve,reject) => {
  167. var image = new Image();
  168. // 解决跨域 Canvas 污染问题,
  169. image.setAttribute("crossorigin", "anonymous");
  170. image.onload = function () {
  171. var canvas = document.createElement("canvas");
  172. canvas.width = image.width;
  173. canvas.height = image.height;
  174. var context = canvas.getContext("2d");
  175. context.drawImage(image, 0, 0, image.width, image.height);
  176. var url = canvas.toDataURL("image/jpeg", quality); //将图片格式转为base64
  177. console.log(url,'2')
  178. console.log("success")
  179. resolve(url)
  180. };
  181. image.onerror = function () {
  182. console.log("error")
  183. resolve(false)
  184. };
  185. image.src = url + "?time=" + Date.now();
  186. })
  187. },
  188. /**
  189. *
  190. * @param {*} data
  191. * @returns
  192. * 加密
  193. */
  194. encryptor(data) {
  195. let encryptor = new JSEncrypt();
  196. encryptor.setPublicKey(publicKey);
  197. let data_encrypted = encryptor.encrypt(data);
  198. return data_encrypted;
  199. },
  200. }