import axios from 'axios';
// axios.defaults.headers.post['Content-Type'] = 'application/json;charset=utf-8';
import qs from 'qs';
import md5 from 'js-md5'
import { Toast } from 'vant';
let base = 'api';
let timeStamp = (new Date()).getTime();
let nonce = random(0, 2147483647);
let uid = localStorage.getItem('uid')!=null?localStorage.getItem('uid'):0;
axios.defaults.headers.common['uid'] = uid;
axios.defaults.headers.common['timestamp'] = timeStamp;
axios.defaults.headers.common['nonce'] = nonce;
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8;';
axios.interceptors.request.use(config => {
if(config.method=="post")
{
config.headers['signature'] = (GetSignature(timeStamp, nonce, uid, "MMMSIP"+ config.url.replace(/\./g,"") +nonce)).toUpperCase();
}
if(config.method=="get")
{
config.headers['signature'] = (GetSignature(timeStamp, nonce, uid, getString(config.params))).toUpperCase();
}
return config
}, error => {
return Promise.reject(error)
})
//获取随机数
function random(lower, upper) {
return Math.floor(Math.random() * (upper - lower)) + lower;
}
//获取数据加密
function GetSignature(timeStamp, nonce, uid, query) {
let token=localStorage.getItem('token')!=null?localStorage.getItem('token'):"0-0-0-2";
var signStr = timeStamp +""+ nonce + uid + token + query;
var arr = [];
for (var i = 0; i < signStr.length; i++) {
arr.push(signStr[i])
}
var temp = arr.sort();
var arr2 = temp.join("");
return md5(arr2);
}
//对象转化为字符串
function getString(curobj){
var resstr =""
for(var key in curobj){
resstr+=key+curobj[key]
}
return resstr
}
function apiAxios(method, url, params, uid, sign, response) {
axios({
method: method,
url: url,
data: method === 'POST' ? (qs.stringify(params)):null,
params: method === 'GET' ? params : null,
}).then(function (res) {
response(res);
}).catch(function (err) {
response(err);
})
}
export default {
get: function (url, params, uid, sign, response) {
return apiAxios(url, params, uid, sign, response)
},
post: function (url, params, uid, sign, response) {
return apiAxios(url, params, uid, sign, response)
},
}
// 登陆接口
export const loginApi = params => {
return axios.post(`${base}/login/dologin`, params, 0, false).then(res => res.data);
}
// 订单列表接口
export const orderListApi = params => {
return axios.post(`${base}/Order/GetAgencyOrderList`, params, uid,true).then(res => res.data);
}
注意:解決本地代理设置在这儿配置(config文件下的index.js)
module.exports = {
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api': {
target: 'http://sip.local.opentide.com.cn',
changeOrigin: true,
secure: false,
wx: true,
pathRewrite: {
'^/api': '/api'
}
}
},}