import store from "@/store/index.js"; import config from "@/common/config"; import method from "@/common/methodTool"; var num = 1; //接口api export const BASE_URL = config.BASE_URL; // #ifdef MP-WEIXIN export let tenantId = config.tenantId; // 祥粤云学堂:867735392558919680,祥粤学堂:667735392758919630, 中建云学堂-567735392758918520 // #endif // #ifdef H5 export const host = setHost(); export let tenantId = uni.getStorageSync(host) || ""; // #endif export const myRequest = (options) => { if (store.state.allowLoading && !options.noLoading) { uni.showLoading({ title: "拼命加载中...", mask: true, }); } return new Promise(async (resolve, reject) => { // #ifdef H5 if (!tenantId) { tenantId = await getTenantId(); uni.setStorageSync(host, tenantId); } // #endif let token = uni.getStorageSync("token"); uni.request({ url: BASE_URL + options.url, method: options.method || "GET", data: options.data, header: options.noToken ? { TenantId: tenantId, } : { AuthorizationToken: "WX " + (token ? token : uni.getStorageSync("token_temp")), TenantId: tenantId, }, success: async (res) => { if (!options.compleLoading) { // 请求的接口有带compleLoading 就不隐藏加载中 uni.hideLoading(); } if (res.data.code == 401) { if (num <= 2) { if (!uni.getStorageSync("user_account")) { var pages = getCurrentPages(); // 获取栈实例 let currentRoute = pages[pages.length - 1].route; // 获取当前页面路由 if (currentRoute != "pages4/login/login") { uni.navigateTo({ url: "/pages4/login/login", }); uni.removeStorageSync("h5_code"); } } else { num++; res = await doRequest(options); } } else { uni.removeStorageSync("user_account"); var pages = getCurrentPages(); // 获取栈实例 let currentRoute = pages[pages.length - 1].route; // 获取当前页面路由 if (currentRoute != "pages4/login/login") { uni.navigateTo({ url: "/pages4/login/login", }); uni.removeStorageSync("h5_code"); } } } resolve(res); }, fail: (err) => { uni.hideLoading(); uni.showToast({ title: "请求接口失败", icon: "none", }); console.log("请求失败err---: ", options.url); if (options.url == "/face/certification/CompareFace") { console.log("人脸识别错误---1:", err); } reject(JSON.stringify(err)); }, complete: () => { // uni.hideLoading() // uni.hideToast() }, }); }); async function doRequest(response) { let user_account = uni.getStorageSync("user_account"); var datas = { url: "/refreshToken/" + user_account, method: "get", noToken: true, }; const res = await myRequest(datas); if (res.data.code === 200) { uni.setStorageSync("token", res.data.data.token); var userInfo = { url: "/app/user/getInfo", method: "get", data: { fromPlat: 1 }, // 来源平台 1小程序 2PC网站 }; const resUser = await myRequest(userInfo); if (resUser.data.code === 200) { store.state.userInfo = resUser.data.data; uni.setStorageSync("user_account", user_account); num = 1; } let onset = await myRequest(response); return onset; } else { var pages = getCurrentPages(); // 获取栈实例 let currentRoute = pages[pages.length - 1].route; // 获取当前页面路由 console.log("request-->333:", currentRoute); if (currentRoute != "pages4/login/login") { uni.navigateTo({ url: "/pages4/login/login", }); uni.removeStorageSync("h5_code"); } } } }; function getTenantId() { return new Promise((resolve, reject) => { uni.request({ url: config.BASE_URL + "/app/common/findTenantId", method: "get", data: { hostH5: host, }, success: (res) => { if (res.data.code == 200) { resolve(res.data.data); } else { uni.showToast({ title: "请求接口失败", icon: "none", }); reject(); } }, fail: (err) => { uni.showToast({ title: "请求接口失败", icon: "none", }); reject(JSON.stringify(err)); }, }); }); } function setHost() { let host = window.location.host; return method.checkDomain(host) ? host : "120.79.166.78:19012"; }