明树Git Lab

Commit 70496eab authored by zhanghan's avatar zhanghan

1

parent 90642417
......@@ -3,89 +3,101 @@ import { ElMessage } from "element-plus";
import windowConfig from "@/window";
import { useUserStore } from "@/stores/user.js";
import { useRouter } from "vue-router";
axios.interceptors.request.use(function (config) {
axios.interceptors.request.use(
function (config) {
const userStore = useUserStore();
let token = userStore.authToken || sessionStorage.getItem("authToken") || "";
let token =
userStore.authToken || sessionStorage.getItem("authToken") || "";
if (token) {
config.headers.Authorization = token;
config.headers.Authorization = token;
}
return config;
}, (err) => {
},
(err) => {
return Promise.reject(err);
});
axios.interceptors.response.use(response => {
},
);
axios.interceptors.response.use(
(response) => {
return response.data;
}, err => {
},
(err) => {
if (err && err.response) {
switch (err.response.status) {
switch (err.response.status) {
case 401:
err.msg = "请先登录";
break;
}
err.msg = "请先登录";
break;
}
} else {
err.msg = "网络连接错误";
err.msg = "网络连接错误";
}
return Promise.reject(err);
});
},
);
export function $get ({ url, params = {}, callback, error }) {
const userStore = useUserStore();
return axios({
method: "get",
url: windowConfig.baseUrl + url,
params
}).then(response => {
try {
callback && callback(response.data);
} catch (cbErr) {
console.error("callback error:", cbErr);
}
return response;
}).catch((err) => {
console.log(err);
error && error(err);
ElMessage.error(err.msg || "操作失败");
if (err && err.response && err.response.status === 401) {
userStore.clearUserInfo();
router.replace("/login");
}
export function $get({ url, params = {}, callback, error }) {
const userStore = useUserStore();
return axios({
method: "get",
url: windowConfig.baseUrl + url,
params,
})
.then((response) => {
try {
callback && callback(response.data);
} catch (cbErr) {
console.error("callback error:", cbErr);
}
return response;
})
.catch((err) => {
console.log(err);
error && error(err);
ElMessage.error(err.msg || "操作失败");
if (err && err.response && err.response.status === 401) {
userStore.clearUserInfo();
router.replace("/login");
}
});
};
function removeEmptyStrings (obj) {
if (Array.isArray(obj)) return obj.map(removeEmptyStrings);
if (obj !== null && typeof obj === 'object') {
return Object.fromEntries(
Object.entries(obj)
.filter(([, v]) => v !== '')
.map(([k, v]) => [k, removeEmptyStrings(v)])
);
}
return obj;
}
// 祛除空字符串
function removeEmptyStrings(obj) {
if (Array.isArray(obj)) return obj.map(removeEmptyStrings);
if (obj !== null && typeof obj === "object") {
return Object.fromEntries(
Object.entries(obj)
.filter(([, v]) => v !== "")
.map(([k, v]) => [k, removeEmptyStrings(v)]),
);
}
return obj;
}
export function $post ({ url, data = {}, callback, error }) {
const router = useRouter();
const userStore = useUserStore();
const cleanData = removeEmptyStrings(data);
return axios.post(windowConfig.baseUrl + url, cleanData).then((response) => {
if (response.code === 0) {
try {
callback && callback(response.data);
} catch (cbErr) {
console.error("callback error:", cbErr);
}
} else {
ElMessage.error(response.message);
}
return response;
}).catch((err) => {
console.log(err);
error && error(err);
ElMessage.error(err.msg || "操作失败");
if (err && err.response && err.response.status === 401) {
userStore.clearUserInfo();
router.replace("/login");
export function $post({ url, data = {}, callback, error }) {
const router = useRouter();
const userStore = useUserStore();
const cleanData = removeEmptyStrings(data);
return axios
.post(windowConfig.baseUrl + url, cleanData)
.then((response) => {
if (response.code === 0) {
try {
callback && callback(response.data);
} catch (cbErr) {
console.error("callback error:", cbErr);
}
} else {
ElMessage.error(response.message);
}
return response;
})
.catch((err) => {
console.log(err);
error && error(err);
ElMessage.error(err.msg || "操作失败");
if (err && err.response && err.response.status === 401) {
userStore.clearUserInfo();
router.replace("/login");
}
});
};
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment