69 lines
1.5 KiB
Vue
69 lines
1.5 KiB
Vue
import axios from "axios";
|
||
import {
|
||
ElMessage
|
||
} from "element-plus";
|
||
import router from "@/router/index";
|
||
import {
|
||
localSet,
|
||
localGet,
|
||
localRemove
|
||
} from "./index";
|
||
import config from "~/config";
|
||
import {
|
||
response
|
||
} from '../proto/data/pd';
|
||
|
||
axios.defaults.baseURL = config[
|
||
import.meta.env.MODE].baseUrl;
|
||
axios.defaults.withCredentials = true;
|
||
// 请求头,headers 信息
|
||
axios.defaults.headers["X-Requested-With"] = "XMLHttpRequest";
|
||
|
||
axios.interceptors.request.use(
|
||
(req) => {
|
||
req.headers["cdcm"] = localGet("token");
|
||
return req;
|
||
}
|
||
);
|
||
|
||
axios.interceptors.response.use(
|
||
(res) => {
|
||
const token = res.headers["token"]
|
||
// 如果token不为空,就缓存到本地
|
||
if (typeof (token) != "undefined") {
|
||
localSet("token", token);
|
||
}
|
||
const ret = response.decode(new Uint8Array(res.data));
|
||
// token过期
|
||
if (ret.code === 2003) {
|
||
localRemove("token");
|
||
ElMessage.closeAll();
|
||
ElMessage.error(ret.msg + "[" + new TextDecoder().decode(res.data) + "]" || "Token异常,请重新登录");
|
||
router.push({
|
||
path: "/login"
|
||
});
|
||
return Promise.reject(ret);
|
||
}
|
||
return ret
|
||
},
|
||
(error) => {
|
||
ElMessage.closeAll();
|
||
ElMessage.error(error);
|
||
router.push({
|
||
path: "/login"
|
||
});
|
||
return Promise.reject(error);
|
||
}
|
||
);
|
||
// post请求
|
||
export function postPBRequest(url, params, actionNum) {
|
||
return axios({
|
||
method: "post",
|
||
url: url,
|
||
data: params,
|
||
responseType: 'arraybuffer',
|
||
headers: {
|
||
"action": actionNum,
|
||
},
|
||
});
|
||
} |