初始项目

This commit is contained in:
陈昱达
2025-04-08 10:31:05 +08:00
commit 859c254df3
118 changed files with 25307 additions and 0 deletions

View File

@@ -0,0 +1,102 @@
import axios from 'axios'
import { MessageBox, Message, Loading } from 'element-ui'
import store from '@/store'
import { getToken } from '@/assets/js/utils/auth'
// create an axios instance
const service = axios.create({
baseURL: '', // url = base url + request url
timeout: 600000 // request timeout
})
let loading
function startLoading() {
//使用Element loading-start 方法
loading = Loading.service({
target: '.main-container'
})
}
function endLoading() {
//使用Element loading-close 方法
loading.close()
}
// request interceptor
service.interceptors.request.use(
config => {
if (store.getters.token) {
// config.headers['sid'] = getToken()
config.headers['sysType'] = '3'
config.headers['auth'] = getToken()
}
if (loading) {
endLoading()
}
//linkage 接口
// config.type 可以从api的接口地址定义 可以不触发loading
if (config.type != false) {
startLoading()
}
return config
},
error => {
return Promise.reject(error)
}
)
// response interceptor
service.interceptors.response.use(
response => {
const res = response.data
endLoading()
if (response.request.responseType == 'blob' || response.request.responseType == 'Blob') {
return response.data
}
if (res.content.code != '0' && res.content.result != 0) {
//500毫秒延迟 显得过度平滑
// token过期或失效 根据项目设置其code
if (response.headers['content-type'] != 'application/x-zip-compressed') {
if (res.content.code === '4001' || res.content.code === '4002') {
MessageBox.confirm('你已被登出,可以取消继续留在该页面,或者重新登录', '确认退出', {
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
store.dispatch('user/resetToken').then(() => {
location.reload()
})
})
} else {
Message({
message: res.content.message || 'Error',
type: 'error',
duration: 5 * 1000
})
}
}
} else {
if (res.content.code == '1' || res.content.code == '') {
Message({
message: res.content.resultMessage ? res.content.resultMessage : res.content.message ? res.content.message : '接口错误',
type: 'error',
duration: 5 * 1000
})
return false
} else {
res.content.result = '0'
res.result = String(res.result?res.result:0)
res.code = String(res.code ? res.code: 0 )
return res
}
}
},
error => {
Message({
message: error.message,
type: 'error',
duration: 5 * 500
})
return Promise.reject(error)
}
)
export default service