UNPKG

@ued_fpi/data-visual

Version:

<br /> <br /> <div style="text-align:center"> <b style="font-size:30px">@ued_fpi/data-visual</b> <p>基于Vite4+TypeScript的Vue3大屏组件库开发框架</p> <img style="display:inline" src="https://img.shields.io/npm/v/@ued_fpi/data-visual" />

82 lines (79 loc) 2.24 kB
import axios from 'axios'; import { messageBox } from '../utils/tools.mjs'; import Config from '../config/index.mjs'; import Base from './base-serve.mjs'; const errorHandle = (status, message) => { switch (status) { case 400: case 401: messageBox(`${message} 即将跳转登录页...`); break; case 403: messageBox("登录过期,请重新登录即将跳转登录页..."); break; case 502: messageBox("网络拥堵,即将跳转登录页..."); break; case 404: messageBox("请求的资源不存在", "error"); break; } }; const instance = axios.create({ baseURL: Config.domain, // 请求时长 timeout: 60 * 1e3, validateStatus() { return true; }, transformResponse: [ (data) => { if (typeof data === "string" && (data.startsWith("{") || data.startsWith("["))) data = JSON.parse(data); return data; } ] }); instance.interceptors.request.use( (config) => { config && config.headers && (config.headers["Cache-Control"] = "no-cache, no-store"); config && config.headers && (config.headers.Pragma = "no-cache"); Config.isAddToken && (config.headers.token = localStorage.getItem("token")); return config; }, (error) => { return Promise.reject(error); } ); instance.interceptors.response.use( // 请求成功 (response) => { const { code, message } = response.data; errorHandle(code || response.status, message); if ([200, "success"].includes(code) || typeof code !== "number") return response.data; else if (code) return Promise.reject(response.data); else return Promise.resolve(response.data); }, // 请求失败 (error) => { if (axios.isCancel(error)) { console.warn(error.message); } const { response } = error; if (response) { errorHandle(response.status, response.data.message); return Promise.reject(response); } } ); const request = instance.request; const requestControl = (option) => { option.baseURL = Config.domain; if (!option.url?.includes("http")) option.url = (option.server ? Base[option.server] : "") + option.url; return request(option); }; export { requestControl as default };