2025-08-01 11:39:06 +08:00

239 lines
4.8 KiB
JavaScript

/**
* API接口封装
*/
import configs from './config.js';
//选择文件
function chooseFile(count, success) {
// #ifdef MP-WEIXIN
uni.chooseMedia({
count: count > 9 ? 9 : count,
mediaType: ['image', 'video'],
sourceType: ['album', 'camera'],
sizeType: ['compressed'],
maxDuration: 30,
camera: 'back',
success(res) {
let files = res.tempFiles;
typeof success === 'function' && success(files);
}
})
// #endif
// #ifdef MP-ALIPAY
uni.chooseImage({
count: count > 9 ? 9 : count, //默认9
sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], //从相册选择
success: function(res) {
let files = res.tempFilePaths;
typeof success === 'function' && success(files);
}
});
// #endif
}
//气泡提醒
function toast(msg) {
uni.showToast({
title: msg,
icon: 'none',
})
}
//弹窗提醒
function modal(title, content, success, showCancel = true, cancelText = '取消', confirmText = '确定') {
uni.showModal({
title: title || '温馨提示',
content: content || '确定此操作么?',
showCancel: showCancel,
cancelText: cancelText,
confirmText: confirmText,
success: function(res) {
typeof success === 'function' && success(res);
}
})
}
//设置缓存
function setCache(key, value, expireTime = 0) {
let field = (configs.brand_key || 'xilufitness') + '_' + key;
let timeStamp = (expireTime == 0) ? 0 : parseInt((new Date().getTime()) / 1000) + parseInt(86400 * expireTime);
let data = {
value: value,
expireTime: timeStamp
};
return uni.setStorageSync(field, data);
}
//读取缓存
function getCache(key) {
let field = (configs.brand_key || 'xilufitness') + '_' + key;
let value = uni.getStorageSync(field);
if (value.expireTime == 0) {
return value.value;
} else {
let timeStamp = parseInt((new Date().getTime()) / 1000);
if (parseInt(timeStamp) > parseInt(value.expireTime)) {
delCache(key);
return null;
}
return value.value;
}
}
//删除缓存
function delCache(key = '') {
let field = (configs.brand_key || 'xilufitness') + '_' + key;
return uni.removeStorageSync(field);
}
//清楚缓存
function clearCache() {
return uni.clearStorageSync();
}
//定位
function getLocation(success) {
uni.getLocation({
type: 'gcj02',
complete(res) {
(typeof success === 'function') && success(res);
}
})
}
//打开地图
function openLocation(lat, lng, success, fail) {
uni.openLocation({
latitude: parseFloat(lat),
longitude: parseFloat(lng),
success(res) {
typeof success === 'function' && success(res);
},
fail(error) {
console.log('openLocationError', error);
toast('地图打开失败');
typeof fail === 'function' && fail(error);
}
})
}
function redirect(url, success) {
uni.redirectTo({
url: url,
success: function(res) {
typeof success === 'function' && success(res);
}
})
}
function navigate(url, success) {
uni.navigateTo({
url: url,
success: (res) => {
typeof success === 'function' && success(res);
}
})
}
function switchTab(url, success) {
uni.switchTab({
url: url,
success: (res) => {
typeof success === 'function' && success(res);
}
})
}
function back(backTime = 0, delta = 1, success) {
setTimeout(function() {
uni.navigateBack({
delta: delta,
success: (res) => {
typeof success === 'function' && success(res);
}
});
}, backTime);
}
function reLaunch(url, success) {
uni.reLaunch({
url: url,
success: (res) => {
typeof success === 'function' && success(res);
}
})
}
function showBarLoading() {
uni.showNavigationBarLoading();
}
function hideBarLoading() {
uni.hideNavigationBarLoading();
}
function setNavigateTitle(title = '') {
uni.setNavigationBarTitle({
title: title
})
}
function scanCode(success,fail) {
uni.scanCode({
success: function(res) {
typeof success === 'function' && success(res);
},
fail:function(error){
typeof fail === 'function' && fail(error);
}
})
}
function toPay(data, order_type, success, fail) {
let provider = null;
// #ifdef MP-WEIXIN
provider = 'wxpay';
// #endif
uni.requestPayment({
provider: provider,
timeStamp: data.timeStamp,
nonceStr: data.nonceStr,
package: data.package,
signType: data.signType,
paySign: data.paySign,
success(res) {
typeof success === 'function' && success(res);
},
fail(error) {
toast('支付失败');
typeof fail === 'function' && fail(error);
}
})
}
export default {
chooseFile: chooseFile,
toast: toast,
modal: modal,
setCache: setCache,
getCache: getCache,
delCache: delCache,
clearCache: clearCache,
getLocation: getLocation,
openLocation: openLocation,
redirect: redirect,
navigate: navigate,
switchTab: switchTab,
back: back,
reLaunch: reLaunch,
showBarLoading: showBarLoading,
hideBarLoading: hideBarLoading,
toPay: toPay,
scanCode: scanCode,
setNavigateTitle: setNavigateTitle
}