diff --git a/src/constants/Common.constants.ts b/src/constants/Common.constants.ts index 34b9302..d7b32ad 100644 --- a/src/constants/Common.constants.ts +++ b/src/constants/Common.constants.ts @@ -11,36 +11,27 @@ const SIZE_ICON_MD = '24px' const SIZE_ICON_LG = '32px' const SIZE_ICON_XL = '64px' -// Response Code -const SYSTEM_OK = 20000 -const LOGIN_SUCCESS = 20010 -const LOGIN_USERNAME_PASSWORD_ERROR = 20011 -const OLD_PASSWORD_NOT_MATCH = 20012 -const LOGOUT_SUCCESS = 20015 -const LOGOUT_FAILED = 20016 -const TOKEN_IS_ILLEGAL = 20017 -const TOKEN_HAS_EXPIRED = 20018 -const TOKEN_RENEW_SUCCESS = 20019 -const DATABASE_SELECT_OK = 20021 -const DATABASE_SAVE_OK = 20022 -const DATABASE_UPDATE_OK = 20023 -const DATABASE_DELETE_OK = 20024 -const DATABASE_SELECT_ERROR = 20031 -const DATABASE_SAVE_ERROR = 20032 -const DATABASE_UPDATE_ERROR = 20033 -const DATABASE_DELETE_ERROR = 20034 -const DATABASE_TIMEOUT_ERROR = 20035 -const DATABASE_CONNECT_ERROR = 20036 -const DATABASE_DATA_TO_LONG = 20037 -const DATABASE_DATA_VALIDATION_FAILED = 20038 -const DATABASE_EXECUTE_ERROR = 20039 - -const UNAUTHORIZED = 30010 -const ACCESS_DENIED = 30030 -const USER_DISABLE = 30031 - -const SYSTEM_ERROR = 50001 -const SYSTEM_TIMEOUT = 50002 +/** + * Response code + */ +const SYSTEM_OK = 10000 +const SYSTEM_LOGIN_SUCCESS = 10020 +const SYSTEM_PASSWORD_CHANGE_SUCCESS = 10021 +const SYSTEM_LOGOUT_SUCCESS = 10022 +const SYSTEM_TOKEN_RENEW_SUCCESS = 10023 +const SYSTEM_UNAUTHORIZED = 10030 +const SYSTEM_USERNAME_NOT_FOUND = 10031 +const SYSTEM_ACCESS_DENIED = 10032 +const SYSTEM_USER_DISABLE = 10033 +const SYSTEM_LOGIN_USERNAME_PASSWORD_ERROR = 10034 +const SYSTEM_OLD_PASSWORD_NOT_MATCH = 10035 +const SYSTEM_LOGOUT_FAILED = 10036 +const SYSTEM_TOKEN_ILLEGAL = 10037 +const SYSTEM_TOKEN_HAS_EXPIRED = 10038 +const SYSTEM_REQUEST_ILLEGAL = 10040 +const SYSTEM_ARGUMENT_NOT_VALID = 10041 +const SYSTEM_ERROR = 10050 +const SYSTEM_TIMEOUT = 10051 export { PRODUCTION_NAME, @@ -56,30 +47,21 @@ export { SIZE_ICON_LG, SIZE_ICON_XL, SYSTEM_OK, - LOGIN_SUCCESS, - LOGIN_USERNAME_PASSWORD_ERROR, - OLD_PASSWORD_NOT_MATCH, - LOGOUT_SUCCESS, - LOGOUT_FAILED, - TOKEN_IS_ILLEGAL, - TOKEN_HAS_EXPIRED, - TOKEN_RENEW_SUCCESS, - DATABASE_SELECT_OK, - DATABASE_SAVE_OK, - DATABASE_UPDATE_OK, - DATABASE_DELETE_OK, - DATABASE_SELECT_ERROR, - DATABASE_SAVE_ERROR, - DATABASE_UPDATE_ERROR, - DATABASE_DELETE_ERROR, - DATABASE_TIMEOUT_ERROR, - DATABASE_CONNECT_ERROR, - DATABASE_DATA_TO_LONG, - DATABASE_DATA_VALIDATION_FAILED, - DATABASE_EXECUTE_ERROR, - UNAUTHORIZED, - ACCESS_DENIED, - USER_DISABLE, + SYSTEM_LOGIN_SUCCESS, + SYSTEM_PASSWORD_CHANGE_SUCCESS, + SYSTEM_LOGOUT_SUCCESS, + SYSTEM_TOKEN_RENEW_SUCCESS, + SYSTEM_UNAUTHORIZED, + SYSTEM_USERNAME_NOT_FOUND, + SYSTEM_ACCESS_DENIED, + SYSTEM_USER_DISABLE, + SYSTEM_LOGIN_USERNAME_PASSWORD_ERROR, + SYSTEM_OLD_PASSWORD_NOT_MATCH, + SYSTEM_LOGOUT_FAILED, + SYSTEM_TOKEN_ILLEGAL, + SYSTEM_TOKEN_HAS_EXPIRED, + SYSTEM_REQUEST_ILLEGAL, + SYSTEM_ARGUMENT_NOT_VALID, SYSTEM_ERROR, SYSTEM_TIMEOUT } diff --git a/src/pages/Login.tsx b/src/pages/Login.tsx index efa6ee9..d0c4c5c 100644 --- a/src/pages/Login.tsx +++ b/src/pages/Login.tsx @@ -1,6 +1,11 @@ import React from 'react' import { login } from '@/utils/auth.ts' -import { LOGIN_SUCCESS, LOGIN_USERNAME_PASSWORD_ERROR } from '@/constants/Common.constants.ts' +import { + SYSTEM_LOGIN_SUCCESS, + SYSTEM_LOGIN_USERNAME_PASSWORD_ERROR, + SYSTEM_USER_DISABLE, + SYSTEM_USERNAME_NOT_FOUND +} from '@/constants/Common.constants.ts' import { setToken } from '@/utils/common.ts' import '@/assets/css/pages/login.scss' @@ -15,14 +20,15 @@ const Login: React.FC = () => { const res = value.data const { code, data } = res switch (code) { - case LOGIN_SUCCESS: + case SYSTEM_LOGIN_SUCCESS: setToken(data?.token ?? '') void messageApi.success('登录成功') setTimeout(() => { navigate('/') }, 1500) break - case LOGIN_USERNAME_PASSWORD_ERROR: + case SYSTEM_USERNAME_NOT_FOUND: + case SYSTEM_LOGIN_USERNAME_PASSWORD_ERROR: void messageApi.error( <> 用户名密码错误,请重试 @@ -30,6 +36,14 @@ const Login: React.FC = () => { ) setIsLoggingIn(false) break + case SYSTEM_USER_DISABLE: + void messageApi.error( + <> + 该用户已被禁用 + + ) + setIsLoggingIn(false) + break default: void messageApi.error( <> diff --git a/src/services/index.tsx b/src/services/index.tsx index 700b7b0..48939ab 100644 --- a/src/services/index.tsx +++ b/src/services/index.tsx @@ -2,14 +2,11 @@ import axios, { type AxiosError, AxiosInstance, AxiosRequestConfig, AxiosRespons import jwtDecode, { JwtPayload } from 'jwt-decode' import { clearLocalStorage, getToken, setToken } from '@/utils/common' import { - ACCESS_DENIED, - DATABASE_DATA_TO_LONG, - DATABASE_DATA_VALIDATION_FAILED, - DATABASE_EXECUTE_ERROR, - TOKEN_HAS_EXPIRED, - TOKEN_IS_ILLEGAL, - TOKEN_RENEW_SUCCESS, - UNAUTHORIZED + SYSTEM_ACCESS_DENIED, + SYSTEM_TOKEN_HAS_EXPIRED, + SYSTEM_TOKEN_ILLEGAL, + SYSTEM_TOKEN_RENEW_SUCCESS, + SYSTEM_UNAUTHORIZED } from '@/constants/Common.constants' import { message } from 'antd' @@ -49,7 +46,7 @@ service.interceptors.request.use( }) .then((value: AxiosResponse<_Response>) => { const response = value.data - if (response.code === TOKEN_RENEW_SUCCESS) { + if (response.code === SYSTEM_TOKEN_RENEW_SUCCESS) { setToken(response.data?.token ?? '') } }) @@ -68,9 +65,9 @@ service.interceptors.request.use( service.interceptors.response.use( (response: AxiosResponse<_Response>) => { switch (response.data.code) { - case UNAUTHORIZED: - case TOKEN_IS_ILLEGAL: - case TOKEN_HAS_EXPIRED: + case SYSTEM_UNAUTHORIZED: + case SYSTEM_TOKEN_ILLEGAL: + case SYSTEM_TOKEN_HAS_EXPIRED: clearLocalStorage() void message.error( <> @@ -81,34 +78,13 @@ service.interceptors.response.use( location.reload() }, 1500) throw response?.data - case ACCESS_DENIED: + case SYSTEM_ACCESS_DENIED: void message.error( <> 暂无权限操作 ) throw response?.data - case DATABASE_DATA_TO_LONG: - void message.error( - <> - 数据过长 - - ) - throw response?.data - case DATABASE_DATA_VALIDATION_FAILED: - void message.error( - <> - 数据验证失败 - - ) - throw response?.data - case DATABASE_EXECUTE_ERROR: - void message.error( - <> - 数据库执行出错 - - ) - throw response?.data } return response }, diff --git a/src/utils/auth.ts b/src/utils/auth.ts index 197427c..097e112 100644 --- a/src/utils/auth.ts +++ b/src/utils/auth.ts @@ -1,5 +1,5 @@ import { clearLocalStorage, getCaptcha, getLocalStorage, setLocalStorage } from './common' -import { DATABASE_SELECT_OK, TOKEN_NAME } from '@/constants/Common.constants' +import { SYSTEM_OK, TOKEN_NAME } from '@/constants/Common.constants' import request from '@/services' let captcha: Captcha @@ -35,7 +35,7 @@ export async function requestUser(): Promise { await request.get('/user/info').then((value) => { const response = value.data - if (response.code === DATABASE_SELECT_OK) { + if (response.code === SYSTEM_OK) { user = response.data setLocalStorage('userInfo', JSON.stringify(user)) } diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 53a7371..324bb5f 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -17,6 +17,7 @@ type RouteHandle = { type _Response = { code: number + success: boolean msg: string data: T | null }