@haluo/util 2.0.29 → 2.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +350 -350
- package/dist/index.d.ts +39 -39
- package/dist/index.js +43 -43
- package/dist/modules/cookie/index.d.ts +27 -27
- package/dist/modules/cookie/index.js +49 -49
- package/dist/modules/date/index.d.ts +52 -52
- package/dist/modules/date/index.js +185 -185
- package/dist/modules/dom/index.d.ts +28 -28
- package/dist/modules/dom/index.js +55 -55
- package/dist/modules/filter/index.d.ts +24 -24
- package/dist/modules/filter/index.js +38 -38
- package/dist/modules/format/index.d.ts +15 -15
- package/dist/modules/format/index.js +16 -16
- package/dist/modules/match/index.d.ts +12 -12
- package/dist/modules/match/index.js +27 -27
- package/dist/modules/monitor/index.d.ts +3 -3
- package/dist/modules/monitor/index.js +10 -10
- package/dist/modules/monitor/lib/jsError.d.ts +1 -1
- package/dist/modules/monitor/lib/jsError.js +57 -57
- package/dist/modules/monitor/lib/timing.d.ts +1 -1
- package/dist/modules/monitor/lib/timing.js +65 -65
- package/dist/modules/monitor/lib/xhr.d.ts +1 -1
- package/dist/modules/monitor/lib/xhr.js +41 -41
- package/dist/modules/monitor/utils/onload.d.ts +1 -1
- package/dist/modules/monitor/utils/onload.js +8 -8
- package/dist/modules/monitor/utils/tracker.d.ts +7 -7
- package/dist/modules/monitor/utils/tracker.js +49 -49
- package/dist/modules/number/index.d.ts +47 -47
- package/dist/modules/number/index.js +114 -114
- package/dist/modules/open-app/index.d.ts +92 -84
- package/dist/modules/open-app/index.js +260 -244
- package/dist/modules/sentry/index.d.ts +15 -15
- package/dist/modules/sentry/index.js +73 -73
- package/dist/modules/tools/index.d.ts +166 -166
- package/dist/modules/tools/index.js +382 -382
- package/dist/modules/upload/aliOss.d.ts +291 -291
- package/dist/modules/upload/aliOss.js +629 -629
- package/dist/modules/upload/index.d.ts +38 -38
- package/dist/modules/upload/index.js +44 -44
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.js +1 -1
- package/dist/types/modules/cookie/index.d.ts +27 -27
- package/dist/types/modules/date/index.d.ts +52 -52
- package/dist/types/modules/dom/index.d.ts +28 -28
- package/dist/types/modules/filter/index.d.ts +24 -24
- package/dist/types/modules/format/index.d.ts +15 -15
- package/dist/types/modules/match/index.d.ts +12 -12
- package/dist/types/modules/monitor/index.d.ts +3 -3
- package/dist/types/modules/monitor/lib/jsError.d.ts +1 -1
- package/dist/types/modules/monitor/lib/timing.d.ts +1 -1
- package/dist/types/modules/monitor/lib/xhr.d.ts +1 -1
- package/dist/types/modules/monitor/utils/onload.d.ts +1 -1
- package/dist/types/modules/monitor/utils/tracker.d.ts +7 -7
- package/dist/types/modules/number/index.d.ts +41 -41
- package/dist/types/modules/sentry/index.d.ts +15 -15
- package/dist/types/modules/tools/index.d.ts +166 -166
- package/dist/types/types/index.d.ts +3 -3
- package/package.json +88 -88
package/README.md
CHANGED
|
@@ -1,350 +1,350 @@
|
|
|
1
|
-
### @haluo/util
|
|
2
|
-
|
|
3
|
-
> 摩托范工具库
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
#### 部署说明
|
|
8
|
-
|
|
9
|
-
```js
|
|
10
|
-
npm publish // 发布包
|
|
11
|
-
npm unpublish --force // 强制删除
|
|
12
|
-
npm unpublish @haluo/util@0.0.0 // 删除指定版本的包
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
#### 安装说明
|
|
16
|
-
|
|
17
|
-
```js
|
|
18
|
-
npm install -D @haluo/util
|
|
19
|
-
yarn add -D @haluo/util
|
|
20
|
-
// npm install -D @types/@haluo/util # 使用ts构建时
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
#### 使用说明
|
|
24
|
-
|
|
25
|
-
```js
|
|
26
|
-
// 方式一
|
|
27
|
-
import { cookie, date, dom, match, number, tools } from '@haluo/util' // 全量引用
|
|
28
|
-
|
|
29
|
-
// 方式二
|
|
30
|
-
import tools from '@haluo/util/dist/modules/match' // 局部引用
|
|
31
|
-
|
|
32
|
-
// 方式三
|
|
33
|
-
const date = require('@haluo/util').date // 全量引用
|
|
34
|
-
|
|
35
|
-
// 方式四
|
|
36
|
-
import haluoUtil from '@haluo/util' // 全量引用
|
|
37
|
-
|
|
38
|
-
// 方式五
|
|
39
|
-
import util from '@haluo/util'
|
|
40
|
-
util.install(Vue)
|
|
41
|
-
this.$cookie、this.$date、this.$dom、this.$match、this.$number、this.$tools
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
## 🚀 API 文档
|
|
47
|
-
|
|
48
|
-
### date
|
|
49
|
-
|
|
50
|
-
> import { date } from '@haluo/util';
|
|
51
|
-
|
|
52
|
-
- format:格式化时间戳
|
|
53
|
-
|
|
54
|
-
```js
|
|
55
|
-
date.format(new Date()) // 默认格式 'YYYY-MM-DD HH:mm:ss'
|
|
56
|
-
date.format(1586840260500) // 默认格式,传参为linux时间
|
|
57
|
-
date.format(new Date(), 'YYYY:MM:DD') // 自定义格式 'YYYY:MM:DD'
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
- addDaysToDate 天数加减
|
|
61
|
-
|
|
62
|
-
```js
|
|
63
|
-
addDaysToDate('2020-10-15', 10) // '2020-10-25'
|
|
64
|
-
addDaysToDate('2020-10-15', -10) // '2020-10-05'
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
- remainTime 获取倒计时剩余时间
|
|
68
|
-
|
|
69
|
-
```js
|
|
70
|
-
date.remainTime(new Date()) // 入参为 endTime,出参为:{dd: '天', hh: '时', mm: '分', ss: '秒'}
|
|
71
|
-
date.remainTime(new Date(), 1586840260500) // 入参为 endTime、startTime,出参为:{dd: '天', hh: '时', mm: '分', ss: '秒'}
|
|
72
|
-
date.remainTime(1586840260500) // {dd: '天', hh: '时', mm: '分', ss: '秒'}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
- formatPassTime 格式化现在的已过时间
|
|
76
|
-
|
|
77
|
-
```js
|
|
78
|
-
date.formatPassTime(new Date()) // *年前 *个月前 *天前 *小时前 *分钟前 刚刚
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
- formatPassTimeForDetail 格式化时间 详情内容里的时间格式
|
|
82
|
-
|
|
83
|
-
```js
|
|
84
|
-
formatPassTimeForDetail(1494141000*1000, 'YYYY-MM-DD', false) // *年*月*日 *月*日 刚刚(1-60秒) 1-60分钟前 1-24小时前 1-3天前
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
### dom(仅限H5使用)
|
|
90
|
-
|
|
91
|
-
> import { dom } from '@haluo/util';
|
|
92
|
-
|
|
93
|
-
- createElement 创建一个子元素,并添加至父节点(可选)(仅限H5使用)
|
|
94
|
-
|
|
95
|
-
```js
|
|
96
|
-
dom.createElement('div', '', 'body')
|
|
97
|
-
```
|
|
98
|
-
- wrapperA 给url包一个a标签(仅限H5使用)
|
|
99
|
-
|
|
100
|
-
```js
|
|
101
|
-
// "1234<a href=\"https://m.jddmoto.com/home-garage\">https://m.jddmoto.com/home-garage</a>你好"
|
|
102
|
-
dom.wrapperA('1234https://m.jddmoto.com/home-garage你好')
|
|
103
|
-
```
|
|
104
|
-
- 对象转化为formdata(仅限H5使用)
|
|
105
|
-
|
|
106
|
-
```js
|
|
107
|
-
getFormData({a: 1, b: 2}) // 返回 FormData
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
### format
|
|
113
|
-
|
|
114
|
-
> import { format } from '@haluo/util';
|
|
115
|
-
|
|
116
|
-
- transformObjectNullVal 对于对象非数字与布尔值的value,当其为falsy时,转换成separator
|
|
117
|
-
|
|
118
|
-
```js
|
|
119
|
-
format.transformObjectNullVal({ a: null, b: 0}, '23') // {a: "23", b: 0}
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
### match
|
|
125
|
-
|
|
126
|
-
> import { match } from '@haluo/util';
|
|
127
|
-
|
|
128
|
-
- checkType 检测是否 ip、port、phone(手机号码)、email(邮箱)、IDCard(身份证)、url(网址)、number(数字)
|
|
129
|
-
|
|
130
|
-
```js
|
|
131
|
-
match.checkType('10.120.33.11', 'ip') // true
|
|
132
|
-
match.checkType('13111111111', 'phone') // true
|
|
133
|
-
match.checkType('wanghui@jddmoto.com', 'email') // true
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
### number
|
|
139
|
-
|
|
140
|
-
> import { number } from '@haluo/util';
|
|
141
|
-
|
|
142
|
-
- formatNumber 个位数前面补0
|
|
143
|
-
|
|
144
|
-
```js
|
|
145
|
-
number.formatNumber(1) // 01
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
- formatPhone 将手机号中间部分替换为星号
|
|
149
|
-
|
|
150
|
-
```js
|
|
151
|
-
number.formatPhone(13111111111) // 131****1111
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
- convertToWan 格式化数字 万
|
|
155
|
-
|
|
156
|
-
```js
|
|
157
|
-
number.convertToWan(123000) // 12.3万
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
- convertToThousand 格式化数字 k
|
|
161
|
-
|
|
162
|
-
```js
|
|
163
|
-
number.convertToThousand(1200) // 1.2k
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
- random 随机数,指定范围
|
|
167
|
-
|
|
168
|
-
```js
|
|
169
|
-
number.random(1, 100) // 4
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
- formatMoney 格式化金额
|
|
173
|
-
|
|
174
|
-
```js
|
|
175
|
-
number.formatMoney(123456) // 123,456
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
- formatPhoneNumber 格式化手机号码
|
|
179
|
-
|
|
180
|
-
```js
|
|
181
|
-
number.formatPhoneNumber(13111111111) // 131 1111 1111
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
### openApp
|
|
185
|
-
|
|
186
|
-
> import { openApp } from '@haluo/util';
|
|
187
|
-
|
|
188
|
-
- export default new openApp(env, postJddTrack, trackId, openAppState)
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
### tools
|
|
192
|
-
|
|
193
|
-
> 常用函数工具库(防抖、节流、正则类型检测、深浅拷贝等)
|
|
194
|
-
> import { tools } from '@haluo/util';
|
|
195
|
-
|
|
196
|
-
- deepCopy 深拷贝,支持 普通对象、数组,但是未解决Function、Date、RegExp,且1M以上数据性能不好
|
|
197
|
-
|
|
198
|
-
```js
|
|
199
|
-
tools.deepCopy({a: {b: 2}, c: {d: 3}}) // {a: {b: 2}, c: {d: 3}}
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
- deepCopy2 支持 普通对象、数组和函数的深复制,但是未解决循环引用、Date、RegExp
|
|
203
|
-
|
|
204
|
-
```js
|
|
205
|
-
tools.deepCopy2({a: {b: 2}, c: {d: 3}}) // {a: {b: 2}, c: {d: 3}}
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
- debounce 防抖
|
|
209
|
-
|
|
210
|
-
```js
|
|
211
|
-
tools.debounce(func, 300)(args)
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
- throttle 节流
|
|
215
|
-
|
|
216
|
-
```js
|
|
217
|
-
tools.throttle(func, 300)(args)
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
- loadJs 动态加载脚本(仅限H5使用)
|
|
221
|
-
|
|
222
|
-
```js
|
|
223
|
-
tools.loadJs('https://cdn.jsdelivr.net/npm/vant@2.10.1/lib/index.js').then()
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
- loadCss 动态加载样式(仅限H5使用)
|
|
227
|
-
|
|
228
|
-
```js
|
|
229
|
-
tools.loadCss('https://cdn.jsdelivr.net/npm/vant@2.10.1/lib/index.css').then()
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
- startScroll 蒙层隐藏后,html开启滚动操作(仅限H5使用)
|
|
233
|
-
|
|
234
|
-
```js
|
|
235
|
-
tools.startScroll()
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
- stopScroll 蒙层显示后,html禁止滚动操作(仅限H5使用)
|
|
239
|
-
|
|
240
|
-
```js
|
|
241
|
-
tools.stopScroll()
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
- clipboard 字符串复制到剪贴板(仅限H5使用)
|
|
245
|
-
|
|
246
|
-
```js
|
|
247
|
-
tools.clipboard('test')
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
- firstUpperCase 首字母大写
|
|
251
|
-
|
|
252
|
-
```js
|
|
253
|
-
tools.firstUpperCase('abcde') // Abcde
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
- guid 生成guid
|
|
257
|
-
|
|
258
|
-
```js
|
|
259
|
-
tools.guid() // a5a35c73-f516-9f9d-ec66-78163d092cd2
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
- getBytesOfText 获取文本字节数(含中文)
|
|
263
|
-
|
|
264
|
-
```js
|
|
265
|
-
tools.getBytesOfText('张三a1') // 6
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
- objectToArray object 对象转 array 数组
|
|
269
|
-
|
|
270
|
-
```js
|
|
271
|
-
tools.objectToArray({a: 1, b: 2}) // ["a=1", "b=2"]
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
- convertKeyValueEnum 枚举键值互换
|
|
275
|
-
|
|
276
|
-
```js
|
|
277
|
-
tools.convertKeyValueEnum({a: 1, b: 2}) // {1: "a", 2: "b"}
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
- uniqueArr 数组去重
|
|
281
|
-
|
|
282
|
-
```js
|
|
283
|
-
tools.uniqueArr[1, 2, 2, 3]) // [1, 2, 3]
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
- swapArray 数组元素交换位置
|
|
287
|
-
|
|
288
|
-
```js
|
|
289
|
-
tools.swapArray([1, 2, 3, 4], 2, 3) // [1, 2, 4, 3]
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
- filterEmoji 过滤表情符号
|
|
293
|
-
|
|
294
|
-
```js
|
|
295
|
-
tools.filterEmoji() // string
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
- containsEmoji 是否包含表情
|
|
299
|
-
|
|
300
|
-
```js
|
|
301
|
-
tools.containsEmoji() // true or false
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
- containsHanZi 是否包含表汉字
|
|
305
|
-
|
|
306
|
-
```js
|
|
307
|
-
tools.containsHanZi('123哈哈456') // true
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
- isEmpty 任意类型是否为空
|
|
311
|
-
|
|
312
|
-
```js
|
|
313
|
-
tools.isEmpty() // true or false
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
- isDefined 变量是否 undefined 或 null
|
|
317
|
-
|
|
318
|
-
```js
|
|
319
|
-
tools.isDefined() // true or false
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
- sensitiveField 字段脱敏处理
|
|
323
|
-
|
|
324
|
-
```js
|
|
325
|
-
tools.sensitiveField(13111111111, 3, 4) // 131****1111
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
### sentry
|
|
331
|
-
|
|
332
|
-
> import { sentry } from '@haluo/util';
|
|
333
|
-
|
|
334
|
-
- 初始化
|
|
335
|
-
|
|
336
|
-
``` js
|
|
337
|
-
import { sentry } from '@haluo/util';
|
|
338
|
-
const option = {
|
|
339
|
-
dsn: http://753ce3bf82e94ab0aa7b5e62fae16d3c@sentry.***.com:9000/2
|
|
340
|
-
}
|
|
341
|
-
const Sentry = sentry.getInstance(Vue, option);
|
|
342
|
-
Vue.prototype.$sentry = sentry;
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
- 主动上报
|
|
346
|
-
|
|
347
|
-
```js
|
|
348
|
-
this.$sentry.log('test');
|
|
349
|
-
```
|
|
350
|
-
|
|
1
|
+
### @haluo/util
|
|
2
|
+
|
|
3
|
+
> 摩托范工具库
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
#### 部署说明
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
npm publish // 发布包
|
|
11
|
+
npm unpublish --force // 强制删除
|
|
12
|
+
npm unpublish @haluo/util@0.0.0 // 删除指定版本的包
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
#### 安装说明
|
|
16
|
+
|
|
17
|
+
```js
|
|
18
|
+
npm install -D @haluo/util
|
|
19
|
+
yarn add -D @haluo/util
|
|
20
|
+
// npm install -D @types/@haluo/util # 使用ts构建时
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
#### 使用说明
|
|
24
|
+
|
|
25
|
+
```js
|
|
26
|
+
// 方式一
|
|
27
|
+
import { cookie, date, dom, match, number, tools } from '@haluo/util' // 全量引用
|
|
28
|
+
|
|
29
|
+
// 方式二
|
|
30
|
+
import tools from '@haluo/util/dist/modules/match' // 局部引用
|
|
31
|
+
|
|
32
|
+
// 方式三
|
|
33
|
+
const date = require('@haluo/util').date // 全量引用
|
|
34
|
+
|
|
35
|
+
// 方式四
|
|
36
|
+
import haluoUtil from '@haluo/util' // 全量引用
|
|
37
|
+
|
|
38
|
+
// 方式五
|
|
39
|
+
import util from '@haluo/util'
|
|
40
|
+
util.install(Vue)
|
|
41
|
+
this.$cookie、this.$date、this.$dom、this.$match、this.$number、this.$tools
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## 🚀 API 文档
|
|
47
|
+
|
|
48
|
+
### date
|
|
49
|
+
|
|
50
|
+
> import { date } from '@haluo/util';
|
|
51
|
+
|
|
52
|
+
- format:格式化时间戳
|
|
53
|
+
|
|
54
|
+
```js
|
|
55
|
+
date.format(new Date()) // 默认格式 'YYYY-MM-DD HH:mm:ss'
|
|
56
|
+
date.format(1586840260500) // 默认格式,传参为linux时间
|
|
57
|
+
date.format(new Date(), 'YYYY:MM:DD') // 自定义格式 'YYYY:MM:DD'
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
- addDaysToDate 天数加减
|
|
61
|
+
|
|
62
|
+
```js
|
|
63
|
+
addDaysToDate('2020-10-15', 10) // '2020-10-25'
|
|
64
|
+
addDaysToDate('2020-10-15', -10) // '2020-10-05'
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
- remainTime 获取倒计时剩余时间
|
|
68
|
+
|
|
69
|
+
```js
|
|
70
|
+
date.remainTime(new Date()) // 入参为 endTime,出参为:{dd: '天', hh: '时', mm: '分', ss: '秒'}
|
|
71
|
+
date.remainTime(new Date(), 1586840260500) // 入参为 endTime、startTime,出参为:{dd: '天', hh: '时', mm: '分', ss: '秒'}
|
|
72
|
+
date.remainTime(1586840260500) // {dd: '天', hh: '时', mm: '分', ss: '秒'}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
- formatPassTime 格式化现在的已过时间
|
|
76
|
+
|
|
77
|
+
```js
|
|
78
|
+
date.formatPassTime(new Date()) // *年前 *个月前 *天前 *小时前 *分钟前 刚刚
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
- formatPassTimeForDetail 格式化时间 详情内容里的时间格式
|
|
82
|
+
|
|
83
|
+
```js
|
|
84
|
+
formatPassTimeForDetail(1494141000*1000, 'YYYY-MM-DD', false) // *年*月*日 *月*日 刚刚(1-60秒) 1-60分钟前 1-24小时前 1-3天前
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
### dom(仅限H5使用)
|
|
90
|
+
|
|
91
|
+
> import { dom } from '@haluo/util';
|
|
92
|
+
|
|
93
|
+
- createElement 创建一个子元素,并添加至父节点(可选)(仅限H5使用)
|
|
94
|
+
|
|
95
|
+
```js
|
|
96
|
+
dom.createElement('div', '', 'body')
|
|
97
|
+
```
|
|
98
|
+
- wrapperA 给url包一个a标签(仅限H5使用)
|
|
99
|
+
|
|
100
|
+
```js
|
|
101
|
+
// "1234<a href=\"https://m.jddmoto.com/home-garage\">https://m.jddmoto.com/home-garage</a>你好"
|
|
102
|
+
dom.wrapperA('1234https://m.jddmoto.com/home-garage你好')
|
|
103
|
+
```
|
|
104
|
+
- 对象转化为formdata(仅限H5使用)
|
|
105
|
+
|
|
106
|
+
```js
|
|
107
|
+
getFormData({a: 1, b: 2}) // 返回 FormData
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
### format
|
|
113
|
+
|
|
114
|
+
> import { format } from '@haluo/util';
|
|
115
|
+
|
|
116
|
+
- transformObjectNullVal 对于对象非数字与布尔值的value,当其为falsy时,转换成separator
|
|
117
|
+
|
|
118
|
+
```js
|
|
119
|
+
format.transformObjectNullVal({ a: null, b: 0}, '23') // {a: "23", b: 0}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
### match
|
|
125
|
+
|
|
126
|
+
> import { match } from '@haluo/util';
|
|
127
|
+
|
|
128
|
+
- checkType 检测是否 ip、port、phone(手机号码)、email(邮箱)、IDCard(身份证)、url(网址)、number(数字)
|
|
129
|
+
|
|
130
|
+
```js
|
|
131
|
+
match.checkType('10.120.33.11', 'ip') // true
|
|
132
|
+
match.checkType('13111111111', 'phone') // true
|
|
133
|
+
match.checkType('wanghui@jddmoto.com', 'email') // true
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
### number
|
|
139
|
+
|
|
140
|
+
> import { number } from '@haluo/util';
|
|
141
|
+
|
|
142
|
+
- formatNumber 个位数前面补0
|
|
143
|
+
|
|
144
|
+
```js
|
|
145
|
+
number.formatNumber(1) // 01
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
- formatPhone 将手机号中间部分替换为星号
|
|
149
|
+
|
|
150
|
+
```js
|
|
151
|
+
number.formatPhone(13111111111) // 131****1111
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
- convertToWan 格式化数字 万
|
|
155
|
+
|
|
156
|
+
```js
|
|
157
|
+
number.convertToWan(123000) // 12.3万
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
- convertToThousand 格式化数字 k
|
|
161
|
+
|
|
162
|
+
```js
|
|
163
|
+
number.convertToThousand(1200) // 1.2k
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
- random 随机数,指定范围
|
|
167
|
+
|
|
168
|
+
```js
|
|
169
|
+
number.random(1, 100) // 4
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
- formatMoney 格式化金额
|
|
173
|
+
|
|
174
|
+
```js
|
|
175
|
+
number.formatMoney(123456) // 123,456
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
- formatPhoneNumber 格式化手机号码
|
|
179
|
+
|
|
180
|
+
```js
|
|
181
|
+
number.formatPhoneNumber(13111111111) // 131 1111 1111
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### openApp
|
|
185
|
+
|
|
186
|
+
> import { openApp } from '@haluo/util';
|
|
187
|
+
|
|
188
|
+
- export default new openApp(env, postJddTrack, trackId, openAppState)
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
### tools
|
|
192
|
+
|
|
193
|
+
> 常用函数工具库(防抖、节流、正则类型检测、深浅拷贝等)
|
|
194
|
+
> import { tools } from '@haluo/util';
|
|
195
|
+
|
|
196
|
+
- deepCopy 深拷贝,支持 普通对象、数组,但是未解决Function、Date、RegExp,且1M以上数据性能不好
|
|
197
|
+
|
|
198
|
+
```js
|
|
199
|
+
tools.deepCopy({a: {b: 2}, c: {d: 3}}) // {a: {b: 2}, c: {d: 3}}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
- deepCopy2 支持 普通对象、数组和函数的深复制,但是未解决循环引用、Date、RegExp
|
|
203
|
+
|
|
204
|
+
```js
|
|
205
|
+
tools.deepCopy2({a: {b: 2}, c: {d: 3}}) // {a: {b: 2}, c: {d: 3}}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
- debounce 防抖
|
|
209
|
+
|
|
210
|
+
```js
|
|
211
|
+
tools.debounce(func, 300)(args)
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
- throttle 节流
|
|
215
|
+
|
|
216
|
+
```js
|
|
217
|
+
tools.throttle(func, 300)(args)
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
- loadJs 动态加载脚本(仅限H5使用)
|
|
221
|
+
|
|
222
|
+
```js
|
|
223
|
+
tools.loadJs('https://cdn.jsdelivr.net/npm/vant@2.10.1/lib/index.js').then()
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
- loadCss 动态加载样式(仅限H5使用)
|
|
227
|
+
|
|
228
|
+
```js
|
|
229
|
+
tools.loadCss('https://cdn.jsdelivr.net/npm/vant@2.10.1/lib/index.css').then()
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
- startScroll 蒙层隐藏后,html开启滚动操作(仅限H5使用)
|
|
233
|
+
|
|
234
|
+
```js
|
|
235
|
+
tools.startScroll()
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
- stopScroll 蒙层显示后,html禁止滚动操作(仅限H5使用)
|
|
239
|
+
|
|
240
|
+
```js
|
|
241
|
+
tools.stopScroll()
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
- clipboard 字符串复制到剪贴板(仅限H5使用)
|
|
245
|
+
|
|
246
|
+
```js
|
|
247
|
+
tools.clipboard('test')
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
- firstUpperCase 首字母大写
|
|
251
|
+
|
|
252
|
+
```js
|
|
253
|
+
tools.firstUpperCase('abcde') // Abcde
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
- guid 生成guid
|
|
257
|
+
|
|
258
|
+
```js
|
|
259
|
+
tools.guid() // a5a35c73-f516-9f9d-ec66-78163d092cd2
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
- getBytesOfText 获取文本字节数(含中文)
|
|
263
|
+
|
|
264
|
+
```js
|
|
265
|
+
tools.getBytesOfText('张三a1') // 6
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
- objectToArray object 对象转 array 数组
|
|
269
|
+
|
|
270
|
+
```js
|
|
271
|
+
tools.objectToArray({a: 1, b: 2}) // ["a=1", "b=2"]
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
- convertKeyValueEnum 枚举键值互换
|
|
275
|
+
|
|
276
|
+
```js
|
|
277
|
+
tools.convertKeyValueEnum({a: 1, b: 2}) // {1: "a", 2: "b"}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
- uniqueArr 数组去重
|
|
281
|
+
|
|
282
|
+
```js
|
|
283
|
+
tools.uniqueArr[1, 2, 2, 3]) // [1, 2, 3]
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
- swapArray 数组元素交换位置
|
|
287
|
+
|
|
288
|
+
```js
|
|
289
|
+
tools.swapArray([1, 2, 3, 4], 2, 3) // [1, 2, 4, 3]
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
- filterEmoji 过滤表情符号
|
|
293
|
+
|
|
294
|
+
```js
|
|
295
|
+
tools.filterEmoji() // string
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
- containsEmoji 是否包含表情
|
|
299
|
+
|
|
300
|
+
```js
|
|
301
|
+
tools.containsEmoji() // true or false
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
- containsHanZi 是否包含表汉字
|
|
305
|
+
|
|
306
|
+
```js
|
|
307
|
+
tools.containsHanZi('123哈哈456') // true
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
- isEmpty 任意类型是否为空
|
|
311
|
+
|
|
312
|
+
```js
|
|
313
|
+
tools.isEmpty() // true or false
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
- isDefined 变量是否 undefined 或 null
|
|
317
|
+
|
|
318
|
+
```js
|
|
319
|
+
tools.isDefined() // true or false
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
- sensitiveField 字段脱敏处理
|
|
323
|
+
|
|
324
|
+
```js
|
|
325
|
+
tools.sensitiveField(13111111111, 3, 4) // 131****1111
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
### sentry
|
|
331
|
+
|
|
332
|
+
> import { sentry } from '@haluo/util';
|
|
333
|
+
|
|
334
|
+
- 初始化
|
|
335
|
+
|
|
336
|
+
``` js
|
|
337
|
+
import { sentry } from '@haluo/util';
|
|
338
|
+
const option = {
|
|
339
|
+
dsn: http://753ce3bf82e94ab0aa7b5e62fae16d3c@sentry.***.com:9000/2
|
|
340
|
+
}
|
|
341
|
+
const Sentry = sentry.getInstance(Vue, option);
|
|
342
|
+
Vue.prototype.$sentry = sentry;
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
- 主动上报
|
|
346
|
+
|
|
347
|
+
```js
|
|
348
|
+
this.$sentry.log('test');
|
|
349
|
+
```
|
|
350
|
+
|