You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

87 lines
1.8 KiB

import axios from "./axios";
import {
clearEmptyParam
} from './clearEmptyParam'
import Vue from "vue";
import shop from "./shop";
const request = axios.create({
// baseURL: 'https://admin.arcskytech.top/uav-api',//生产环境外国服务器
baseURL: 'https://uav-api.xzaiyp.top/uav-api',//演示环境
// baseURL: 'http://h5.xzaiyp.top/uav-two',//开发环境
// baseURL: 'https://shop-admin.xzaiyp.top/shop_demo',
timeout: '5000s',
})
request.interceptors.request.use(config => {
config.headers['Content-Type'] = "application/x-www-form-urlencoded"
if (localStorage.getItem('token')) {
config.headers['X-Access-Token'] = `${localStorage.getItem('token')}`
}
if (uni.getStorageSync('language')) {
config.headers['Language'] = `${uni.getStorageSync('language')}`
}
clearEmptyParam(config)
return config;
})
request.interceptors.response.use(res => {
if (res.headers['token']) {
localStorage.setItem('token', res.headers['token'])
}
if (res.data.code != 200) {
uni.$u.toast(uni.$resMessage[res.data.message] || res.data.message)
}
if (res.data.code == 401) {
localStorage.removeItem('token')
uni.navigateTo({
url: "/pages/login/login"
})
}
return res.data;
},
err => {
console.log(err);
if (err.response.status == 401) {
localStorage.removeItem('token')
// router.replace('/login').catch(()=>{})
uni.navigateTo({
url: "/pages/login/login"
})
}
return Promise.reject(new Error(err))
})
export function handleRequest(key, data, params) {
if (!shop[key]) {
return console.error('无效key');
}
if (shop[key].auth) {
if (!localStorage.getItem('token')) {
uni.navigateTo({
url: "/pages/login/login"
})
console.error('需要登录')
return {
then() {}
};
}
}
return request({
...shop[key],
data,
params
})
};
export default handleRequest