Zlpt_Portal/src/http/index.ts

134 lines
3.5 KiB
TypeScript
Raw Normal View History

2023-11-30 10:49:45 +08:00
//http.ts
/* eslint-disable @typescript-eslint/no-explicit-any */
import axios from 'axios'
import NProgress from 'nprogress'
import { useStore } from 'store/main'
2023-12-05 09:45:01 +08:00
import {ElMessage} from "element-plus";
import router from "@/router"
2023-11-30 10:49:45 +08:00
const store = useStore()
// const CancelToken = axios.CancelToken
// const source = CancelToken.source()
const baseUrl = import.meta.env.VITE_API_URL
// const mode = import.meta.env.VITE_BUILD_MODE
2023-12-05 09:45:01 +08:00
2023-11-30 10:49:45 +08:00
const service = axios.create({
baseURL: baseUrl,
timeout: 60000
})
service.interceptors.request.use(
(config) => {
2023-12-05 09:45:01 +08:00
config.headers['Authorization'] = store.token
2023-11-30 10:49:45 +08:00
return config
},
(error) => {
return error
}
)
// 响应拦截
service.interceptors.response.use(
(res) => {
2023-12-05 09:45:01 +08:00
const { data } = res
if(data.code == '200'){
return data
}else if(data.code == '403'){
ElMessage.error('请重新登录')
router.push('/login')
}else{
return data
}
2023-11-30 10:49:45 +08:00
},
(error) => {
2023-12-04 10:19:21 +08:00
2023-11-30 10:49:45 +08:00
console.log('error-异常', error)
}
)
export function get(url: string, params: any) {
return new Promise((resolve, reject) => {
NProgress.start()
service
.get(url, { params })
.then((res: any) => {
NProgress.done()
2023-12-04 10:19:21 +08:00
if (res.code == '200') {
2023-12-04 10:26:00 +08:00
resolve(res)
2023-11-30 10:49:45 +08:00
} else {
2023-12-04 10:26:00 +08:00
reject(res)
2023-11-30 10:49:45 +08:00
}
})
.catch((err) => {
NProgress.done()
reject(err.data)
})
})
}
export function post(url: string, params: any) {
return new Promise((resolve, reject) => {
NProgress.start()
service
.post(url, params, {
headers: { 'Content-Type': 'application/json; charset=utf-8' }
})
.then((res: any) => {
NProgress.done()
console.log('---------------------------', res)
2023-12-04 10:19:21 +08:00
if (res.code == '200') {
2023-12-04 13:10:38 +08:00
resolve(res)
2023-11-30 10:49:45 +08:00
} else {
2023-12-04 13:10:38 +08:00
reject(res)
2023-11-30 10:49:45 +08:00
}
})
.catch((err) => {
NProgress.done()
reject(err)
})
})
}
export function upload(url: string, params: any) {
const formData = new FormData()
for (const key in params) {
if (Object.prototype.hasOwnProperty.call(params, key)) {
formData.append(key, params[key])
}
}
return new Promise((resolve, reject) => {
NProgress.start()
service
.post(url, formData, {
headers: { 'Content-Type': 'multipart/form-data' }
})
.then((res: any) => {
NProgress.done()
2023-12-04 10:19:21 +08:00
if (res.code == '200') {
2023-12-04 13:10:38 +08:00
resolve(res)
2023-11-30 10:49:45 +08:00
} else {
2023-12-04 13:10:38 +08:00
reject(res)
2023-11-30 10:49:45 +08:00
}
})
.catch((err) => {
NProgress.done()
reject(err.data)
})
})
}
export function download(url: string, params: any) {
return new Promise((resolve, reject) => {
NProgress.start()
service
.post(url, params, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
responseType: 'blob'
})
.then((res: any) => {
resolve(res)
})
.catch((err) => {
NProgress.done()
reject(err.data)
})
})
}