119 lines
1.9 KiB
JavaScript
119 lines
1.9 KiB
JavaScript
import config from '../config.js'
|
|
import storage from './storage.js'
|
|
|
|
const request = (options) => {
|
|
return new Promise((resolve, reject) => {
|
|
uni.request({
|
|
url: config.baseUrl + options.url,
|
|
method: options.method || 'GET',
|
|
data: options.data || {},
|
|
header: {
|
|
'Content-Type': 'application/json',
|
|
'Authorization': storage.getToken() ? `Bearer ${storage.getToken()}` : '',
|
|
...options.header
|
|
},
|
|
timeout: config.timeout,
|
|
success: (res) => {
|
|
const { statusCode, data } = res
|
|
|
|
if (statusCode === 200) {
|
|
if (data.code === 0 || data.success === true) {
|
|
resolve(data)
|
|
} else {
|
|
uni.showToast({
|
|
title: data.message || '请求失败',
|
|
icon: 'none'
|
|
})
|
|
reject(data)
|
|
}
|
|
} else if (statusCode === 401) {
|
|
storage.removeToken()
|
|
storage.removeUserInfo()
|
|
uni.reLaunch({
|
|
url: '/pages/login/login'
|
|
})
|
|
reject(res)
|
|
} else {
|
|
uni.showToast({
|
|
title: '网络错误',
|
|
icon: 'none'
|
|
})
|
|
reject(res)
|
|
}
|
|
},
|
|
fail: (err) => {
|
|
uni.showToast({
|
|
title: '网络连接失败',
|
|
icon: 'none'
|
|
})
|
|
reject(err)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
const api = {
|
|
login(phone, code) {
|
|
return request({
|
|
url: config.api.login,
|
|
method: 'POST',
|
|
data: {
|
|
phone,
|
|
code
|
|
}
|
|
})
|
|
},
|
|
|
|
getQuestion() {
|
|
return request({
|
|
url: config.api.getQuestion,
|
|
method: 'POST'
|
|
})
|
|
},
|
|
|
|
answerQuestion(sn, answer) {
|
|
return request({
|
|
url: config.api.answerQuestion,
|
|
method: 'POST',
|
|
data: {
|
|
sn,
|
|
answer
|
|
}
|
|
})
|
|
},
|
|
|
|
get(url, data = {}) {
|
|
return request({
|
|
url,
|
|
method: 'GET',
|
|
data
|
|
})
|
|
},
|
|
|
|
post(url, data = {}) {
|
|
return request({
|
|
url,
|
|
method: 'POST',
|
|
data
|
|
})
|
|
},
|
|
|
|
put(url, data = {}) {
|
|
return request({
|
|
url,
|
|
method: 'PUT',
|
|
data
|
|
})
|
|
},
|
|
|
|
delete(url, data = {}) {
|
|
return request({
|
|
url,
|
|
method: 'DELETE',
|
|
data
|
|
})
|
|
}
|
|
}
|
|
|
|
export default api
|