@haluo/util 2.0.22 → 2.0.23
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/dist/index.d.ts +1 -3
- package/dist/index.js +61 -33
- package/dist/modules/cookie/index.js +24 -18
- package/dist/modules/date/index.js +56 -49
- package/dist/modules/dom/index.js +23 -16
- package/dist/modules/filter/index.js +25 -15
- package/dist/modules/format/index.js +12 -6
- package/dist/modules/match/index.js +10 -6
- package/dist/modules/monitor/index.js +14 -7
- package/dist/modules/monitor/lib/jsError.js +35 -39
- package/dist/modules/monitor/lib/timing.js +28 -24
- package/dist/modules/monitor/lib/xhr.js +33 -26
- package/dist/modules/monitor/utils/onload.js +4 -1
- package/dist/modules/monitor/utils/tracker.js +27 -13
- package/dist/modules/number/index.js +35 -31
- package/dist/modules/open-app/index.js +61 -66
- package/dist/modules/sentry/index.js +27 -19
- package/dist/modules/tools/index.d.ts +1 -1
- package/dist/modules/tools/index.js +169 -158
- package/dist/modules/upload/aliOss copy.d.ts +321 -0
- package/dist/modules/upload/aliOss copy.js +734 -0
- package/dist/modules/upload/aliOss.d.ts +51 -28
- package/dist/modules/upload/aliOss.js +154 -73
- package/dist/modules/upload/backup-aliOss.d.ts +321 -0
- package/dist/modules/upload/backup-aliOss.js +734 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/index.js +2 -1
- package/package.json +3 -16
|
@@ -1,40 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.injectJsError = void 0;
|
|
18
|
+
var tracker_1 = __importDefault(require("../utils/tracker"));
|
|
19
|
+
function injectJsError(data) {
|
|
20
|
+
if (data === void 0) { data = {}; }
|
|
21
|
+
window.addEventListener('error', function (e) {
|
|
4
22
|
if (e.target && (e.target.src || e.target.href)) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
title: 'resourceError',
|
|
9
|
-
filename: e.target.src || e.target.href,
|
|
10
|
-
tagName: e.target.tagName,
|
|
11
|
-
reason: e.target.src || e.target.href,
|
|
12
|
-
...data
|
|
13
|
-
// selector: lastEvent ? get
|
|
14
|
-
});
|
|
23
|
+
tracker_1.default.send(__assign({ kind: 'stability', type: 'error', title: 'resourceError', filename: e.target.src || e.target.href, tagName: e.target.tagName, reason: e.target.src || e.target.href }, data
|
|
24
|
+
// selector: lastEvent ? get
|
|
25
|
+
));
|
|
15
26
|
return;
|
|
16
27
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
title: 'jsError',
|
|
21
|
-
message: e.message,
|
|
22
|
-
filename: e.filename,
|
|
23
|
-
position: `${e.lineno}:${e.colno}`,
|
|
24
|
-
reason: e.error.stack,
|
|
25
|
-
...data
|
|
26
|
-
// selector: lastEvent ? get
|
|
27
|
-
});
|
|
28
|
+
tracker_1.default.send(__assign({ kind: 'stability', type: 'error', title: 'jsError', message: e.message, filename: e.filename, position: "".concat(e.lineno, ":").concat(e.colno), reason: e.error.stack }, data
|
|
29
|
+
// selector: lastEvent ? get
|
|
30
|
+
));
|
|
28
31
|
}, true);
|
|
29
|
-
window.addEventListener('unhandledrejection', (e)
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
window.addEventListener('unhandledrejection', function (e) {
|
|
33
|
+
var message, filename, line, column, stack;
|
|
34
|
+
var reason = e.reason;
|
|
32
35
|
if (typeof reason === 'string') {
|
|
33
36
|
message = reason;
|
|
34
37
|
}
|
|
35
38
|
else if (typeof reason === 'object') {
|
|
36
39
|
if (reason.stack) {
|
|
37
|
-
|
|
40
|
+
var matchResult = reason.stack.match(/at\s+(.+):(\d+):(\d+)/);
|
|
38
41
|
filename = matchResult[1];
|
|
39
42
|
line = matchResult[2];
|
|
40
43
|
column = matchResult[3];
|
|
@@ -42,16 +45,9 @@ export function injectJsError(data = {}) {
|
|
|
42
45
|
message = reason.message;
|
|
43
46
|
stack = reason.stack;
|
|
44
47
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
title: 'promiseError',
|
|
49
|
-
message,
|
|
50
|
-
filename,
|
|
51
|
-
position: `${line}:${column}`,
|
|
52
|
-
reason: stack,
|
|
53
|
-
...data
|
|
54
|
-
// selector: lastEvent ? get
|
|
55
|
-
});
|
|
48
|
+
tracker_1.default.send(__assign({ kind: 'stability', type: 'error', title: 'promiseError', message: message, filename: filename, position: "".concat(line, ":").concat(column), reason: stack }, data
|
|
49
|
+
// selector: lastEvent ? get
|
|
50
|
+
));
|
|
56
51
|
});
|
|
57
52
|
}
|
|
53
|
+
exports.injectJsError = injectJsError;
|
|
@@ -1,42 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var onload_1 = __importDefault(require("../utils/onload"));
|
|
7
|
+
var tracker_1 = __importDefault(require("../utils/tracker"));
|
|
8
|
+
function timing() {
|
|
9
|
+
var FMP, LCP;
|
|
10
|
+
new PerformanceObserver(function (entryList, observer) {
|
|
11
|
+
var perfEntries = entryList.getEntries();
|
|
7
12
|
FMP = perfEntries[0];
|
|
8
13
|
observer.disconnect(); // 不再观察
|
|
9
14
|
}).observe({ entryTypes: ['element'] }); // 观察页面中有意义的元素
|
|
10
|
-
new PerformanceObserver((entryList, observer)
|
|
11
|
-
|
|
15
|
+
new PerformanceObserver(function (entryList, observer) {
|
|
16
|
+
var perfEntries = entryList.getEntries();
|
|
12
17
|
LCP = perfEntries[0];
|
|
13
18
|
observer.disconnect(); // 不再观察
|
|
14
19
|
}).observe({ entryTypes: ['largest-contentful-paint'] }); // 观察页面中最大的元素
|
|
15
|
-
new PerformanceObserver((entryList, observer)
|
|
16
|
-
|
|
20
|
+
new PerformanceObserver(function (entryList, observer) {
|
|
21
|
+
var firstInput = entryList.getEntries();
|
|
17
22
|
console.log('FID', firstInput);
|
|
18
23
|
if (firstInput) {
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
var inputDelay = firstInput.processingStart - firstInput.startTime;
|
|
25
|
+
var duration = firstInput.duration;
|
|
21
26
|
if (inputDelay > 0 || duration > 0) {
|
|
22
|
-
|
|
27
|
+
tracker_1.default.send({
|
|
23
28
|
kind: 'experience',
|
|
24
29
|
type: 'firstInputDelay',
|
|
25
|
-
inputDelay,
|
|
26
|
-
duration,
|
|
30
|
+
inputDelay: inputDelay,
|
|
31
|
+
duration: duration,
|
|
27
32
|
startTime: firstInput.startTime
|
|
28
33
|
});
|
|
29
34
|
}
|
|
30
35
|
}
|
|
31
36
|
observer.disconnect(); // 不再观察
|
|
32
37
|
}).observe({ type: 'first-input', buffered: true }); // 观察页面中最大的元素
|
|
33
|
-
|
|
34
|
-
setTimeout(()
|
|
38
|
+
(0, onload_1.default)(function () {
|
|
39
|
+
setTimeout(function () {
|
|
35
40
|
console.dir(window.performance);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
} = performance.getEntriesByType('navigation')[0];
|
|
39
|
-
tracker.send({
|
|
41
|
+
var _a = performance.getEntriesByType('navigation')[0], fetchStart = _a.fetchStart, connectStart = _a.connectStart, connectEnd = _a.connectEnd, requestStart = _a.requestStart, responseStart = _a.responseStart, responseEnd = _a.responseEnd, domInteractive = _a.domInteractive, domContentLoadedEventStart = _a.domContentLoadedEventStart, domContentLoadedEventEnd = _a.domContentLoadedEventEnd, loadEventStart = _a.loadEventStart;
|
|
42
|
+
tracker_1.default.send({
|
|
40
43
|
kind: 'experience',
|
|
41
44
|
type: 'timing',
|
|
42
45
|
connectTime: connectEnd - connectStart,
|
|
@@ -46,13 +49,13 @@ export default function timing() {
|
|
|
46
49
|
timeToInteractive: domInteractive - fetchStart,
|
|
47
50
|
loadTime: loadEventStart - fetchStart // 完整的页面加载时间
|
|
48
51
|
});
|
|
49
|
-
|
|
50
|
-
|
|
52
|
+
var FP = performance.getEntriesByName('first-paint')[0];
|
|
53
|
+
var FCP = performance.getEntriesByName('first-contentful-paint')[0];
|
|
51
54
|
console.log('FP', FP);
|
|
52
55
|
console.log('FCP', FCP);
|
|
53
56
|
console.log('FMP', FMP);
|
|
54
57
|
console.log('LCP', LCP);
|
|
55
|
-
|
|
58
|
+
tracker_1.default.send({
|
|
56
59
|
kind: 'experience',
|
|
57
60
|
type: 'paint',
|
|
58
61
|
FP: FP.startTime,
|
|
@@ -63,3 +66,4 @@ export default function timing() {
|
|
|
63
66
|
}, 3000);
|
|
64
67
|
});
|
|
65
68
|
}
|
|
69
|
+
exports.default = timing;
|
|
@@ -1,37 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var tracker_1 = __importDefault(require("../utils/tracker"));
|
|
18
|
+
function injectXHR(data) {
|
|
19
|
+
if (data === void 0) { data = {}; }
|
|
20
|
+
var XMLHttpRequest = window.XMLHttpRequest;
|
|
21
|
+
var oldOpen = XMLHttpRequest.prototype.open;
|
|
5
22
|
XMLHttpRequest.prototype.open = function (method, url, async) {
|
|
6
|
-
this.logData = { method, url, async };
|
|
23
|
+
this.logData = { method: method, url: url, async: async };
|
|
7
24
|
return oldOpen.apply(this, arguments);
|
|
8
25
|
};
|
|
9
|
-
|
|
26
|
+
var oldSend = XMLHttpRequest.prototype.send;
|
|
10
27
|
XMLHttpRequest.prototype.send = function (body) {
|
|
28
|
+
var _this = this;
|
|
11
29
|
if (this.logData) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (
|
|
30
|
+
var startTime_1 = Date.now();
|
|
31
|
+
var handler = function (type) { return function (event) {
|
|
32
|
+
if (_this.logData.url.indexOf('app/collect/original/info/report/v2') > -1)
|
|
15
33
|
return;
|
|
16
34
|
if (type !== 'error')
|
|
17
35
|
return;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
type: 'xhr',
|
|
24
|
-
eventType: event.type,
|
|
25
|
-
pathname: this.logData.url,
|
|
26
|
-
status: status + '-' + statusText,
|
|
27
|
-
duration,
|
|
28
|
-
response: this.response ? JSON.stringify(this.response) : '',
|
|
29
|
-
params: body || '',
|
|
30
|
-
title: 'xhr',
|
|
31
|
-
reason: status + '-' + statusText + ` ${this.logData.url} ${this.response ? JSON.stringify(this.response) : ''}`,
|
|
32
|
-
...data
|
|
33
|
-
});
|
|
34
|
-
};
|
|
36
|
+
var duration = Date.now() - startTime_1;
|
|
37
|
+
var status = _this.status;
|
|
38
|
+
var statusText = _this.statusText;
|
|
39
|
+
tracker_1.default.send(__assign({ kind: 'stability', type: 'xhr', eventType: event.type, pathname: _this.logData.url, status: status + '-' + statusText, duration: duration, response: _this.response ? JSON.stringify(_this.response) : '', params: body || '', title: 'xhr', reason: status + '-' + statusText + " ".concat(_this.logData.url, " ").concat(_this.response ? JSON.stringify(_this.response) : '') }, data));
|
|
40
|
+
}; };
|
|
35
41
|
this.addEventListener('load', handler('load'), false);
|
|
36
42
|
this.addEventListener('error', handler('error'), false);
|
|
37
43
|
this.addEventListener('abort', handler('abort'), false);
|
|
@@ -39,3 +45,4 @@ export default function injectXHR(data = {}) {
|
|
|
39
45
|
return oldSend.apply(this, arguments);
|
|
40
46
|
};
|
|
41
47
|
}
|
|
48
|
+
exports.default = injectXHR;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function onload(cb) {
|
|
2
4
|
if (document.readyState) {
|
|
3
5
|
cb();
|
|
4
6
|
}
|
|
@@ -6,3 +8,4 @@ export default function onload(cb) {
|
|
|
6
8
|
window.addEventListener('load', cb);
|
|
7
9
|
}
|
|
8
10
|
}
|
|
11
|
+
exports.default = onload;
|
|
@@ -1,19 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
var uuidv4 = require('uuid').v4;
|
|
15
|
+
// const Parser = require('ua-parser-js');
|
|
16
|
+
var SendTracker = /** @class */ (function () {
|
|
17
|
+
function SendTracker() {
|
|
6
18
|
this.url = '';
|
|
7
19
|
}
|
|
8
|
-
send
|
|
9
|
-
|
|
20
|
+
SendTracker.prototype.send = function (data) {
|
|
21
|
+
if (data === void 0) { data = {}; }
|
|
22
|
+
var host = window.location.host;
|
|
10
23
|
if (host.indexOf('localhost') > -1)
|
|
11
24
|
return;
|
|
12
|
-
|
|
25
|
+
var reg = /((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}/g;
|
|
13
26
|
if (reg.test(host))
|
|
14
27
|
return;
|
|
15
|
-
|
|
16
|
-
|
|
28
|
+
var log = __assign(__assign({}, getExtraData()), data);
|
|
29
|
+
var formBody = [];
|
|
17
30
|
for (var property in log) {
|
|
18
31
|
var encodedKey = encodeURIComponent(property);
|
|
19
32
|
var encodedValue = encodeURIComponent(log[property]);
|
|
@@ -31,8 +44,9 @@ class SendTracker {
|
|
|
31
44
|
// }).catch((e) => {
|
|
32
45
|
// console.log(e)
|
|
33
46
|
// })
|
|
34
|
-
}
|
|
35
|
-
|
|
47
|
+
};
|
|
48
|
+
return SendTracker;
|
|
49
|
+
}());
|
|
36
50
|
function getExtraData() {
|
|
37
51
|
return {
|
|
38
52
|
deviceId: uuidv4(),
|
|
@@ -46,4 +60,4 @@ function getExtraData() {
|
|
|
46
60
|
// userAgent: new Parser().getResult()
|
|
47
61
|
};
|
|
48
62
|
}
|
|
49
|
-
|
|
63
|
+
exports.default = new SendTracker();
|
|
@@ -4,31 +4,34 @@
|
|
|
4
4
|
* @createBy: @2020.05.26
|
|
5
5
|
*/
|
|
6
6
|
'use strict';
|
|
7
|
-
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
var NumberClass = /** @class */ (function () {
|
|
9
|
+
function NumberClass() {
|
|
10
|
+
}
|
|
8
11
|
/**
|
|
9
12
|
* 个位数前面补0
|
|
10
13
|
* @param {Number} num 需要格式化的数字
|
|
11
14
|
* @return {String} '01'
|
|
12
15
|
*/
|
|
13
|
-
formatNumber(num) {
|
|
14
|
-
|
|
16
|
+
NumberClass.prototype.formatNumber = function (num) {
|
|
17
|
+
var res = num.toString();
|
|
15
18
|
return res[1] ? res : '0' + res;
|
|
16
|
-
}
|
|
19
|
+
};
|
|
17
20
|
/**
|
|
18
21
|
* 将手机号中间部分替换为星号
|
|
19
22
|
* @param {String} phone 手机号码
|
|
20
23
|
* @return {String} 131****1111
|
|
21
24
|
*/
|
|
22
|
-
formatPhone(phone) {
|
|
25
|
+
NumberClass.prototype.formatPhone = function (phone) {
|
|
23
26
|
return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
|
|
24
|
-
}
|
|
27
|
+
};
|
|
25
28
|
/**
|
|
26
29
|
* 格式化数字 万
|
|
27
30
|
* @param {Number} num
|
|
28
31
|
* @return {String} 12.3万
|
|
29
32
|
*/
|
|
30
|
-
convertToWan(num) {
|
|
31
|
-
|
|
33
|
+
NumberClass.prototype.convertToWan = function (num) {
|
|
34
|
+
var result = '';
|
|
32
35
|
if (num < 10000) {
|
|
33
36
|
result = num;
|
|
34
37
|
}
|
|
@@ -36,14 +39,14 @@ class NumberClass {
|
|
|
36
39
|
result = (num / 10000).toFixed(1) + '万';
|
|
37
40
|
}
|
|
38
41
|
return result;
|
|
39
|
-
}
|
|
42
|
+
};
|
|
40
43
|
/**
|
|
41
44
|
* 格式化数字 k
|
|
42
45
|
* @param {Number} num
|
|
43
46
|
* @return {String} 1.2k
|
|
44
47
|
*/
|
|
45
|
-
convertToThousand(num) {
|
|
46
|
-
|
|
48
|
+
NumberClass.prototype.convertToThousand = function (num) {
|
|
49
|
+
var result = '';
|
|
47
50
|
if (num < 1000) {
|
|
48
51
|
result = num;
|
|
49
52
|
}
|
|
@@ -51,28 +54,28 @@ class NumberClass {
|
|
|
51
54
|
result = (num / 1000).toFixed(1) + 'k';
|
|
52
55
|
}
|
|
53
56
|
return result;
|
|
54
|
-
}
|
|
57
|
+
};
|
|
55
58
|
/**
|
|
56
59
|
* 随机数,指定范围
|
|
57
60
|
* @param {Number} min 开始
|
|
58
61
|
* @param {Number} max 结束
|
|
59
62
|
* @return {Number|Object}
|
|
60
63
|
*/
|
|
61
|
-
random(min, max) {
|
|
64
|
+
NumberClass.prototype.random = function (min, max) {
|
|
62
65
|
if (arguments.length === 2) {
|
|
63
66
|
return Math.floor(min + Math.random() * ((max + 1) - min));
|
|
64
67
|
}
|
|
65
68
|
else {
|
|
66
69
|
return null;
|
|
67
70
|
}
|
|
68
|
-
}
|
|
71
|
+
};
|
|
69
72
|
/**
|
|
70
73
|
* 格式化金额
|
|
71
74
|
* @param {Number} num
|
|
72
75
|
* @return {String} 123,456
|
|
73
76
|
*/
|
|
74
|
-
formatMoney(money, signal) {
|
|
75
|
-
|
|
77
|
+
NumberClass.prototype.formatMoney = function (money, signal) {
|
|
78
|
+
var result = '';
|
|
76
79
|
if (money === '') {
|
|
77
80
|
return result;
|
|
78
81
|
}
|
|
@@ -86,29 +89,30 @@ class NumberClass {
|
|
|
86
89
|
return result = money;
|
|
87
90
|
}
|
|
88
91
|
signal = signal === '' ? '' : ',';
|
|
89
|
-
|
|
90
|
-
|
|
92
|
+
var price = money.split('.')[0] + '';
|
|
93
|
+
var pricePoint = money.split('.')[1];
|
|
91
94
|
result = price.length > 6 ?
|
|
92
|
-
|
|
95
|
+
"".concat(price.substring(0, price.length - 6)).concat(signal).concat(price.substring(price.length - 6, price.length - 3), ",").concat(price.substring(price.length - 3, price.length))
|
|
93
96
|
:
|
|
94
|
-
|
|
95
|
-
result = pricePoint ?
|
|
97
|
+
"".concat(price.substring(0, price.length - 3)).concat(signal).concat(price.substring(price.length - 3, price.length));
|
|
98
|
+
result = pricePoint ? "".concat(result).concat(signal).concat(pricePoint) : result;
|
|
96
99
|
return result;
|
|
97
|
-
}
|
|
100
|
+
};
|
|
98
101
|
/**
|
|
99
102
|
* 格式化手机号
|
|
100
103
|
* @param {string} number 手机号
|
|
101
104
|
* @returns {string} 格式化后的手机号 12345678901 -> 123 4567 8901
|
|
102
105
|
*/
|
|
103
|
-
formatPhoneNumber(number) {
|
|
104
|
-
|
|
106
|
+
NumberClass.prototype.formatPhoneNumber = function (number) {
|
|
107
|
+
var numStr = String(number).replace(/\s/g, '');
|
|
105
108
|
if (numStr.length < 11) {
|
|
106
109
|
return numStr;
|
|
107
110
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
return
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
111
|
+
var firstPart = numStr.slice(0, 3);
|
|
112
|
+
var secondPart = numStr.slice(3, 7);
|
|
113
|
+
var thirdPart = numStr.slice(7, 11);
|
|
114
|
+
return "".concat(firstPart, " ").concat(secondPart, " ").concat(thirdPart);
|
|
115
|
+
};
|
|
116
|
+
return NumberClass;
|
|
117
|
+
}());
|
|
118
|
+
exports.default = new NumberClass();
|