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