InspectionCleaning/utils/request.js

67 lines
2.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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