|
|
|
import config from '@/config/request'
|
|
|
|
let HTTP_COUNT = 0 // loading次数
|
|
|
|
|
|
|
|
const request = options => {
|
|
|
|
HTTP_COUNT++
|
|
|
|
if (config.showLoading) {
|
|
|
|
// 请求数据时的loading
|
|
|
|
uni.showToast({
|
|
|
|
title: '加载中',
|
|
|
|
duration: 200,
|
|
|
|
icon: 'loading'
|
|
|
|
})
|
|
|
|
}
|
|
|
|
const header = Object.assign({}, config.headers, {
|
|
|
|
token: uni.getStorageSync('token')
|
|
|
|
})
|
|
|
|
const otherUrl = ['generateInvitationCode', 'weChatAppletCallback', 'userBinding', 'getUserRolesPermissionMenu']
|
|
|
|
return new Promise((resolve, reject)=>{
|
|
|
|
const { url } = options
|
|
|
|
uni.request({
|
|
|
|
header,
|
|
|
|
url: (otherUrl.find(e => url.includes(e)) ? 'http://192.168.31.137:9000/' : config.baseURL) + url,
|
|
|
|
method: options.method || 'GET', // 请求类型,默认为GET
|
|
|
|
data: options.data || {}, // 请求参数,默认空对象
|
|
|
|
success: ({ data }) => {
|
|
|
|
const { status, message } = data
|
|
|
|
// 状态判断,根据后台定义并提示
|
|
|
|
if (status === 200) {
|
|
|
|
resolve(data)
|
|
|
|
} else if (status == 401) {
|
|
|
|
// 登录过期
|
|
|
|
uni.clearStorageSync()
|
|
|
|
uni.showToast({
|
|
|
|
title: message,
|
|
|
|
icon: 'none'
|
|
|
|
})
|
|
|
|
setTimeout(() => {
|
|
|
|
uni.navigateTo({
|
|
|
|
url: '../login/login'
|
|
|
|
})
|
|
|
|
}, 1500)
|
|
|
|
reject(data)
|
|
|
|
} else if (!status) {
|
|
|
|
resolve(data)
|
|
|
|
} else {
|
|
|
|
uni.showToast({
|
|
|
|
title: message,
|
|
|
|
icon: 'none'
|
|
|
|
})
|
|
|
|
reject(data)
|
|
|
|
}
|
|
|
|
},
|
|
|
|
fail: err => {
|
|
|
|
uni.showToast({
|
|
|
|
title: '请求失败!',
|
|
|
|
icon: 'none'
|
|
|
|
})
|
|
|
|
reject(err)
|
|
|
|
},
|
|
|
|
complete: () => {
|
|
|
|
if (config.showLoading) {
|
|
|
|
HTTP_COUNT--
|
|
|
|
HTTP_COUNT || uni.hideLoading()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
const get = (url, data, options = {}) => {
|
|
|
|
options.method = 'GET'
|
|
|
|
options.data = data
|
|
|
|
options.url = url
|
|
|
|
return request(options)
|
|
|
|
}
|
|
|
|
|
|
|
|
const post = (url, data, options = {}) => {
|
|
|
|
options.method = 'POST'
|
|
|
|
options.data = data
|
|
|
|
options.url = url
|
|
|
|
return request(options)
|
|
|
|
}
|
|
|
|
|
|
|
|
export default {
|
|
|
|
request,
|
|
|
|
get,
|
|
|
|
post
|
|
|
|
}
|