lxf
2025-07-16 8588fe30f17d0d28190a279aab8675de0dbf1a5b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
import i18n from '@/i18n'
export function getImageUrl(path) {
  return new URL(path, import.meta.url).href
}
 
// 设置localStorage
export const setStorage = function (key, obj) {
  let json = JSON.stringify(obj)
  window.localStorage.setItem(key, json)
  // console.log('设置语言', key, json)
}
 
// 获取localStorage
export const getStorage = function (key) {
  const str = window.localStorage.getItem(key)
  if (!str) {
    return null
  }
  return JSON.parse(str)
}
// 获取浏览器默认语言
export const getBrowserLang = function () {
  let browserLang = navigator.language ? navigator.language : navigator.browserLanguage
  let defaultBrowserLang = ''
  if (browserLang.toLowerCase() === 'cn' || browserLang.toLowerCase() === 'zh' || browserLang.toLowerCase() === 'zh-cn') {
    defaultBrowserLang = 'CN'
  } else {
    defaultBrowserLang = 'en'
  }
  return defaultBrowserLang
}
 
export const dataTime = (data, isTrue) => {
  var date = new Date(data);
  let Y = date.getFullYear() + '-';
  let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
  let D = date.getDate() + ' ';
  let h = date.getHours() + ':';
  let m = date.getMinutes() + ':';
  let s = date.getSeconds();
  let str = Y + M + D
  if (isTrue) {
    str = Y + M + D + h + m + s
  } else {
    str = Y + M + D
  }
  return str
}
 
export const debounce = (fn, delay = 500) => {
  // timer 是在闭包中的
  let timer = null;
 
  return function () {
    if (timer) {
      clearTimeout(timer)
    }
    timer = setTimeout(() => {
      fn.apply(this, arguments)
      timer = null
    }, delay)
  }
}
 
export const throttle = (fn, wait = 50) => {
  // 上一次执行 fn 的时间
  let previous = 0
  // 将 throttle 处理结果当作函数返回
  return function (...args) {
    // 获取当前时间,转换成时间戳,单位毫秒
    let now = +new Date()
    // 将当前时间和上一次执行函数的时间进行对比
    // 大于等待时间就把 previous 设置为当前时间并执行函数 fn
    if (now - previous > wait) {
      previous = now
      fn.apply(this, args)
    }
  }
}
 
 
// 小数展示,保留五位小数
export const formatNumber = (num) => {
  if (typeof (num) !== 'number') {
    return '--'
  }
  let count;
  if (num.toString().indexOf('.') < 0) {
    // 整数
    return num
  } else {
    // 小数
    count = num.toString().split('.').pop().length
    if (count > 5) {
      return num.toFixed(5)
    } else {
      return num
    }
  }
 
}
 
 
// 保留五位小数
export const formatNumberToFixedFive = (num) => {
  if (typeof (num) !== 'number') {
    return '--'
  }
  if (num.toString().indexOf('.') < 0) {
    // 整数
    return num
  } else {
    // 小数
    return num.toFixed(5)
  }
}
 
// 保留两位小数
export const fixDate = (val) => {
  const value = val / 1
  if (isNaN(value)) {
    return '--'
  }
  if (i18n.locale === 'CN') {
    if ((value / 10000).toString().split('.')[0].length <= 4) {
      return (value / 10000).toFixed(3) + ' ' + i18n.global.t('万')
    } else {
      return (value / 100000000).toFixed(3) + ' ' + i18n.global.t('亿')
    }
 
  } else {
    if ((value / 1000000).toString().split('.')[0].length <= 4) {
      return (value / 1000000).toFixed(3) + ' ' + i18n.global.t('百万')
    } else {
      return (value / 1000000000).toFixed(3) + ' ' + 'B'
    }
  }
}
 
 
export const formatMoney = (val) => {
  if(val === 0){
    return 0
  }
  if (!val){
    return "-"
  }
  const num = 1000; //byte
  if(val < num){
    return val
  }
  if (val < Math.pow(num, 2)) {
    return (val / num).toFixed(2) + "K"; //k
  }
  if (val < Math.pow(num, 3)) {
    return (val / Math.pow(num, 2)).toFixed(2) + "M"; //M
  }
  if (val < Math.pow(num, 4)) {
    return (val / Math.pow(num, 3)).toFixed(2) + "G"; //G
  }
  return (val / Math.pow(num, 4)).toFixed(2) + "T"; //T  
}
 
 
export  const formatNews = (str) => {
  if(!str) {
    return ''
  }
  return str.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/g, '').replace(/&nbsp;/ig, '')
}