import { config } from '@/config/app'; import { useStore } from 'vuex' import store from "@/store/index.js" function baseRequest(url, method, data, { noAuth = false, noVerify = false, onReLogin = false }) { let Url = config.HTTP_REQUEST_URL, header = config.HEADER; if (store.state.userInfo) { header.TOKEN = store.state.userInfo.token } return new Promise((reslove, reject) => { uni.request({ url: Url + url, method: method || 'GET', header: { ...header, }, data: method != 'GET' ? data || {} : {}, params: method == 'GET' ? data : {}, success: (res) => { // console.log(res.data.show, "全局") if (res.data.show) { uni.showToast({ title: res.data.msg || '操作成功', icon: 'success', }) } if (noVerify) reslove(res.data); else if (res.data.code == -1) { if (res.data.msg == "登录超时,请重新登录") { // store.commit('LOGOUT'); uni.reLaunch({ url:'/pages/Login/login' }) } } else if (res.data.code == 0) { if (res.data.msg != '用户信息不存在') { uni.showToast({ title: res.data.msg || '请检查网络', icon: 'none', }) } reslove(res.data); } else if (res.data.code == 1) { // store.commit("SET_REQUEST"); reslove(res.data); } else if (res.data.code == 200) { // store.commit("SET_REQUEST"); reslove(res.data.data); } else if ([410000, 410001, 410002, 40000].indexOf(res.data.code) !== -1) { reject(res.data); } else if (res.data.code == 501) { reject(res.data); } else { uni.showToast({ title: res.data.msg || '请检查网络', icon: 'none' }) reject(res.data.msg || '请检查网络'); } }, fail: (message) => { console.log(message, '错误') // uni.hideLoading() uni.showToast({ title: '网络错误', icon: 'none' }) reject('请求失败'); } }) }); } const syhttp = {}; ['options', 'get', 'post', 'put', 'head', 'delete', 'trace', 'connect'].forEach((method) => { syhttp[method] = (api, data, opt) => baseRequest(api, method, data, opt || {}) }); export default syhttp;