135 lines
3.4 KiB
JavaScript
135 lines
3.4 KiB
JavaScript
|
|
import axios from "axios";
|
||
|
|
import { ElLoading, ElMessage } from "element-plus";
|
||
|
|
import router from "../router";
|
||
|
|
import pinia from "../pinia";
|
||
|
|
import { useUserStore } from "@/pinia/user.js";
|
||
|
|
import refreshToken from "@/assets/js/refreshToken.js";
|
||
|
|
|
||
|
|
let loading = null;
|
||
|
|
function startLoading() {
|
||
|
|
loading = ElLoading.service({
|
||
|
|
lock: true,
|
||
|
|
text: "加载中...",
|
||
|
|
background: "rgba(0, 0, 0, 0.5)",
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
function endLoading() {
|
||
|
|
loading && loading.close();
|
||
|
|
}
|
||
|
|
|
||
|
|
// axios.defaults.baseURL = import.meta.env[
|
||
|
|
// import.meta.env.DEV ? "VITE_PROXY" : "VITE_BASE_URL"
|
||
|
|
// ];
|
||
|
|
axios.defaults.baseURL = import.meta.env.VITE_PROXY;
|
||
|
|
axios.defaults.timeout = 1000 * 60 * 10;
|
||
|
|
// axios.defaults.withCredentials = true;
|
||
|
|
axios.interceptors.request.use(
|
||
|
|
async (config) => {
|
||
|
|
const userStore = useUserStore(pinia);
|
||
|
|
config.headers.Token = userStore.getToken;
|
||
|
|
if (config.method === "get" || config.method === "GET") {
|
||
|
|
if (config.params.loading !== false) startLoading();
|
||
|
|
}
|
||
|
|
if (config.method === "post" || config.method === "POST") {
|
||
|
|
if (config.data.loading !== false) startLoading();
|
||
|
|
}
|
||
|
|
return config;
|
||
|
|
},
|
||
|
|
(error) => Promise.reject(error)
|
||
|
|
);
|
||
|
|
|
||
|
|
axios.interceptors.response.use(
|
||
|
|
(config) => {
|
||
|
|
endLoading();
|
||
|
|
if (config.data.code === 401) {
|
||
|
|
ElMessage.error("登录失效,请重新登录");
|
||
|
|
router.push("/login").then();
|
||
|
|
} else {
|
||
|
|
refreshToken();
|
||
|
|
}
|
||
|
|
return config;
|
||
|
|
},
|
||
|
|
(error) => {
|
||
|
|
if (error && error.response) {
|
||
|
|
error.message = `连接错误${error.response.status}`;
|
||
|
|
import.meta.env.DEV &&
|
||
|
|
ElMessage.error(`连接错误${error.response.status}`);
|
||
|
|
} else {
|
||
|
|
error.message = "连接到服务器失败";
|
||
|
|
ElMessage.error("连接到服务器失败");
|
||
|
|
}
|
||
|
|
return Promise.reject(error.message);
|
||
|
|
}
|
||
|
|
);
|
||
|
|
|
||
|
|
export function post(url, params = {}) {
|
||
|
|
const userStore = useUserStore(pinia);
|
||
|
|
return new Promise((resolve, reject) => {
|
||
|
|
axios
|
||
|
|
.post(url, {
|
||
|
|
corpinfoId: userStore.getUserInfo.corpinfoId,
|
||
|
|
userId: userStore.getUserInfo.userId,
|
||
|
|
...params,
|
||
|
|
})
|
||
|
|
.then((res) => {
|
||
|
|
if (res.data.result === "success") {
|
||
|
|
resolve(res.data);
|
||
|
|
} else {
|
||
|
|
ElMessage.error(res.data.msg || "系统开小差了");
|
||
|
|
reject(res.data);
|
||
|
|
}
|
||
|
|
})
|
||
|
|
.catch((err) => {
|
||
|
|
reject(err);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
export function get(url, params = {}) {
|
||
|
|
const userStore = useUserStore(pinia);
|
||
|
|
return new Promise((resolve, reject) => {
|
||
|
|
axios
|
||
|
|
.get(url, {
|
||
|
|
params: {
|
||
|
|
corpinfoId: userStore.getUserInfo.corpinfoId,
|
||
|
|
userId: userStore.getUserInfo.userId,
|
||
|
|
...params,
|
||
|
|
},
|
||
|
|
})
|
||
|
|
.then((res) => {
|
||
|
|
if (res.data.result === "success") {
|
||
|
|
resolve(res.data);
|
||
|
|
} else {
|
||
|
|
ElMessage.error(res.data.msg || "系统开小差了");
|
||
|
|
reject(res.data);
|
||
|
|
}
|
||
|
|
})
|
||
|
|
.catch((err) => {
|
||
|
|
reject(err);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
export function upload(url, params = {}) {
|
||
|
|
return new Promise((resolve, reject) => {
|
||
|
|
axios
|
||
|
|
.post(url, params, {
|
||
|
|
headers: {
|
||
|
|
"Content-Type": "multipart/form-data",
|
||
|
|
},
|
||
|
|
})
|
||
|
|
.then((res) => {
|
||
|
|
if (res.data.result === "success") {
|
||
|
|
resolve(res.data);
|
||
|
|
} else {
|
||
|
|
ElMessage.error(res.data.msg || "系统开小差了");
|
||
|
|
reject(res.data);
|
||
|
|
}
|
||
|
|
})
|
||
|
|
.catch((err) => {
|
||
|
|
reject(err);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
}
|