2025-06-06 03:08:19 +08:00

225 lines
5.3 KiB
JavaScript

// #ifdef APP-PLUS
import { judgePermission } from './permission'
// #endif
/**
* 时间转换为XX前
*/
export const clickDateDiff = function (value) {
var result;
var minute = 1000 * 60;
var hour = minute * 60;
var day = hour * 24;
var month = day * 30;
var now = new Date().getTime();
var diffValue = parseInt(now) - parseInt(value);
if (diffValue < 0) {
return;
}
var monthC = diffValue / month;
var weekC = diffValue / (7 * day);
var dayC = diffValue / day;
var hourC = diffValue / hour;
var minC = diffValue / minute;
if (monthC >= 1) {
result = "" + parseInt(monthC) + '月前';
} else if (weekC >= 1) {
result = "" + parseInt(weekC) + '周前';
} else if (dayC >= 1) {
result = "" + parseInt(dayC) + '天前';
} else if (hourC >= 1) {
result = "" + parseInt(hourC) + '小时前';
} else if (minC >= 1) {
result = "" + parseInt(minC) + '分钟前';
} else {
result = '刚刚';
}
return result;
};
/**
* 时间戳转换为想要的时间格式
*/
//时间戳转换为时间 format('yyyy-MM-dd hh:mm:ss')
//时间格式转换
Date.prototype.format = function (fmt = 'yyyy-MM-dd hh:mm:ss') { //author: meizz
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[
k]).substr(("" + o[k]).length)));
return fmt;
}
// 保存图片
let settingWritePhotosAlbum = false;
export const saveImg = function(url,callback) {
if (url) {
// #ifdef MP-WEIXIN
if (settingWritePhotosAlbum) {
uni.getSetting({
success: res => {
if (res.authSetting['scope.writePhotosAlbum']) {
uni.downloadFile({
url: url,
success: data => {
if (data.statusCode == 200) {
uni.saveImageToPhotosAlbum({
filePath: data.tempFilePath,
success: () => {
callback && callback();
uni.showToast({
title: '保存成功'
});
}
});
}
}
});
} else {
uni.showModal({
title: '提示',
content: '请先在设置页面打开“保存相册”使用权限',
confirmText: '去设置',
cancelText: '算了',
success: data => {
if (data.confirm) {
uni.openSetting();
}
}
});
}
}
});
} else {
settingWritePhotosAlbum = true;
uni.authorize({
scope: 'scope.writePhotosAlbum',
success: () => {
uni.downloadFile({
url: url,
success: data => {
if (data.statusCode == 200) {
uni.saveImageToPhotosAlbum({
filePath: data.tempFilePath,
success: () => {
callback && callback();
uni.showToast({
title: '保存成功'
});
}
});
}
}
});
}
});
}
// #endif
// #ifdef H5
uni.downloadFile({
url: url,
success: data => {
if (data.statusCode == 200) {
callback && callback();
window.open(data.tempFilePath);
}
}
});
// #endif
// #ifdef APP-PLUS
uni.saveImageToPhotosAlbum({
filePath: url,
success: () => {
callback && callback();
uni.showToast({
title: '保存成功'
});
}
});
// #endif
} else {
uni.showToast({
title: '未找到图片',
icon: 'none'
});
}
};
// 微信小程序获取定位权限判断
function wxAppletsLocation(successCallback, errCallback) {
uni.getSetting({
success: res => {
if (res.authSetting['scope.userLocation']) {
uni.getLocation({
type: 'gcj02',
success: res => {
successCallback(res);
},
fail: (err) => {
console.log("位置信息错误", err);
errCallback("位置信息获取失败");
}
});
} else {
errCallback("“位置信息”未授权");
uni.showModal({
title: '提示',
content: '请先在设置页面打开“位置信息”使用权限',
confirmText: '去设置',
cancelText: '再逛会',
success: res => {
if (res.confirm) {
uni.openSetting();
}
}
});
}
}
});
}
// 获取地址信息
let locationAuthorize = true;
export const getAppWxLatLon = function(successCallback, errCallback) {
const _this = this;
// #ifdef MP
if (locationAuthorize) {
uni.authorize({
scope: 'scope.userLocation',
success: () => {
wxAppletsLocation(successCallback, errCallback);
locationAuthorize = false;
},
fail: () => {
locationAuthorize = false;
}
});
} else {
wxAppletsLocation(successCallback, errCallback);
}
// #endif
// #ifdef APP-PLUS
judgePermission("location", function(result) {
if (result == 1) {
uni.getLocation({
type: 'gcj02',
success: res => {
// store.commit("setCurrentAddress", {
// latitude: res.latitude,
// longitude: res.longitude
// });
successCallback(res);
},
fail: (err) => {
console.log("位置信息错误", err);
errCallback("位置信息获取失败");
}
});
}
});
// #endif
}