store-management-app/utils/service/index.js
2024-10-24 16:40:41 +08:00

73 lines
2.4 KiB
JavaScript

import Request from "./request/index.js";
import useToast from "@/hooks/toast/useToast.js";
import { OAorMc } from "../index.js";
const { showMessage } = useToast();
console.log("OAorMc", OAorMc(), import.meta.env.VITE_API_URL);
const request = new Request({
baseURL: import.meta.env.VITE_API_URL,
timeout: 1000 * 60 * 5,
interceptors: {
//实例的请求拦截器
requestInterceptors: (config) => {
config.headers["Content-Type"] =
config.method === "get"
? "application/x-www-form-urlencoded"
: "application/json";
let token = "";
if (window.plus) {
token = plus?.webview.getWebviewById("wv").tokenScan;
} else {
token = uni.getStorageSync("store-token");
}
console.log("tokenServer", token);
if (config.isFormData) {
config.headers["Content-Type"] = "multipart/form-data";
config.headers["Authorization"] = token || "";
} else {
config.headers["Authorization"] = token;
}
return config;
},
//实例的响应拦截器
responseInterceptors: async (response) => {
if (response.data.status === 1) {
showMessage({ type: "error", message: response.data.msg });
}
// if(response.data.status === 0){
// uni.setStorageSync("token", response.data.data.Token);
// uni.setStorageSync("userInfo", response.data.data.AccountInfo);
// response.config.headers["Authorization"] = response.data.data.Token;
// }
if (response.data.code === 401) {
uni.clearStorageSync(); //清缓存
const params = new URLSearchParams(window.location.search); //属性包含当前 URL 的查询字符串部分
const id = params.get("id");
const pid = params.get("pid");
uni.navigateTo({
url: "/pages/login/index?id=" + id + "&pid=" + pid,
});
return false;
}
if ([200, 201, 204].includes(response.status)) {
return response.config.responseType === "blob" ? response : response;
} else {
// showMessage({ type: "error", message: response.data.msg });
return Promise.reject(
new Error(response.data.msg || "An error occurred.")
);
}
},
},
});
const fontRequest = (config) => {
if (["get", "GET"].includes(config.method)) {
config.params = config.data;
}
return request.request(config);
};
export default fontRequest;