/** * ajax请求相关的服务 */ import ServiceUrl from './config.env' class AjaxService { constructor() { this.name = 'AjaxService' } getBaseUrl(url = '') { return url.indexOf('://') > -1 ? url : ServiceUrl + url } getHeaders({ header = {} }) { header['Accept'] = 'application/json' header['Content-Type'] = 'application/json' return header } request(options = {}) { let header = this.getHeaders(options) let url = this.getBaseUrl(options.url) if (options.header) { header = Object.assign(header, options.header) } let { isLoading = true } = options if (isLoading) { uni.showLoading({ title: '加载中' }) } const requestPromise = new Promise((resolve, reject) => { uni.request({ url: url, method: options.method || 'POST', data: options.data || {}, header, success: res => { if (isLoading) uni.hideLoading() if (options.isStatus) { resolve(res.data) } else { if (res.data.code === 0) { resolve(res.data) } else { reject(res.data) } } }, fail: error => { reject(error) uni.hideLoading() } }) }) return requestPromise } get(options) { options.method = 'GET' return this.request(options) } post(options) { options.method = 'POST' return this.request(options) } } export default new AjaxService()