import axios from 'axios'; import * as elementplus from 'element-plus' import {useBasicInfoStore} from "@/store/basicInfo"; import i18n from "../../public/assets/i18n/i18n"; import router from "../router/index"; axios.interceptors.request.use( config => { config.headers.Authorization = localStorage.getItem('Authorization'); return config; }, error => { console.error(error); elementplus.ElNotification({ title: 'Error', message: error.message, position: 'top-right', duration: 5000, type: 'error' }); return Promise.reject(error); } ); axios.interceptors.response.use( success => { //console.debug(success); return success; if (success.data.code == null) { elementplus.ElNotification({ title: 'Warning', message: `${i18n.t('message.UnknownSystemMessage')}`, position: 'top-right', duration: 5000, type: 'warning' }); } else if (success.data.code && success.data.code == 200) { elementplus.ElNotification({ title: 'Success', message: success.data.message, position: 'top-right', duration: 5000, type: 'success' }); } else if (success.data.code == 500) { elementplus.ElNotification({ title: 'Error', message: success.data.message, position: 'top-right', duration: 5000, type: 'error' }); } else if (success.data.code == 401 || success.data.code == 403) { elementplus.ElNotification({ title: 'Error', message: success.data.message, position: 'top-right', duration: 5000, type: 'error' }); } return success; }, error => { if (error.response == undefined) { elementplus.ElNotification({ title: 'Error', message: error.message, position: 'top-right', duration: 5000, type: 'error' }); } else if (error.response.status == 504 || error.response.status == 404) { elementplus.ElNotification({ title: 'Error', message: `${i18n.t('message.NetworkError')}`, position: 'top-right', duration: 5000, type: 'error' }); } else if (error.response.status == 500) { elementplus.ElNotification({ title: 'Error', message: error.response.data.msg, position: 'top-right', duration: 5000, type: 'error' }); } else if (error.response.status == 403) { elementplus.ElNotification({ title: 'Error', message: `${i18n.t('message.AccessIsDenied')}`, position: 'top-right', duration: 5000, type: 'error' }); } else if (error.response.status == 401) { router.replace('/admin/login'); const store = useBasicInfoStore(); store.removeSessionData(); } else { elementplus.ElNotification({ title: 'Error', message: error, position: 'top-right', duration: 5000, type: 'error' }); } return error; } ); export const postKeyValueRequest = (url, params) => { return axios({ method: 'post', url: `${url}`, data: params, transformRequest: [function (data) { let ret = ''; for (let i in data) { ret += encodeURIComponent(i) + '=' + encodeURIComponent(data[i]) + '&' } return ret; }], headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' } }); }; export const postFileRequest = (url, formdata) => { return axios({ method: 'post', url: `${url}`, data: formdata, headers: { 'Content-Type': 'multipart/form-data' } }) }; export const postRequest = (url, params) => { return axios({ method: 'post', url: `${url}`, data: JSON.stringify(params), headers: { 'Content-Type': 'application/json;charset=UTF-8' } }) }; export const postExportRequest = (url, params) => { return axios({ method: 'post', url: `${url}`, data: JSON.stringify(params), headers: { 'Content-Type': 'application/json;charset=UTF-8' }, responseType: 'blob', }) }; export const putRequest = (url, params) => { return axios({ method: 'put', url: `${url}`, data: params }) }; export const getRequest = (url, params) => { return axios({ method: 'get', url: `${url}`, params: params, }) }; export const deleteRequest = (url, params) => { return axios({ method: 'delete', url: `${url}`, params: params }) };