159 lines
3.1 KiB
JavaScript
159 lines
3.1 KiB
JavaScript
|
|
/**
|
|
* Web唐明明
|
|
* 匆匆数载恍如梦,岁月迢迢华发增。
|
|
* 碌碌无为枉半生,一朝惊醒万事空。
|
|
*/
|
|
|
|
import store from '@/store'
|
|
|
|
// 基础配置
|
|
const config = {
|
|
apiUrl : 'http://api.ahxh.shangkelian.cn/api/',
|
|
timeout : 60000
|
|
}
|
|
|
|
let loginHintState = false
|
|
|
|
// 网络请求
|
|
const request = (parameter) => {
|
|
// 检查url配置
|
|
if(parameter.url === 'undefined' || parameter.url === ''){
|
|
uni.showToast({
|
|
title: '请求地址不能为空',
|
|
icon : 'none'
|
|
})
|
|
return
|
|
}
|
|
// 注入header
|
|
config.header = {
|
|
'Accept': 'application/json',
|
|
'Authorization': store.getters.getToken || ''
|
|
}
|
|
|
|
console.log('parameterDbug', parameter)
|
|
|
|
// 加载提示
|
|
uni.showLoading({
|
|
title: '加载中',
|
|
mask : true
|
|
});
|
|
// 请求实例
|
|
return new Promise((resolve, reject) => {
|
|
uni.request({
|
|
url : config.apiUrl + parameter.url,
|
|
timeout : config.timeout,
|
|
header : config.header || {},
|
|
data : parameter.data || {},
|
|
method : parameter.method || 'GET',
|
|
success : res => {
|
|
if (res.header.Authorization){
|
|
updateToken('token', res.header.Authorization)
|
|
}
|
|
if(res.statusCode === 200){
|
|
uni.hideLoading()
|
|
const resolveData = res.data
|
|
if(resolveData.status_code === 200) {
|
|
resolve(resolveData.data)
|
|
return
|
|
}
|
|
if(resolveData.status_code === 401) {
|
|
loginHint()
|
|
return
|
|
}
|
|
reject(resolveData)
|
|
return
|
|
}
|
|
errToast(res.statusCode)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
// 文件上传
|
|
const uploading = (paths) => {
|
|
uni.showLoading({
|
|
title: '上传中',
|
|
mask : true
|
|
});
|
|
// 注入header
|
|
config.header = {
|
|
'Accept': 'application/json',
|
|
'Authorization': store.getters.getToken || ''
|
|
}
|
|
// 上传图片
|
|
return new Promise((resolve, reject) => {
|
|
uni.uploadFile({
|
|
url : config.apiUrl + 'storage/uploads',
|
|
files : paths,
|
|
header : config.header || {},
|
|
success : res=>{
|
|
if(res.statusCode === 200){
|
|
uni.hideLoading()
|
|
let updData = JSON.parse(res.data)
|
|
if(updData.status_code === 200){
|
|
resolve(updData.data)
|
|
return
|
|
}
|
|
reject(updData)
|
|
return
|
|
}
|
|
errToast(res.statusCode)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
// 处理一些http请求错误提示
|
|
const errToast = (code) => {
|
|
switch (code){
|
|
case 404:
|
|
uni.showToast({
|
|
title: code + '接口不存在,请联系系统管理员',
|
|
icon : 'none'
|
|
})
|
|
break;
|
|
case 405:
|
|
uni.showToast({
|
|
title: code + '请检查接口请求方式错误',
|
|
icon : 'none'
|
|
})
|
|
break;
|
|
case 500:
|
|
uni.showToast({
|
|
title: code + '服务端错误,请检查服务器信息',
|
|
icon : 'none'
|
|
})
|
|
break;
|
|
}
|
|
}
|
|
|
|
// 更新token
|
|
const updateToken = (token) => {
|
|
store.commit('setToken', token)
|
|
}
|
|
|
|
// 处理登录提示
|
|
const loginHint = () => {
|
|
if( loginHintState ) return
|
|
if(!loginHintState) loginHintState = true
|
|
updateToken('')
|
|
uni.showModal({
|
|
title: '登录提示',
|
|
content: '您的登录信息已过期,请重新登录',
|
|
confirmColor: '#009B69',
|
|
showCancel:false,
|
|
success: res=> {
|
|
loginHintState = false
|
|
if (res.confirm) uni.reLaunch({
|
|
url: '/pages/equity/index'
|
|
})
|
|
}
|
|
})
|
|
}
|
|
|
|
export {
|
|
request,
|
|
uploading
|
|
}
|