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(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中' }) getUpimgKey({ file_name: config.file_name }).then(({ data }) => { uni.hideLoading() uni.chooseImage({ count: 1, sourceType: ['camera', 'album'], success(res) { uni.showLoading({ title: '上传中' }) // 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: data.sign.host, //仅为示例,非真实的接口地址 filePath: res.tempFilePaths[0], formData, name: 'file', header: { "Authori-zation": 'Bearer ' + uni .getStorageSync('token') }, success: (suc) => { if(suc.statusCode==200){ // #ifdef H5 const imgurl = [{url:data.sign.host+'/'+config.file_name+'/'+time+res.tempFiles[0].name}]; // #endif // #ifndef H5 const imgurl = [{url:data.sign.host+'/'+config.file_name+'/'+time+'.png'}]; // #endif resolve(imgurl) } uni.hideLoading() }, file(res) { uni.hideLoading() // console.log(res, '图片上传错误'); reject(res) } }); }, complete() { uni.hideLoading() }, fail(err) { // console.log(res, '图片上传错误'); uni.showToast({ title: '图片上传失败', icon:"error" }); uni.hideLoading() reject(err) } }) }).catch((res)=>{ uni.hideLoading() uni.showToast({ title: 'key请求失败', icon:"error" }); reject(res) }) }) }, }; export default service