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.
179 lines
4.5 KiB
179 lines
4.5 KiB
import axios from 'axios'
|
|
import Qs from "qs";
|
|
import { getStore } from '/utils/storage'
|
|
import toLogin from './login'
|
|
const instance = axios.create({
|
|
transformRequest: [
|
|
function(data) {
|
|
data = Qs.stringify(data);
|
|
return data;
|
|
}
|
|
],
|
|
// www.yjlive.cn
|
|
baseURL: "http://mall.yyundong.com/portalapi/",
|
|
// baseURL: "http://www.yyundong.com:8083/",
|
|
timeout: 30000
|
|
});
|
|
instance.defaults.headers.post["Content-Type"] =
|
|
"application/x-www-form-urlencoded";
|
|
const defaultOpt = { login: true };
|
|
const methodsToken = [
|
|
"user.info",
|
|
"user.editinfo",
|
|
"user.changeavatar",
|
|
"user.logout",
|
|
"user.addgoodsbrowsing",
|
|
"user.delgoodsbrowsing",
|
|
"user.goodsbrowsing",
|
|
"user.goodscollection",
|
|
"user.goodscollectionlist",
|
|
"user.vuesaveusership",
|
|
"user.saveusership",
|
|
"user.getshipdetail",
|
|
"user.setdefship",
|
|
"user.editship",
|
|
"user.removeship",
|
|
"user.getusership",
|
|
"api/wxpay/user.pay",
|
|
"user.orderevaluate",
|
|
"user.getuserdefaultship",
|
|
"user.issign",
|
|
"user.sign",
|
|
"user.mypoint",
|
|
"user.userpointlog",
|
|
"user.getbankcardlist",
|
|
"user.getdefaultbankcard",
|
|
"user.addbankcard",
|
|
"user.removebankcard",
|
|
"user.setdefaultbankcard",
|
|
"user.getbankcardinfo",
|
|
"user.editpwd",
|
|
"user.forgotpwd",
|
|
"user.recommend",
|
|
"user.balancelist",
|
|
"user.sharecode",
|
|
"user.cash",
|
|
"user.cashlist",
|
|
"user.myinvite",
|
|
"user.activationinvite",
|
|
"coupon.getcoupon",
|
|
"coupon.usercoupon",
|
|
"cart.add",
|
|
"cart.del",
|
|
"cart.getlist",
|
|
"cart.setnums",
|
|
"cart.getnumber",
|
|
"order.cancel",
|
|
"order.del",
|
|
"order.details",
|
|
"order.confirm",
|
|
"order.getlist",
|
|
"order.create",
|
|
"submitPreview",
|
|
"order.getship",
|
|
"order.getorderlist",
|
|
"order.getorderstatusnum",
|
|
"order.aftersaleslist",
|
|
"order.aftersalesinfo",
|
|
"order.aftersalesstatus",
|
|
"order.addaftersales",
|
|
"order.sendreship",
|
|
"order.iscomment",
|
|
"payments.getinfo",
|
|
"user.getuserpoint",
|
|
"coupon.getcouponkey",
|
|
"store.isclerk",
|
|
"store.storeladinglist",
|
|
"store.ladinginfo",
|
|
"store.lading",
|
|
"store.ladingdel",
|
|
"distribution_center-api-info",
|
|
"distribution_center-api-applydistribution",
|
|
"distribution_center-api-setstore",
|
|
"distribution_center-api-myorder",
|
|
"pintuan.pintuanteam",
|
|
"lottery-api-getLotteryConfig",
|
|
"lottery-api-lottery",
|
|
"lottery-api-lotteryLog"
|
|
];
|
|
|
|
function baseRequest(options) {
|
|
const token = getStore('token');
|
|
const headers = options.headers || {};
|
|
|
|
headers["Accept"] = "application/json";
|
|
headers["Content-Type"] = "application/x-www-form-urlencoded";
|
|
headers["authorization"] = token;
|
|
headers["storeid"] = 2;
|
|
options.headers = headers;
|
|
if (options.login && !token) {
|
|
// toLogin();
|
|
// return Promise.reject({ msg: "未登录", toLogin: true });
|
|
}
|
|
console.log(options);
|
|
var url = options.url.substring(1, options.url.length);
|
|
// 判断token是否存在
|
|
if (methodsToken.indexOf(url) >= 0) {
|
|
if (!token) {
|
|
// this.$router.push({path: '/page/Login/login'})
|
|
toLogin();
|
|
return Promise.reject({ msg: "未登录", toLogin: true });
|
|
} else {
|
|
//data.authorization = userToken;
|
|
}
|
|
}
|
|
|
|
return instance(options).then(res => {
|
|
const data = res.data || {};
|
|
if (res.status !== 200)
|
|
return Promise.reject({ msg: "请求失败", res, data });
|
|
|
|
if ([410000, 410001, 410002, 100].indexOf(data.status) !== -1) {
|
|
// this.$router.push({path: '/page/Login/login'})
|
|
toLogin();
|
|
return Promise.reject({ msg: res.data.msg, res, data, toLogin: true });
|
|
} else if (data.code === 200) {
|
|
return Promise.resolve(data, res);
|
|
} else {
|
|
return Promise.reject({ msg: res.data.msg, res, data });
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* http 请求基础类
|
|
* 参考文档 https://www.kancloud.cn/yunye/axios/234845
|
|
*
|
|
*/
|
|
const request = ["post", "put", "patch"].reduce((request, method) => {
|
|
/**
|
|
*
|
|
* @param url string 接口地址
|
|
* @param data object get参数
|
|
* @param options object axios 配置项
|
|
* @returns {AxiosPromise}
|
|
*/
|
|
request[method] = (url, data, options = {}) => {
|
|
return baseRequest(
|
|
Object.assign({ url, data, method }, defaultOpt, options)
|
|
);
|
|
};
|
|
return request;
|
|
}, {});
|
|
|
|
["get", "delete", "head"].forEach(method => {
|
|
/**
|
|
*
|
|
* @param url string 接口地址
|
|
* @param params object get参数
|
|
* @param options object axios 配置项
|
|
* @returns {AxiosPromise}
|
|
*/
|
|
request[method] = (url, params = {}, options = {}) => {
|
|
return baseRequest(
|
|
Object.assign({ url, params, method }, defaultOpt, options)
|
|
);
|
|
};
|
|
});
|
|
|
|
export default request;
|
|
|