import { BASE_URL, TIMEOUT, DEFAULT_HEADERS } from './config' const request = (options = {}) => { return new Promise((resolve, reject) => { const token = uni.getStorageSync('token') || '' uni.request({ url: BASE_URL + options.url, method: options.method || 'GET', data: options.data || {}, header: { ...DEFAULT_HEADERS, 'Content-Type': 'application/json', 'Authorization': token ? `Bearer ${token}` : '', ...options.header }, timeout: TIMEOUT, success: (res) => { if (res.statusCode !== 200) { uni.showToast({ title: '网络请求异常', icon: 'none' }) return reject(res) } const { code, msg, data, total, rows } = res.data if (code === 200) { resolve(rows !== undefined ? { total, rows } : data) } else if (code === 401) { uni.removeStorageSync('token') uni.reLaunch({ url: '/pages/login/index' }) reject(res.data) } else { uni.showToast({ title: msg || '操作失败', icon: 'none' }) reject(res.data) } }, fail: (err) => { uni.showToast({ title: '网络异常,请稍后重试', icon: 'none' }) reject(err) } }) }) } export const get = (url, data, options = {}) => request({ ...options, url, data, method: 'GET' }) export const post = (url, data, options = {}) => request({ ...options, url, data, method: 'POST' }) export const put = (url, data, options = {}) => request({ ...options, url, data, method: 'PUT' }) export const del = (url, data, options = {}) => request({ ...options, url, data, method: 'DELETE' }) export default request