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

86 lines (81 loc) 2.43 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const axios = require('axios'); const tools = require('../utils/tools.js'); const index = require('../config/index.js'); const baseServe = require('./base-serve.js'); const errorHandle = (status, message) => { switch (status) { case 400: case 401: tools.messageBox(`${message} 即将跳转登录页...`); break; case 403: tools.messageBox("登录过期,请重新登录即将跳转登录页..."); break; case 502: tools.messageBox("网络拥堵,即将跳转登录页..."); break; case 404: tools.messageBox("请求的资源不存在", "error"); break; } }; const instance = axios.create({ baseURL: index.default.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"); index.default.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 = index.default.domain; if (!option.url?.includes("http")) option.url = (option.server ? baseServe.default[option.server] : "") + option.url; return request(option); }; exports.default = requestControl;