/*
|
* @Company: hugeInfo
|
* @Author: ldh
|
* @Date: 2022-02-16 11:28:12
|
* @LastEditTime: 2022-03-15 09:50:39
|
* @LastEditors: lwh
|
* @Version: 1.0.0
|
* @Description: axios处理方法
|
*/
|
import axios from 'axios';
|
import CryptoJS from 'crypto-js';
|
import appUrl from './appUrl';
|
import * as $$ from '../utils/utility';
|
|
// aes加密,接口请求数据加密,数据返回解密
|
const aes_key = 'tVTShp12fFVkNBxV';
|
|
const aes_iv = 'PKCS5Padding';
|
|
// 加密
|
function aes_encrypt(text) {
|
let value = text ? text : '';
|
return CryptoJS.AES.encrypt(value, CryptoJS.enc.Utf8.parse(aes_key), {
|
iv: CryptoJS.enc.Utf8.parse(aes_iv),
|
mode: CryptoJS.mode.ECB,
|
padding: CryptoJS.pad.Pkcs7,
|
}).toString();
|
}
|
|
// 解密
|
function aes_decrypt(text) {
|
let value = text ? text : '';
|
let decrypted = CryptoJS.AES.decrypt(value, CryptoJS.enc.Utf8.parse(aes_key), {
|
iv: CryptoJS.enc.Utf8.parse(aes_iv),
|
mode: CryptoJS.mode.ECB,
|
padding: CryptoJS.pad.Pkcs7,
|
});
|
return JSON.parse(decrypted.toString(CryptoJS.enc.Utf8) || 'null');
|
}
|
|
// 网络异常
|
function networkException(err) {
|
if (err.code !== 200) {
|
$$.catchApiError({ content: '抱歉!网络异常请刷新' });
|
}
|
}
|
|
// api返回结果处理
|
function resHandle(resData) {
|
const { code, data, msg } = resData;
|
if (code == '0') {
|
// let res_data = data ? aes_decrypt(data) : true;
|
return { type: true, data };
|
} else if (code == '401' || code == '10002') {
|
$$.catchApiError({ content: '抱歉! 登录状态已失效请重新登录', loginStatus: 'lose' });
|
return { type: false };
|
} else {
|
$$.catchApiError({ content: msg });
|
return { type: false };
|
}
|
}
|
|
export const ax = axios;
|
|
export function request(value = {}) {
|
let local = localStorage.getItem('operationToken');
|
|
let token = !local ? null : JSON.parse(local);
|
|
// 无token时
|
// if (!token) {
|
// $$.catchApiError({ content: '抱歉!登录状态已失效请重新登录', loginStatus: 'lose' });
|
// return false;
|
// }
|
|
// let data = aes_encrypt(JSON.stringify(value.data));
|
let data = value.data;
|
|
const url = `${appUrl[value.service] || ''}/api/${value.url}`;
|
|
axios.defaults.baseURL = $$.isDebug ? appUrl.debug : appUrl.web;
|
|
// axios.defaults.headers.common['Authorization'] = token;
|
|
if (value.type === 'get') {
|
return ax
|
.get(url, { params: value.data })
|
.then((response) => {
|
return resHandle(response.data);
|
})
|
.catch((err) => {
|
networkException(err);
|
return false;
|
});
|
} else {
|
return ax
|
.post(url, data)
|
.then((response) => {
|
return resHandle(response.data);
|
})
|
.catch((err) => {
|
networkException(err);
|
return false;
|
});
|
}
|
}
|