import Envs from "./envs" import store from '../store/store' const debug = process.env.NODE_ENV !== 'production' /// 环境对象 class Env { static defaultEnv = debug ? Envs.dev : Envs.release static currentEnv() { return Object.values(Envs).find((e)=>e.index==store.state.selectedEnv) ?? Api.defaultEnv } } /// 公共请求处理 const request = (config) => { const defaultHeader = { "content-type": "application/json" } config.url = Env.currentEnv().url + config.url if (!config.data) config.data = {} if (!config.method) config.method = 'GET' if (!config.header) config.header = defaultHeader if (config.url.indexOf('app_login') === -1) { config.header['token'] = store.state.userInfo.token } let promise = new Promise(function(resolve, reject) { uni.request(config).then(responses => { if (responses[0]) { reject({message : "网络超时"}) } else { let response = responses[1].data // 如果返回的结果是data.data的,嫌麻烦可以用这个,return res,这样只返回一个data if (response.code != 200) { if (response.code == 401) { store.commit('clearUserInfo') uni.navigateTo({ url:'../login/index', animationType:'fade-in' }) } } resolve(response) } }).catch(error => { console.log(error) reject(error) }) }) return promise }; export default request