/** * ajax请求相关的服务 */ import requestUrl from '@/services/config.env.js' import { msg } from '@/utils/util' class AjaxService { constructor() { this.name = 'AjaxService' } getBaseUrl (url = '') { return url.indexOf('://') > -1 ? url : url } getHeaders({ header = {} }) { const REV_OPENID_ENV = uni.getStorageSync('openid') ? uni.getStorageSync('openid') : 'x-openid' header['Accept'] = 'application/json' header['Content-Type'] = 'application/x-www-form-urlencoded' header['x-openid'] = REV_OPENID_ENV return header } request(options = {}) { let header = this.getHeaders(options) let url = this.getBaseUrl(options.url) if (options.header) { header = Object.assign(header, options.header) } url = requestUrl + url let { isLoading = true } = options if (isLoading) { uni.showLoading({ title: options.loadText ? options.loadText : '加载中' }) } 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) if (isLoading) 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()