67 lines
2.3 KiB
JavaScript
67 lines
2.3 KiB
JavaScript
|
||
|
||
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()
|
||
|
||
|
||
// 先写死调接口
|
||
uni.setStorageSync('token', 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9zaWQiOiIwOGRkNzFiZC01N2MxLTQ1YmMtODBiYS0xMjkzYjU4MTViMmEiLCJ1bmlxdWVfbmFtZSI6IuS_nea0gSIsInJvbGUiOiJVc2VyIiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbW9iaWxlcGhvbmUiOiIxODE3NDAxMDU2MiIsImdyb3Vwc2lkIjoiNGIyZDk2NjItYTc2OC0wOGYyLWEwYzgtNzYyYjhjNzZkYTJhIiwibmJmIjoxNzQ0MTc1MjA2LCJleHAiOjE3NDQxNzg4MDYsImlhdCI6MTc0NDE3NTIwNn0.1qDnEAJH-bJlEr1wbwjTfqLY9xAyJKzf6bmLP6svUNo')
|
||
|
||
|
||
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 |