首次完整推送,
V:1.20240808.006
This commit is contained in:
160
common/util.js
Normal file
160
common/util.js
Normal file
@ -0,0 +1,160 @@
|
||||
import permission from "./permission"
|
||||
|
||||
function formatTime(time) {
|
||||
if (typeof time !== 'number' || time < 0) {
|
||||
return time
|
||||
}
|
||||
|
||||
var hour = parseInt(time / 3600)
|
||||
time = time % 3600
|
||||
var minute = parseInt(time / 60)
|
||||
time = time % 60
|
||||
var second = time
|
||||
|
||||
return ([hour, minute, second]).map(function(n) {
|
||||
n = n.toString()
|
||||
return n[1] ? n : '0' + n
|
||||
}).join(':')
|
||||
}
|
||||
|
||||
function formatLocation(longitude, latitude) {
|
||||
if (typeof longitude === 'string' && typeof latitude === 'string') {
|
||||
longitude = parseFloat(longitude)
|
||||
latitude = parseFloat(latitude)
|
||||
}
|
||||
|
||||
longitude = longitude.toFixed(2)
|
||||
latitude = latitude.toFixed(2)
|
||||
|
||||
return {
|
||||
longitude: longitude.toString().split('.'),
|
||||
latitude: latitude.toString().split('.')
|
||||
}
|
||||
}
|
||||
var dateUtils = {
|
||||
UNITS: {
|
||||
'年': 31557600000,
|
||||
'月': 2629800000,
|
||||
'天': 86400000,
|
||||
'小时': 3600000,
|
||||
'分钟': 60000,
|
||||
'秒': 1000
|
||||
},
|
||||
humanize: function(milliseconds) {
|
||||
var humanize = '';
|
||||
for (var key in this.UNITS) {
|
||||
if (milliseconds >= this.UNITS[key]) {
|
||||
humanize = Math.floor(milliseconds / this.UNITS[key]) + key + '前';
|
||||
break;
|
||||
}
|
||||
}
|
||||
return humanize || '刚刚';
|
||||
},
|
||||
format: function(dateStr) {
|
||||
var date = this.parse(dateStr)
|
||||
var diff = Date.now() - date.getTime();
|
||||
if (diff < this.UNITS['天']) {
|
||||
return this.humanize(diff);
|
||||
}
|
||||
var _format = function(number) {
|
||||
return (number < 10 ? ('0' + number) : number);
|
||||
};
|
||||
return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDate()) + '-' +
|
||||
_format(date.getHours()) + ':' + _format(date.getMinutes());
|
||||
},
|
||||
parse: function(str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串,转化为一个Date对象
|
||||
var a = str.split(/[^0-9]/);
|
||||
return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);
|
||||
}
|
||||
};
|
||||
|
||||
// 验证并返回手机号或null
|
||||
function isPhone(phone) {
|
||||
var pattern = /^(?:(?:\+|00)86)?1(?:3\d|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8\d|9[189])\d{8}$/;
|
||||
|
||||
var regex = new RegExp(pattern);
|
||||
var res = regex.exec(phone);
|
||||
if (res) {
|
||||
return res[0];
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function tel(phone) {
|
||||
permission.requestAndroid('contact').then(
|
||||
(res) => {
|
||||
if (res !== 1) {
|
||||
uni.showModal({
|
||||
title: '权限申请',
|
||||
content: '拨打电话需要您的授权',
|
||||
success: function(res) {
|
||||
if (res.confirm) {
|
||||
permission.gotoAppSetting();
|
||||
} else if (res.cancel) {
|
||||
// console.log('用户点击取消');
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: phone
|
||||
})
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
const captcha = {
|
||||
ls: 'LocalCaptcha',
|
||||
get: function(scence = 'vcode', useLetter = 'false') {
|
||||
let digits = '0123456789';
|
||||
let upperCaseLetters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
let code = '',
|
||||
charType = digits;
|
||||
for (let i = 0; i < 4; i++) {
|
||||
// 随机选择生成数字还是大写字母
|
||||
if (useLetter === true) charType = Math.random() < 0.5 ? digits : upperCaseLetters;
|
||||
code += charType[Math.floor(Math.random() * charType.length)];
|
||||
}
|
||||
var codes = uni.getStorageSync(this.ls) || {};
|
||||
codes[scence] = code;
|
||||
uni.getStorageSync(this.ls, codes);
|
||||
return code;
|
||||
},
|
||||
|
||||
check: function(scence = 'vcode', code) {
|
||||
var codes = uni.getStorageSync(this.ls) || {};
|
||||
if (codes[scence] === code) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
pop: function(scence = 'vcode', useLetter = 'false') {
|
||||
var code = this.get(scence, useLetter);
|
||||
uni.showModal({
|
||||
title: '请输入数字 ' + code + ' 验证',
|
||||
editable: true,
|
||||
success: function(res) {
|
||||
if (res.confirm) {
|
||||
// console.log('数字码', res.content)
|
||||
if (res.content === code) return true;
|
||||
return false;
|
||||
} else if (res.cancel) {
|
||||
// console.log('用户点击取消');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
export default {
|
||||
formatTime,
|
||||
formatLocation,
|
||||
dateUtils,
|
||||
tel,
|
||||
captcha,
|
||||
isPhone
|
||||
}
|
Reference in New Issue
Block a user