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" />

81 lines (78 loc) 2.04 kB
import axios from 'axios'; import Config from '../config/index.mjs'; import Base from './base-serve.mjs'; const errorHandle = (status, message) => { switch (status) { case 400: case 401: console.log(message); break; case 403: console.log(message); break; case 502: console.log(message); break; case 404: console.log(message); 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, success, message } = response.data; errorHandle(code || response.status, message); if ([200, "200"].includes(code) || success) 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 };