import $config from '@/config.js'
import $store from '@/common/store/index.js'
export default function http(param) {
// 封装的请求拦截的配置项
const config = {
baseUrl: $config.gateway, // 请求的本域名,网关地址,在config中设置的网关
method: param.method,
// 设置为json,返回后会对数据进行一次JSON.parse()
dataType: 'json',
loadingMask: true, // 展示loading的时候,是否给一个透明的蒙层,防止触摸穿透
// 配置请求头信息
header: {
'content-type': 'application/json;charset=UTF-8',
'Form-type': 'app'
},
}
if (param.needToken) {
let token = uni.getStorageSync('token')
config.header['Authori-zation'] = "Bearer " + token
}
return new Promise((resolve, reject) => {
uni.showLoading({
title: '加载中',
mask: true
})
uni.request({
url: config.baseUrl + param.url,
method: config.method,
dataType: config.dataType,
data: param.params,
header: config.header,
sslVerify: false,
success(response) {
// console.log(response)
if (response.statusCode == 200) {
resolve(response)
if (response.data.code == 400003) {
uni.showToast({
title: '请登录,1秒后自动跳转登录',
icon: 'none'
});
// 清除缓存
uni.removeStorage({
key: 'isLogin'
});
uni.removeStorage({
key: 'token'
});
uni.removeStorage({
key: 'userInfo'
});
uni.clearStorage();
setTimeout(() => {
uni.reLaunch({
url: '/pages/login/index'
})
}, 1500)
}
if (response.data.msg == '请登录') {
uni.showToast({
title: '请登录,1秒后自动跳转登录',
icon: 'none'
});
// 清除缓存
uni.removeStorage({
key: 'isLogin'
});
uni.removeStorage({
key: 'token'
});
uni.removeStorage({
key: 'userInfo'
});
uni.clearStorage();
setTimeout(() => {
uni.reLaunch({
url: '/pages/login/index'
})
}, 1500)
}
} else if (response.statusCode == 401) {
// // #ifdef MP-WEIXIN
// wxMPLogin()
// // #endif
// // #ifdef H5
// wxH5Login(false, 401)
// // #endif
// // #ifdef APP-PLUS
// //清除缓存
// //改变登录状态
// $store.commit('changeLogin', false);
// //用户信息为空
// $store.commit('setUserInfo', {});
// uni.navigateTo({
// url: '/pages/loginAgreement/loginAgreement'
// })
// // #endif
} else if (response.statusCode == 500) {
console.log('500错误');
uni.showToast({
title: '接口出错了,请稍后再试',
icon: 'none'
});
} else if (response.statusCode == 400) {
console.log('400错误');
uni.showToast({
title: '接口出错了,请稍后再试',
icon: 'none'
});
} else if (response.statusCode == 400003) {
uni.showToast({
title: '请登录,1秒后自动跳转登录',
icon: 'none'
});
// 清除缓存
uni.removeStorage({
key: 'isLogin'
});
uni.removeStorage({
key: 'token'
});
uni.removeStorage({
key: 'userInfo'
});
setTimeout(() => {
uni.reLaunch({
url: '/pages/login/index'
})
}, 1500)
}
uni.hideLoading();
},
fail(err) {
console.log('interceptor-fail', err)
setTimeout(function() {
uni.hideLoading();
}, 5000);
},
complete() {}
})
})
}
0 个回复