Files
scrq-hd/.svn/pristine/1c/1cfb237a49ee2f2e4dff9249c6c88f0933ec983b.svn-base
2025-07-03 10:34:04 +08:00

176 lines
5.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//上传时用的axios
import axios from 'axios'
import { Notification, MessageBox, Message } from 'element-ui'
import store from '@/store'
import { getToken } from '@/utils/auth'
import errorCode from '@/utils/errorCode'
import { tansParams } from "@/utils/ruoyi";
import qs from 'qs'
// 创建axios实例
const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API,
// 超时
timeout: 10000
})
//url白名单
function checkUrl(url){
let baseUrl=['/system/attachment/upload','/basic/basic/material/exportExcel', '/basic/basic/material/updateMaterialBind',
'/basic/basic/bom/add','/basic/basic/bom/update','/basic/basic/materialGroup/updateMaterials','/basic/basic/material/updateMaterialAlternate'
,'/basic/basic/material/updateMaterialGroups']
return baseUrl.includes(url);
}
// request拦截器
service.interceptors.request.use(config => {
config.headers['Content-Type'] = 'application/x-www-form-urlencoded';
return config
}, error => {
Promise.reject(error)
})
// 响应拦截器
service.interceptors.response.use(res => {
if(res.code === 401)
{
MessageBox.confirm('登录状态已过期,您可以重新登录', '系统提示', {
confirmButtonText: '重新登录',
showCancelButton:false,
type: 'warning'
}
).then(() => {
store.dispatch('LogOut').then(() => {
location.href = '/login';
})
})
}
const code = res.data.code || 200;
// 获取错误信息
const msg = errorCode[code] || res.data.msg || errorCode['default']
if (code === 401) {
console.log("啊哈哈哈哈啊哈哈快乐",res.data.msg) // 未设置状态码则默认成功状态
MessageBox.confirm(res.data.msg || '登录状态已过期'+',您可以重新登录', '系统提示', {
confirmButtonText: '重新登录',
showCancelButton:false,
type: 'warning'
}
).then(() => {
console.log(store,"啊很好看")
store.dispatch('LogOut').then(() => {
location.href = '/login';
})
})
} else if (code === 500) {
// return Promise.reject(new Error(msg)).catch(err=>{
// console.log(err)
return res
// })
}else if(code===10000){
return res
}
else {
return res
}
},
error => {
let { message,name,description,number,fileName,lineNumber,columnNumber,stack,config} = error;
if (message == "Network Error") {
message = "后端接口连接异常";
}
else if (message.includes("timeout")) {
message = "系统接口请求超时";
}
else if(message.includes("401"))
{
MessageBox.confirm('登录状态过期,您可以重新登录', '系统提示', {
confirmButtonText: '重新登录',
showCancelButton:false,
type: 'warning'
}
).then(() => {
store.dispatch('LogOut').then(() => {
location.href = '/login';
})
})
return Promise.reject(error)
}
else if (message.includes("Request failed with status code")) {
message = "系统接口" + message.substr(message.length - 3) + "异常";
}
Message({
message: message,
type: 'error',
duration: 2 * 1000
})
return Promise.reject(error)
}
)
// 通用下载方法
export function download(url, params, filename) {
return service.post(url, params, {
transformRequest: [(params) => {
return tansParams(params)
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
responseType: 'blob'
}).then((data) => {
const content = data
const blob = new Blob([content])
if ('download' in document.createElement('a')) {
const elink = document.createElement('a')
elink.download = filename
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
} else {
navigator.msSaveBlob(blob, filename)
}
}).catch((r) => {
console.error(r)
})
}
//get下载方法
export function downloadGet(url, params, filename) {
return service.get(url, params, {
transformRequest: [(params) => {
return tansParams(params)
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
responseType: 'blob'
}).then((data) => {
const content = data
const blob = new Blob([content])
if ('download' in document.createElement('a')) {
const elink = document.createElement('a')
elink.download = filename
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
} else {
navigator.msSaveBlob(blob, filename)
}
}).catch((r) => {
console.error(r)
})
}
export default service