123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- // import axios, { AxiosRequestConfig, AxiosResponse, InternalAxiosRequestConfig } from 'axios'
- // const defaultConfig = {
- // timeout: 3000,
- // baseUrl: ''
- // }
- // class Http {
- // constructor() {
- // this.httpInterceptorsRequest()
- // this.httpInterceptorsResponse()
- // }
- // private static axiosInstance = axios.create(defaultConfig)
- // //请求拦截
- // private httpInterceptorsRequest() {
- // Http.axiosInstance.interceptors.request.use((config: InternalAxiosRequestConfig) => {
- // return config
- // }, err => {
- // return Promise.reject(err)
- // })
- // }
- // //响应拦截
- // private httpInterceptorsResponse() {
- // Http.axiosInstance.interceptors.response.use((response: AxiosResponse) => {
- // return response
- // }, err => {
- // return Promise.reject(err)
- // })
- // }
- // public httpRequestGet(url: string, params: AxiosRequestConfig): Promise<any> {
- // return Http.axiosInstance.get(url, params).then(res => res.data).catch()
- // }
- // public httpRequestPost(url: string, params: AxiosRequestConfig): Promise<any> {
- // return Http.axiosInstance.post(url, params).then(res => res.data).catch()
- // }
- // }
- // export const http = new Http()
- import axios, { InternalAxiosRequestConfig, AxiosResponse } from 'axios'
- import { tansParams } from './common.ts'
- // 创建axios实例
- const service: any = axios.create({
- // axios中请求配置有baseURL选项,表示请求URL公共部分
- baseURL: '',
- // 超时
- timeout: 300000
- })
- // request拦截器
- service.interceptors.request.use((config: InternalAxiosRequestConfig) => {
- // 是否需要防止数据重复提交
- const isRepeatSubmit: boolean = (config.headers || {}).repeatSubmit === false
- // get请求映射params参数
- if (config.method === 'get' && config.data) {
-
- let url: string = config.url + '?' + tansParams(config.data);
- url = url.slice(0, -1);
- config.params = {};
- config.url = url;
- }
- if (!isRepeatSubmit && (config.method === 'post' || config.method === 'put')) {
- const requestObj: any = {
- url: config.url,
- data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,
- time: new Date().getTime()
- }
- }
- config.headers['Content-Type'] = 'application/json;charset=utf-8'
- return config
- }, (error: any) => {
- Promise.reject(error)
- })
- // 响应拦截器
- service.interceptors.response.use((res: AxiosResponse) => {
- // 未设置状态码则默认成功状态
- const code: string | number | null = res.data.status;
- // 二进制数据则直接返回
- if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
- return res.data
- }
- if (code == "SUCCESS" || res.data.msg == "操作成功") {
- return res.headers['content-type'].indexOf("application/vnd.ms-excel") != -1 ? res : res.data
- } else if (res.data.code == 200) { //系统监控=>定时任务
- return res.data
- } else {
- // if (res.data.code === 500) {
- // ElMessage({
- // message: msg,
- // type: 'error'
- // })
- // return msg && Promise.reject(new Error(msg)) || ""
- // } else if (res.data.code !== 200) {
- // ElNotification.error({
- // title: msg
- // })
- // return Promise.reject('error')
- // }
- }
- },
- (error: any) => {
- let message = error.response.data.msg;
- if (message == "Network Error") {
- message = "后端接口连接异常";
- } else if (message.includes("timeout")) {
- message = "系统接口请求超时";
- } else if (message.includes("Request failed with status code")) {
- message = "系统接口" + message.substr(message.length - 3) + "异常";
- }
- // ElMessage({
- // message: message,
- // type: 'error',
- // duration: 5 * 1000
- // })
- return Promise.reject(error)
- }
- )
- export default service
|