import store from "@/store/index.js"; import config from "@/common/config"; import { checkDomain } from "@/common/tool"; var num = 1; //接口api // export const BASE_URL = 'https://api.xyyxt.net' //release export const BASE_URL = config.BASE_URL; export const host = setHost(); export let tenantId = uni.getStorageSync(host) || ""; export const myRequest = (options) => { if (store.state.allowLoading && !options.noLoading) { uni.showLoading({ title: "拼命加载中...", mask: true, }); } return new Promise(async (resolve, reject) => { if (!tenantId) { tenantId = await getTenantId(); uni.setStorageSync(host, tenantId); } let token = uni.getStorageSync("seller_token"); uni.request({ url: BASE_URL + options.url, method: options.method || "GET", data: options.data, header: options.noToken ? { TenantId: tenantId, } : { AuthorizationToken: "Bearer " + token, TenantId: tenantId, }, success: async (res) => { if (!options.compleLoading) { // 请求的接口有带compleLoading 就不隐藏加载中 uni.hideLoading(); } if (res.data.code == 401) { if (num <= 2) { if (!uni.getStorageSync("seller_account")) { var pages = getCurrentPages(); // 获取栈实例 let currentRoute = pages[pages.length - 1].route; // 获取当前页面路由 if (currentRoute != "pages/login/login") { uni.navigateTo({ url: "/pages/login/login", }); } } else { num++; res = await doRequest(options); } } else { uni.removeStorageSync("seller_account"); var pages = getCurrentPages(); // 获取栈实例 let currentRoute = pages[pages.length - 1].route; // 获取当前页面路由 if (currentRoute != "pages/login/login") { uni.navigateTo({ url: "/pages/login/login", }); } } } else if (res.data.code == 500) { uni.showToast({ icon: "none", title: res.data.msg, }); reject(); } else if (res.data.code == 200) { if (res.data.hasOwnProperty("rows")) { resolve(res.data); } resolve(res.data.data); } }, fail: (err) => { uni.hideLoading(); uni.showToast({ title: "请求接口失败", icon: "none", }); reject(JSON.stringify(err)); }, }); }); async function doRequest(response) { let seller_account = uni.getStorageSync("seller_account"); try { const res = await myRequest({ url: "/app/common/seller/refreshToken/" + seller_account, method: "get", noToken: true, }); uni.setStorageSync("seller_token", res.token); num = 1; store.dispatch("getUserInfo"); myRequest(response); } catch (error) { uni.navigateTo({ url: "/pages/login/login", }); } } }; function getTenantId() { return new Promise((resolve, reject) => { uni.request({ url: BASE_URL + "/common/free/findTenantId", method: "get", data: { hostH5Seller: 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 checkDomain(host) ? host : "120.79.166.78:19012"; }