index.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. /**
  2. * 获取系统配置
  3. */
  4. import { getStaticContent } from '@/api/ajax';
  5. import { setConfig } from './auth'
  6. export function getConfigInfor() {
  7. return new Promise((resolve, reject) => {
  8. let MethodName = 'sys_config_manager-GetLogo';
  9. getStaticContent(MethodName, {}).then(res => {
  10. setConfig(res);
  11. resolve(res)
  12. }).catch(err => {
  13. reject(err);
  14. })
  15. })
  16. }
  17. //分:秒转秒
  18. export function timeStrToSen(time) {
  19. if (!time) {
  20. return -1;
  21. }
  22. var pos = time.indexOf(':');
  23. var min = 0, sec = 0;;
  24. if (pos > 0) {
  25. min = parseInt(time.substring(0, pos));
  26. sec = parseFloat(time.substring(pos + 1))
  27. }
  28. return min * 60 + sec;
  29. }
  30. /**
  31. * Created by PanJiaChen on 16/11/18.
  32. */
  33. /**
  34. * Parse the time to string
  35. * @param {(Object|string|number)} time
  36. * @param {string} cFormat
  37. * @returns {string | null}
  38. */
  39. export function parseTime(time, cFormat) {
  40. if (arguments.length === 0 || !time) {
  41. return null
  42. }
  43. const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
  44. let date
  45. if (typeof time === 'object') {
  46. date = time
  47. } else {
  48. if ((typeof time === 'string')) {
  49. if ((/^[0-9]+$/.test(time))) {
  50. // support "1548221490638"
  51. time = parseInt(time)
  52. } else {
  53. // support safari
  54. // https://stackoverflow.com/questions/4310953/invalid-date-in-safari
  55. time = time.replace(new RegExp(/-/gm), '/')
  56. }
  57. }
  58. if ((typeof time === 'number') && (time.toString().length === 10)) {
  59. time = time * 1000
  60. }
  61. date = new Date(time)
  62. }
  63. const formatObj = {
  64. y: date.getFullYear(),
  65. m: date.getMonth() + 1,
  66. d: date.getDate(),
  67. h: date.getHours(),
  68. i: date.getMinutes(),
  69. s: date.getSeconds(),
  70. a: date.getDay()
  71. }
  72. const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
  73. const value = formatObj[key]
  74. // Note: getDay() returns 0 on Sunday
  75. if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
  76. return value.toString().padStart(2, '0')
  77. })
  78. return time_str
  79. }
  80. /**
  81. * @param {number} time
  82. * @param {string} option
  83. * @returns {string}
  84. */
  85. export function formatTime(time, option) {
  86. if (('' + time).length === 10) {
  87. time = parseInt(time) * 1000
  88. } else {
  89. time = +time
  90. }
  91. const d = new Date(time)
  92. const now = Date.now()
  93. const diff = (now - d) / 1000
  94. if (diff < 30) {
  95. return '刚刚'
  96. } else if (diff < 3600) {
  97. // less 1 hour
  98. return Math.ceil(diff / 60) + '分钟前'
  99. } else if (diff < 3600 * 24) {
  100. return Math.ceil(diff / 3600) + '小时前'
  101. } else if (diff < 3600 * 24 * 2) {
  102. return '1天前'
  103. }
  104. if (option) {
  105. return parseTime(time, option)
  106. } else {
  107. return (
  108. d.getMonth() +
  109. 1 +
  110. '月' +
  111. d.getDate() +
  112. '日' +
  113. d.getHours() +
  114. '时' +
  115. d.getMinutes() +
  116. '分'
  117. )
  118. }
  119. }
  120. /**
  121. * @param {string} url
  122. * @returns {Object}
  123. */
  124. export function param2Obj(url) {
  125. const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
  126. if (!search) {
  127. return {}
  128. }
  129. const obj = {}
  130. const searchArr = search.split('&')
  131. searchArr.forEach(v => {
  132. const index = v.indexOf('=')
  133. if (index !== -1) {
  134. const name = v.substring(0, index)
  135. const val = v.substring(index + 1, v.length)
  136. obj[name] = val
  137. }
  138. })
  139. return obj
  140. }
  141. export function createComprisonFunction(propertyName) {
  142. return function (object1, object2) {
  143. var value1 = object1[propertyName];
  144. var value2 = object2[propertyName];
  145. if (value1 < value2) {
  146. return -1;
  147. } else if (value1 > value2) {
  148. return 1;
  149. } else {
  150. return 0;
  151. }
  152. }
  153. }
  154. // 混淆数字
  155. export function handleNumber(number) {
  156. let numberArr;
  157. numberArr = [
  158. number - 3,
  159. number - 2,
  160. number - 1,
  161. number + 1,
  162. number + 2,
  163. number + 3,
  164. ];
  165. numberArr = getRandomArrayElements(
  166. numberArr,
  167. 3
  168. );
  169. numberArr.push(number);
  170. numberArr.sort();
  171. return numberArr;
  172. }
  173. export function getRandomArrayElements(arr, count) {
  174. var shuffled = arr.slice(0),
  175. i = arr.length,
  176. min = i - count,
  177. temp,
  178. index;
  179. while (i-- > min) {
  180. index = Math.floor((i + 1) * Math.random());
  181. temp = shuffled[index];
  182. shuffled[index] = shuffled[i];
  183. shuffled[i] = temp;
  184. }
  185. return shuffled.slice(min);
  186. }
  187. //判断是不是中文
  188. export function isChn(str) {
  189. var reg = /^[\u4E00-\u9FA5]+$/;
  190. if (!reg.test(str)) {
  191. //alert("不全是中文");
  192. return false;
  193. } else {
  194. //alert("全是中文");
  195. return true;
  196. }
  197. }