tools.js 6.2 KB

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