// 统一给参数 const dataObj = (url, params) => { let options = params // #ifdef APP-PLUS // DOTO:暂时没处理过,只是放在这里 let data = null; //业务数据 let terminal = 1 //终端类型,web:0,app:1 options = { ...params, data, sign, terminal } // #endif return options } const goLogin = () => { // uni.clearStorageSync(); console.log('token失效'); // uni.reLaunch({ // url: '/pages/login/Login' // }) //未授权,请重新登录(401) } // 请求错误处理 const checkError = (e, reject) => { // console.error("----接口错误----", e) if (e.data) { if (e.data.code) { switch (Number(e.data.code)) { case 4001: goLogin() break; } } reject(e.data) } else reject({msg:'接口错误'}) } // 封装请求 const request = (method, url, options) => { let methods = ''; let headers = {}; switch (method) { case 'get': methods = 'GET' headers = { 'Content-Type': 'application/json; charset=UTF-8', 'Authorization': 'Bearer '+uni.getStorageSync('token') || '' } break; case 'post': methods = 'POST' headers = { 'Content-Type': 'application/json; charset=UTF-8', 'Authorization': 'Bearer '+uni.getStorageSync('token') || '' } break; case 'postForm': methods = 'POST' headers = { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Authorization': 'Bearer '+uni.getStorageSync('token') || '' } break; } let obj = {}, hideLoading = false, loadingText = 'loading...'; if (options) { //如果有options if (options.hideLoading) { hideLoading = options.hideLoading delete options.hideLoading } if (options.loadingText) { loadingText = options.loadingText delete options.loadingText } } return new Promise((resolve, reject) => { uni.request({ url: `${getApp().globalData.domainName}${url}`, method: methods, data: dataObj(url, options), header: headers, success: res => { // console.log('反的结果===>',res); if (res.statusCode == 200) { if (res.data.code == 0) { resolve(res.data) } else { resolve(res.data) } } else { reject(res.data) } }, fail: e => { checkError(e, reject) }, complete: rest => { // console.log(rest); !hideLoading && uni.hideToast() } }) }) } // 上传文件 封装请求 const uploadFile = (url, options) => { let tempData = options || {} uni.showLoading({title: "上传中..."}) return new Promise((resolve, reject) => { uni.uploadFile({ url: `${getApp().globalData.domainName}${url}`, filePath: tempData.file, name: 'image', fileType:'image', formData: tempData, header: { 'Content-Type': 'multipart/form-data;charset=UTF-8', 'Authorization': 'Bearer '+uni.getStorageSync('token') || '' }, success: res => { if (res.statusCode == 200) { let temp = JSON.parse(res.data) if (temp.code == 0) { resolve(temp) } else { reject(temp) uni.showToast({ title: temp.msg || '接口错误(' + temp.code + ')', icon: 'none' }) } } else { uni.showToast({ title: `未知错误(${res.statusCode})`, icon: 'none' }) } }, fail(e) { // uni.showToast({ // title: '接口请求超时', // icon: 'none' // }) // reject(e.data) }, complete: () => { uni.hideLoading() } }); }) } export default { get: (url, options) => { return request('get', url, options) }, // JOSN格式 post: (url, options) => { return request('post', url, options) }, // form-data格式 postForm: (url, options) => { return request('postForm', url, options) }, // 上传 upload: (url, options) => { return uploadFile(url, options) } }