Files
ClassContent/历届学生/fontendseven/项目练习/上课项目/admin/src/http/index.js
2024-09-27 02:06:13 +08:00

72 lines
1.7 KiB
JavaScript

import axios from 'axios'
import config from '@/config'
import { Notification, Loading } from 'element-ui';
let loadingInstance = null;
export default class Http {
constructor () {
this.instance = axios.create({
baseURL: config.checkUrl(),
timeout: 10000,
headers: {
'Content-Type': 'application/json'
}
})
this.interceptors()
}
async get (params) {
return await this.instance.get(params.url, {
params: params.data,
headers: Object.assign({
token: localStorage.getItem("token")
}, params.headers )
})
}
async post (params) {
return await this.instance.post(params.url, params.data, {
headers: Object.assign({
token: localStorage.getItem("token")
}, params.headers )
})
}
interceptors () {
// 添加请求拦截器
this.instance.interceptors.request.use(function (config) {
loadingInstance = Loading.service({
text: '加载中...'
})
return config
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error)
})
// 添加响应拦截器
this.instance.interceptors.response.use(function (response) {
// 对响应数据做点什么
loadingInstance.close();
switch (response.data.status) {
case 200:
return response.data.result
break;
case 404:
Notification.error({
title: '接口出现错误',
message: response.data.msg,
duration: 0
})
throw new Error(response.data.msg)
break;
}
}, function (error) {
// 对响应错误做点什么
return Promise.reject(error)
})
}
}