import permision from "@/js_sdk/wa-permission/permission.js"
import cryptoJs from 'crypto-js'
let tools = {}
/**
* 大小判断
* @param a
* @param b
* @returns {number}
*/
tools.sortNumber = function (a, b) {
return a - b;
}
/**
* 保留两位小数
* @param num
* @returns {string}
*/
tools.twoFloating = function (num) {
// 获取两位小数
let price = "";
price = num * 1;
price = String(price).split(".")[1];
if (price !== undefined && price.length === 1) {
price = `.${price}0`;
} else {
price === undefined ? (price = ".00") : (price = `.${price}`);
}
return price;
}
tools.formatDecimal = function (num, decimal) {
num = num.toString()
let index = num.indexOf('.')
if (index !== -1) {
num = num.substring(0, decimal + index + 1)
} else {
num = num.substring(0)
}
return parseFloat(num).toFixed(decimal)
}
/**
* 错误提示
* @param msg
*/
tools.error = function (msg,icon='error') {
uni.showToast({
'title': msg,
'icon': icon,
'mask': true,
'duration': 1500
})
}
/**
* 成功提示
* @param msg
*/
tools.success = function (msg,icon='success') {
uni.showToast({
'title': msg,
'icon': icon,
'mask': true,
'duration': 1500
})
}
/**
* 显示Loading
*/
tools.showLoading = function () {
uni.showLoading({
title: '加载中...',
mask: true
});
}
/**
* 关闭Loading
*/
tools.hideLoading = function () {
uni.hideLoading();
}
/**
* 获取时间戳(毫秒)
* @returns {number}
*/
tools.getTime = function () {
return new Date().getTime();
}
tools.getCountDays=function (date){
let curDate = new Date(date);
// 获取当前月份
curDate.setDate(32);
// 返回当前月份的天数
return 32-curDate.getDate();
}
/**
* 获取当前年
* @returns {number}
*/
tools.getYear=function (){
return new Date().getFullYear()
}
tools.updateVersion = function (sysVersion, appUrl) {
let app_version = plus.runtime.version;
console.log('版本号信息对比------------------------------' + app_version + '---------' + sysVersion)
console.log(app_version < sysVersion)
if (app_version < sysVersion) {
uni.showLoading({
title: '更新中……'
})
uni.downloadFile({//执行下载
url: appUrl, //下载地址
success: (downloadResult) => {//下载成功
uni.hideLoading();
if (downloadResult.statusCode === 200) {
uni.showModal({
title: '',
content: '更新成功,确定现在重启吗?',
confirmText: '重启',
confirmColor: '#EE8F57',
success: function (res) {
if (res.confirm === true) {
plus.runtime.install(//安装
downloadResult.tempFilePath, {
force: true
},
function (res) {
tools.success('更新成功,重启中')
plus.runtime.restart();
}
);
}
}
});
}
}
});
} else {
// tools.success('你已是最新版本')
}
}
/**
* uniapp html图片显示控制
* @param str
* @returns {*}
*/
tools.imgDeal = function (str) {
console.log(str)
if(str===null || str===undefined){
return '';
}else {
return str.replace(/\}
*/
tools.getIosPermission = async function(permissionName) {
let ret = await permision.judgeIosPermission(permissionName);
console.log(ret)
return ret;
}
/**
* 获取开发平台
* @returns {string}
*/
tools.getPlatform = function () {
let platForm = undefined;
// #ifdef H5
platForm = 'H5';
//#endif
// #ifdef APP-PLUS
platForm = 'APP';
//#endif
// #ifdef APP-PLUS-NVUE
platForm = 'APP';
//#endif
// #ifdef APP-NVUE
platForm = 'APP';
//#endif
// #ifdef MP-WEIXIN
platForm = 'MP-WEIXIN'; // 小程序
//#endif
// #ifdef MP-ALIPAY
platForm = 'MP-ALIPAY';
//#endif
// #ifdef MP-BAIDU
platForm = 'MP-BAIDU';
//#endif
// #ifdef MP-TOUTIAO
platForm = 'MP-TOUTIAO';
//#endif
// #ifdef MP-LARK
platForm = 'MP-LARK';
//#endif
// #ifdef MP-QQ
platForm = 'MP-QQ';
//#endif
// #ifdef MP-KUAISHOU
platForm = 'MP-KUAISHOU';
//#endif
// #ifdef QUICKAPP-WEBVIEW
platForm = 'QUICKAPP-WEBVIEW';
//#endif
return platForm;
}
tools.leftClick = function () {
let pages = getCurrentPages();
if (pages.length > 1) {
uni.navigateBack({
delta: 1
})
} else {
uni.reLaunch({
url: '/pages/index/index'
});
}
}
tools.getDate = function (date) {
let myDate = new Date();
// let myYear = myDate.getFullYear(); //获取完整的年份(4位,1970-????)
// let myMonth = myDate.getMonth() + 1; //获取当前月份(0-11,0代表1月)
// let myToday = myDate.getDate(); //获取当前日(1-31)
// let myDay = myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
// let myHour = myDate.getHours(); //获取当前小时数(0-23)
// let myMinute = myDate.getMinutes(); //获取当前分钟数(0-59)
// let mySecond = myDate.getSeconds(); //获取当前秒数(0-59)
return myDate.getFullYear() + '-' + (myDate.getMonth() + 1) + '-' + myDate.getDate()
}
tools.getDateArr = function (date) {
let myDate = new Date(date);
let myYear = myDate.getFullYear(); //获取完整的年份(4位,1970-????)
let myMonth = myDate.getMonth() + 1; //获取当前月份(0-11,0代表1月)
let myToday = myDate.getDate(); //获取当前日(1-31)
return [myYear, myMonth>9?myMonth:'0'+myMonth , myToday>9?myToday:'0'+myToday]
}
tools.getRandFileName = function (filePath)
{
let extIndex = filePath.lastIndexOf('.');
let extName = extIndex === -1 ? '' : filePath.substr(extIndex);
return parseInt('' + Date.now() + Math.floor(Math.random() * 900 + 100), 10).toString(36) + extName;
}
/**
* 自定义 获取指定日期到当前日期的 所有年 or 年月
*/
tools.getCustomTimeList = (start,end,type)=>{
let timeList = [];
let s = start.split("-");
let e = end.split("-");
let min = new Date()
let max = new Date()
min.setFullYear(s[0], s[1]);
max.setFullYear(e[0], e[1]);
var curr = min;
var str = "";
while (curr <= max) {
var yers = curr.getFullYear();
var month = curr.getMonth();
if(type === 'y-m'){
if (month === 0) {
str = (yers - 1) + "-" + 12;
} else {
str = yers + "-" + (month < 10 ? ("0" + month) : month);
}
timeList.push(str);
curr.setMonth(month + 1);
}else if(type === 'y'){
if (month === 0) {
str = (yers - 1)
} else {
str = yers
}
timeList.push(str);
curr.setMonth(month + 1);
}else{}
}
if(type === 'y-m'){
return timeList.reverse()
}else{
let list = Array.from(new Set(timeList))
return list.reverse()
}
}
// 获取 当前 年-月 配合 getCustomTimeList 使用 获取end
tools.getDateYM = ()=>{
let DATE = new Date()
let Y = DATE.getFullYear()
let M = DATE.getMonth() + 1
return Y + '-' + (M<10?'0'+M:M)
}
/**
* 记录用户登录信息
* @param data
* @param type
*/
tools.setLoginData = function (data) {
uni.setStorageSync('user_id', data.user_id)
uni.setStorageSync('token', data.access_token)
uni.setStorageSync('tokenType', data.token_type)
uni.setStorageSync('refreshToken', data.access_token)
uni.setStorageSync('mobile', data.username)
uni.setStorageSync('userId', data.user_id)
tools.success('登陆成功')
// setTimeout(() => {
// if (data.status * 1 === 0) {
// //审核状态跳转至待审核页面
// uni.reLaunch({
// url: '/pages/login/module/await-audit'
// });
// } else {
// uni.reLaunch({
// url: '/pages/index/home'
// });
// }
// }, 1500)
}
tools.addQueryString=function (params) {
let str = '';
for (let Key in params) {
str += Key + '=' + params[Key] + '&';
}
return '?' + str;
//return '?' + str.substr(0, str.length -1); 严谨一些
}
tools.setCosToken=function (data){
uni.setStorageSync('cosToken',data)
}
tools.delCosToken=function (data){
uni.removeStorageSync('cosToken')
}
/**
* 定位经纬度
* @returns {Promise}
*/
tools.getLocation=async function (){
return new Promise((resolve, reject)=>{
//#ifdef APP-PLUS
let locationData= uni.getStorageSync('locationData')
console.log('locationData:',locationData)
if(locationData){
resolve(locationData);
}else {
console.log('执行获取')
uni.getLocation({
type: 'gcj02',
success:async function (res) {
console.log('当前位置的经度:' + res.longitude);
console.log('当前位置的纬度:' + res.latitude);
resolve({'longitude':res.longitude,'latitude':res.latitude});
},
fail:async function (e) {
console.log(e)
resolve( {'longitude':"121.631691",'latitude':'38.922691'});
}
});
}
//#endif
//#ifdef H5
resolve( {'longitude':"121.631691",'latitude':'38.922691'});
//#endif
})
}
/**
* 计算距离
* @returns {Promise}
*/
tools.getDistance=async function (lat1, lng1){
let locationData=await tools.getLocation()
let lat2=locationData.latitude
let lng2=locationData.longitude
let radLat1 = lat1*Math.PI / 180.0;
let radLat2 = lat2*Math.PI / 180.0;
let a = radLat1 - radLat2;
let b = lng1*Math.PI / 180.0 - lng2*Math.PI / 180.0;
let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
s = s *6378.137 ;// EARTH_RADIUS;
s = Math.round(s * 10000) / 10000;
return s;
}
/**
* 查看大图
* @param list
* @param index
*/
tools.lookBigImg = function (list, index) {
uni.previewImage({
current: index,//当前所点击预览的图片地址
urls: list,//这就是当前行图片数据,注意一定要是数组格式
indicator: 'number',
loop: true
});
}
/**
* 计算年龄
* @param birthYearMonthDay
* @returns {number}
*/
tools.getAge=function (birthYearMonthDay) {
birthYearMonthDay=birthYearMonthDay.replace('-','/')
//birthYearMonthDay必须为"1995/6/15"这种字符串格式,不可为"2020-6-15",这种格式在Safari中会报错
const birthDate = new Date(birthYearMonthDay);
const momentDate = new Date();
momentDate.setHours(0, 0, 0, 0); //因为new Date()出来的时间是当前的时分秒。我们需要把时分秒重置为0。使后面时间比较更精确
const thisYearBirthDate = new Date(
momentDate.getFullYear(),
birthDate.getMonth(),
birthDate.getDate()
);
const aDate = thisYearBirthDate - birthDate;
const bDate = momentDate - birthDate;
let tempAge = momentDate.getFullYear() - birthDate.getFullYear();
let age = null;
if (bDate < aDate) {
tempAge = tempAge - 1;
age = tempAge < 0 ? 0 : tempAge;
} else {
age = tempAge;
}
return age;
}
/**
* 获取costoken
* @returns {{expiredTime}|any|undefined}
*/
tools.getCosToken=function (){
let cosToken= uni.getStorageSync('cosToken')
if(!cosToken){
return undefined
}
let time=new Date().getTime()
if(cosToken.expiredTime && (cosToken.expiredTime*1000)-time >100000){
return cosToken
}else {
return undefined
}
}
/**
* 封装文件结构
* @param url
* @param type
* @returns {{serverSideEncryption: string, location, type: (string), version: string, hash: string}}
*/
tools.setFileObj=function (url,type){
url= url.replace('https://','')
url= url.replace('http://','')
url= url.replace('icoco-1317650740.cos.ap-guangzhou.myqcloud.com/','')
let hash=tools.setHash(url)
console.log('hash')
return {
"location":url,
"hash":hash,
"version":"1.0",
"type":type===1?"PHOTO":"V",
"serverSideEncryption":"AES256"
}
}
tools.setHash=function (str){
let sha256 = cryptoJs.SHA256(str);
return sha256.toString();
}
export default tools