common.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. import { getApp } from '@/app'
  2. export default {
  3. deepExtend: function e(t) {
  4. t = t || {}
  5. for (var i = 1; i < arguments.length; i++) {
  6. var n = arguments[i]
  7. if (n) for (var r in n) n.hasOwnProperty(r) && ('object' == typeof n[r] ? (t[r] = e(t[r], n[r])) : (t[r] = n[r]))
  8. }
  9. return t
  10. },
  11. changeUrl(name) {
  12. if (name.indexOf('http') != -1) {
  13. return name
  14. } else {
  15. if ((typeof name === 'string' && name.substring(0, 4) == 'blob') || (typeof name === 'string' && name.substring(0, 10) == 'data:image')) {
  16. return name
  17. } else {
  18. return getApp().resource.getUserResourceURL(name)
  19. }
  20. }
  21. },
  22. getRandomSid() {
  23. //5-7位随机字符串 + 6位时间 为热点准备
  24. var pre = this.randomWord(true, 5, 7)
  25. var post = new Date().getTime() + ''
  26. var len = post.length
  27. post = post.substring(len - 8, len - 5) + post.substring(len - 3, len) //其实还是有可能重复的....
  28. return pre + post
  29. },
  30. randomWord(randomFlag, min, max) {
  31. //随机字符串
  32. var str = '',
  33. range = min,
  34. arr = [
  35. '0',
  36. '1',
  37. '2',
  38. '3',
  39. '4',
  40. '5',
  41. '6',
  42. '7',
  43. '8',
  44. '9',
  45. 'a',
  46. 'b',
  47. 'c',
  48. 'd',
  49. 'e',
  50. 'f',
  51. 'g',
  52. 'h',
  53. 'i',
  54. 'j',
  55. 'k',
  56. 'l',
  57. 'm',
  58. 'n',
  59. 'o',
  60. 'p',
  61. 'q',
  62. 'r',
  63. 's',
  64. 't',
  65. 'u',
  66. 'v',
  67. 'w',
  68. 'x',
  69. 'y',
  70. 'z',
  71. 'A',
  72. 'B',
  73. 'C',
  74. 'D',
  75. 'E',
  76. 'F',
  77. 'G',
  78. 'H',
  79. 'I',
  80. 'J',
  81. 'K',
  82. 'L',
  83. 'M',
  84. 'N',
  85. 'O',
  86. 'P',
  87. 'Q',
  88. 'R',
  89. 'S',
  90. 'T',
  91. 'U',
  92. 'V',
  93. 'W',
  94. 'X',
  95. 'Y',
  96. 'Z',
  97. ]
  98. if (randomFlag) {
  99. // 随机长度
  100. range = Math.round(Math.random() * (max - min)) + min
  101. }
  102. for (var i = 0; i < range; i++) {
  103. var pos = Math.round(Math.random() * (arr.length - 1))
  104. str += arr[pos]
  105. }
  106. return str
  107. },
  108. uuid(len, radix) {
  109. var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
  110. var uuid = [], i;
  111. radix = radix || chars.length;
  112. if (len) {
  113. // Compact form
  114. for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix];
  115. } else {
  116. // rfc4122, version 4 form
  117. var r;
  118. // rfc4122 requires these characters
  119. uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
  120. uuid[14] = '4';
  121. // Fill in random data. At i==19 set the high bits of clock sequence as
  122. // per rfc4122, sec. 4.1.5
  123. for (i = 0; i < 36; i++) {
  124. if (!uuid[i]) {
  125. r = 0 | Math.random()*16;
  126. uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
  127. }
  128. }
  129. }
  130. return uuid.join('');
  131. }
  132. }