import { axiosFactory } from "./setup"; import { Dialog, Message } from "bill/index"; import { showLoad, hideLoad } from "@/utils"; import * as URL from "./constant"; import { ResCode, ResCodeDesc } from "./constant"; import { baseURL, params } from "@/env"; import GAxios from "axios"; const instance = axiosFactory(); export const { axios, addUnsetTokenURLS, delUnsetTokenURLS, addReqErrorHandler, addResErrorHandler, delReqErrorHandler, addUnsetResErrorURLS, delResErrorHandler, getToken, setToken, delToken, setDefaultURI, addHook, delHook, setHook, } = instance; const gotoLogin = () => { if (import.meta.env.DEV) { GAxios.post("/service/manage/login", { password: "MRinIEn3ExMjM0NTY=Q5Lm39urQWzN7k4oCG", userName: "super-admin", username: "super-admin", }).then((res) => { setToken(res.data.data.token) setTimeout(() => location.reload()) }); } else { const loginHref = `/admin/#/statistics/scene` location.href = loginHref + '?redirect=' + escape(location.href) } }; addReqErrorHandler((err) => { // Message.error(err.message) console.error(err); hideLoad(); gotoLogin(); }); addResErrorHandler((response, data) => { if (response && response.status !== 200) { Message.error(response.statusText); } else if (data) { const msg = data.code && ResCodeDesc[data.code] ? ResCodeDesc[data.code] : data?.message || data?.msg; if (data.code === ResCode.TOKEN_INVALID) { gotoLogin(); } else if (data.code === ResCode.UN_AUTH) { Dialog.alert({content: msg, okText: '我知道了'}).then(() => { gotoLogin(); }) throw msg } else { Message.error(msg || '服务出现异常,请稍后再试'); } } }); addHook({ before: (config) => { if (config.url !== URL.RECORD_STATUS) { showLoad(); } }, after: (config) => { if (!config || config.url !== URL.RECORD_STATUS) { hideLoad(); } }, }); setDefaultURI(baseURL); const token = params.token || localStorage.getItem('token') token && setToken(token); export default axios;