filesbox/miniprogram/FilesBox/utils/service.js
2023-09-21 10:23:31 +08:00

115 lines
3.6 KiB
JavaScript

import {
STATIC_DOMAIN,
} from './config.js';
import {
encodeReqParams,
genUuid,
} from './util';
// 网络请求
const req = (method, url, params = {}, data = {}, noSecondLevelDomain = true, isOtherInfo = false, header = {}) => {
const DOMAIN = wx.getStorageSync('DOMAIN')
const isStaticDomain = /\.json/.test(url);
url = isStaticDomain ? STATIC_DOMAIN + url : DOMAIN + url;
if (params) url += encodeReqParams(params);
const token = wx.getStorageSync('token')
if (token) header.token = token;
return new Promise((resolve, reject) => {
wx.request({
method,
url,
data,
header,
success: res => {
if (isStaticDomain) { // 静态资源
if (res.statusCode === 200) {
resolve(res.data);
} else {
reject(res);
}
} else { // 普通接口
if (res.data.success === true) {
resolve(res.data.data);
} else if (res.data.code === '401') {
resolve(res.data.data);
}else if(res.data.code === 'user.bindSignError'){
wx.redirectTo({
url: '/pages/accountLogin/accountLogin',
})
} else {
reject(res.data);
// logError(res.data.message)
}
}
},
fail: err => {
reject(err);
console.log('err--', err)
if(err.errMsg=='request:fail '||err.errMsg=='request:fail url not in domain list'){
wx.showToast({
title: '服务器地址不正确',
icon:'none'
})
}else{
wx.redirectTo({
url: '/pages/accountLogin/accountLogin',
})
}
}
});
});
};
const logError = function (message) {
let newDateTime = (new Date()).valueOf();
let sign = `bc54f4d60f1cec0f9a6cbminiprograma@1009a3b6b428a27bb82694be337b66cc@${newDateTime}@4`
sign = md5(sign);
const DOMAIN = wx.getStorageSync('DOMAIN')
wx.request({
url: DOMAIN + URL.logError,
method: 'put',
header: {
APPID: 'bc54f4d60f1cec0f9a6cbminiprograma',
LOGTOKEN: sign
},
data: {
clientTime: newDateTime,
clientType: 4,
message: message
},
success: (res) => {
// console.log('报错日志', res.data)
}
})
};
// 上传文件
const uploadFile = (url, filePath, formData, name = 'file', sourceID = '') => {
const DOMAIN = wx.getStorageSync('DOMAIN')
let header = {};
if (sourceID) formData.sourceID = sourceID;
const token = wx.getStorageSync('token')
if (token) header.token = token;
return new Promise((resolve, reject) => {
wx.uploadFile({
url: DOMAIN + url,
filePath,
formData,
name,
header,
success: res => {
const data = JSON.parse(res.data);
if (res.statusCode ==200) {
resolve(data.data);
} else {
reject(res);
// console.log(res)
// logError(res.data.message)
}
},
fail: err => {
reject(err);
}
});
});
};
module.exports = {
req,uploadFile
};