import store from '../store'; import { getUpimgKey } from '@/api/login.js'; let service = { baseURL: store.state.baseURL, // 请求头 header: { 'Content-Type': "application/x-www-form-urlencoded" }, // 请求拦截器 interceptors: { // 安装请求前拦截 request: function(success, iserror) { service.request.success = success; service.request.error = iserror; }, // 安装请求完成后拦截 response: function(success, iserror) { service.response.success = success; service.response.error = iserror; } }, // 请求前拦截 request: { // 回调成功执行方法 success: function(e) { return e }, // 回调失败 error: function(e) { return e } }, // 请求完成后拦截 response: { // 回调成功执行方法 success: function(e) { return e }, // 回调失败 error: function(e) { return e } }, // 开始请求 open: async function(data) { return await new Promise(function(resolve, reject) { let requestData = ''; //保存处理完成后请求数据 let url = '' //保存链接地址 //console.log(data); // 请求前数据处理 requestData = service.request.success(data); // #ifdef H5 if (process.env.NODE_ENV === 'development') { url = requestData.url; console.log('开发环境') } else { url = service.baseURL + requestData.url; console.log('生产环境') } // #endif // #ifndef H5 url = service.baseURL + requestData.url; // #endif console.log(url, '请求地址信息'); // 数据复制用于请求 uni.request({ url: url, method: requestData.method || 'GET', data: requestData.data, header: data.header || service.header, success: res => { if (res.statusCode == 200) { try { resolve(service.response.success(res)); } catch (e) { service.response.error(e) } } }, // 请求失败数据处理 fail: (err) => { service.response.error(err) } }); }) }, // 上传文件 upFilse: async function(data) { return await new Promise(async function(resolve, reject) { let requestData = ''; //保存处理完成后请求数据 let url = '' //保存请求地址 try { // 请求前数据处理 requestData = service.request.success(data); } catch (e) { // 请求报错拦截 service.request.error(e); } // #ifdef H5 if (process.env.NODE_ENV === 'development') { url = requestData.url; console.log('开发环境') } else { url = service.baseURL + requestData.url; console.log('生产环境') } // #endif // #ifndef H5 url = service.baseURL + requestData.url; // #endif let config = { // 上传图片的API upload_img_url: url, data: requestData.data, file_name: requestData.data.file_name || 'user/' + store.state.user.userInfo.uid } // uni.showLoading({ // title: '请求key中', // mark: true, // }) try { // const { // data // } = await getUpimgKey({ // file_name: config.file_name // }) // uni.hideLoading() // setTimeout(()=>{ uni.chooseImage({ count: 1, sizeType: ['compressed'], sourceType: ['camera', 'album'], success(res) { uni.showLoading({ title: '上传中', mark: true, }) try { // console.log(res, '选中图片'); const time = (new Date()).getTime(); // #ifdef H5 const formData = { // "policy": data.sign.policy, // "OSSAccessKeyId": data.sign.accessid, // 'success_action_status': 200, // "signature": data.sign.signature, "key": config.file_name + '/' + time + res.tempFiles[0] .name } // #endif // #ifndef H5 const formData = { // "policy": data.sign.policy, // "OSSAccessKeyId": data.sign.accessid, // 'success_action_status': 200, // "signature": data.sign.signature, "key": config.file_name + '/' + time + '.png' } // #endif // console.log(formData,'formData'); uni.uploadFile({ url: url, //仅为示例,非真实的接口地址 filePath: res.tempFilePaths[0], formData, name: 'file', header: { "Authori-zation": 'Bearer ' + uni .getStorageSync('token') }, success: (suc) => { if (suc.statusCode == 200) { suc.data = JSON.parse(suc.data).data; // #ifdef H5 const imgurl = [{ url:suc.data.url }]; // #endif // #ifndef H5 const imgurl = [{ url:suc.data.url }]; // #endif resolve(imgurl) } uni.hideLoading() }, file(res) { uni.hideLoading() // console.log(res, '图片上传错误'); reject(res) } }); } catch (e) { uni.showModal({ title: '错误', content: e.message, showCancel: false }); } }, fail(err) { if (err.errCode == 0) { uni.showToast({ title: '已取消', icon: "error" }); } else if (err.errCode == 12) { uni.showToast({ title: '已返回', icon: "error" }); } else { console.log(err, '图片上传错误'); uni.showToast({ title: '请重新上传', icon: "error" }); } uni.hideLoading() reject(err) } }) // }) } catch (e) { uni.hideLoading() uni.showToast({ title: e.message, icon: "error" }); reject(res) } }) }, }; export default service