feat: 登录页面
This commit is contained in:
@ -1,32 +1,46 @@
|
||||
/*
|
||||
* @Author: 田鑫
|
||||
* @Date: 2023-02-17 11:58:44
|
||||
* @LastEditors: 田鑫
|
||||
* @LastEditTime: 2023-03-05 19:17:29
|
||||
* @LastEditors: Please set LastEditors
|
||||
* @LastEditTime: 2025-06-20 06:00:54
|
||||
* @Description:
|
||||
*/
|
||||
|
||||
import axios from 'axios';
|
||||
import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
|
||||
import { handleUserLogout } from '@/utils/user';
|
||||
|
||||
const contentType = 'application/json';
|
||||
const requestTimeout = 30000;
|
||||
|
||||
const HttpStatusCode = {
|
||||
OK: 200,
|
||||
BadRequest: 400, // 请求参数错误
|
||||
Unauthorized: 401, // token 无效或过期
|
||||
NotFound: 404,
|
||||
InternalServerError: 500,
|
||||
};
|
||||
|
||||
//* 导出Request类,可以用来自定义传递配置来创建实例
|
||||
export class Request {
|
||||
//* axios 实例
|
||||
private instance: AxiosInstance;
|
||||
//* 基础配置
|
||||
private baseConfig: AxiosRequestConfig = { baseURL: import.meta.env.EO_API_URL, timeout: 60000 };
|
||||
private baseConfig: AxiosRequestConfig = {
|
||||
baseURL: import.meta.env.EO_API_URL,
|
||||
timeout: requestTimeout,
|
||||
headers: {
|
||||
'Content-Type': contentType,
|
||||
},
|
||||
};
|
||||
|
||||
public constructor(config: AxiosRequestConfig) {
|
||||
this.instance = axios.create(Object.assign(this.baseConfig, config));
|
||||
|
||||
this.instance.interceptors.request.use(
|
||||
(config: AxiosRequestConfig) => {
|
||||
const token = localStorage.getItem('token') as string;
|
||||
if (token) {
|
||||
config.headers!.Authorization = token;
|
||||
} else {
|
||||
config.headers!.satoken = '123';
|
||||
}
|
||||
const token = localStorage.getItem('accessToken') as string;
|
||||
config.headers!.Authorization = token;
|
||||
return config;
|
||||
},
|
||||
(err: any) => {
|
||||
@ -36,21 +50,17 @@ export class Request {
|
||||
|
||||
this.instance.interceptors.response.use(
|
||||
(res: AxiosResponse) => {
|
||||
//* http请求成功
|
||||
//* 存入通用response header
|
||||
let tenanttype = localStorage.getItem('tenanttype') as string;
|
||||
if (!tenanttype) {
|
||||
tenanttype = res.headers!.tenanttype;
|
||||
localStorage.setItem('tenanttype', tenanttype);
|
||||
const { data } = res;
|
||||
switch (data.code) {
|
||||
case HttpStatusCode.OK:
|
||||
return data;
|
||||
default:
|
||||
return Promise.reject(data);
|
||||
}
|
||||
if (res.data.code === 200) {
|
||||
return res.data.data;
|
||||
}
|
||||
AMessage.error(res.data!.msg);
|
||||
return Promise.reject(res.data);
|
||||
},
|
||||
(err: any) => {
|
||||
// AMessage.error(err.message);
|
||||
const message = err.response?.data?.message ?? err.message;
|
||||
AMessage.error(message);
|
||||
// 这里用来处理http常见错误,进行全局提示
|
||||
return Promise.reject(err.response);
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user