1
0
mirror of https://github.com/FatttSnake/Pinnacle-OA.git synced 2026-04-06 07:21:24 +08:00

Added login, logout and getUserinfo (Include ui and server)

This commit is contained in:
2023-05-05 20:59:09 +08:00
parent a8dce8f8e0
commit 60b8460e03
32 changed files with 1022 additions and 151 deletions

View File

@@ -0,0 +1,68 @@
import axios, { type AxiosError } from 'axios'
import { getToken, removeToken } from '@/utils/common'
import router from '@/router'
const service = axios.create({
baseURL: 'http://localhost:8621',
timeout: 10000,
withCredentials: false
})
service.interceptors.request.use(
(config) => {
const token = getToken()
if (token != null) {
config.headers.set('token', token)
}
return config
},
async (error) => {
return await Promise.reject(error)
}
)
service.interceptors.response.use(
(response) => {
return response
},
async (error) => {
if (error.response != null) {
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
console.log(`request error: ${error.response.code} - ${error.response.msg}`)
switch (error.response.code) {
case 30010:
removeToken()
await router.push({ name: 'Login' })
}
}
return await Promise.reject(error?.response?.data)
}
)
const request = {
async get<T = any>(url: string, data?: any): Promise<T> {
return await request.request('GET', url, { params: data })
},
async post<T = any>(url: string, data?: any): Promise<T> {
return await request.request('POST', url, { data })
},
async put<T = any>(url: string, data?: any): Promise<T> {
return await request.request('PUT', url, { data })
},
async delete<T = any>(url: string, data?: any): Promise<T> {
return await request.request('DELETE', url, { params: data })
},
async request<T = any>(method = 'GET', url: string, data?: any): Promise<T> {
return await new Promise((resolve, reject) => {
service({ method, url, ...data })
.then((res) => {
resolve(res as unknown as Promise<T>)
})
.catch((e: Error | AxiosError) => {
reject(e)
})
})
}
}
export default request