InspectionCleaning/utils/request.js

62 lines
1.8 KiB
JavaScript
Raw Normal View History

2025-04-07 09:30:11 +08:00
import BASE_URL from '@/api/env.js' //引入接口共用地址
import RequestManager from '@/utils/requestManager.js'
import {toast, clearStorageSync, getStorageSync, useRouter} from '@/utils/utils.js'
import systemConfig from '@/config/config.js';
const manager = new RequestManager()
const baseRequest = async (url, method, data = {}, loading = true) =>{
let requestId = manager.generateId(method, url, data)
if(!requestId) {
console.log('重复请求')
}
if(!requestId)return false;
const header = {}
header.Authorization = getStorageSync(systemConfig.token) || ''
return new Promise((reslove, reject) => {
loading && uni.showLoading({title: 'loading'})
uni.request({
url: BASE_URL + url,
method: method || 'GET',
header: header,
timeout: 10000,
data: data || {},
complete: ()=>{
uni.hideLoading()
manager.deleteById(requestId)
},
success: (successData) => {
//console.log(successData)
const res = successData.data
if(successData.statusCode == 200){
// 业务逻辑自行修改401是服务器上返回该token过期过期后跳转到登陆页面
if(res.code > 400){
clearStorageSync('token')
useRouter(systemConfig.login_page, 'reLaunch')
}else{
reslove(res)
}
}else{
console.log('网络连接失败,请稍后重试' ,url)
toast('网络连接失败,请稍后重试')
reject(res)
}
},
fail: (msg) => {
console.log("请求:"+BASE_URL + url +',发生错误:', err)
toast('网络连接失败,请稍后重试')
reject(msg)
}
})
})
}
const request = {};
['options', 'get', 'post', 'put', 'head', 'delete', 'trace', 'connect'].forEach((method) => {
request[method] = (api, data, loading) => baseRequest(api, method, data, loading)
})
export default request