|
|
@@ -10,6 +10,7 @@ import { setAuthCache } from '@/utils/auth'
|
|
|
import { TOKEN_KEY } from '@/utils/cache/cacheEnum'
|
|
|
import { DEFAULT_CACHE_TIME } from '@/settings/encryptionSetting'
|
|
|
import consts from '@/consts'
|
|
|
+import { isUnDef } from '@/utils/is'
|
|
|
|
|
|
const LoginMessage = ({ content }) => (
|
|
|
<Alert
|
|
|
@@ -23,7 +24,6 @@ const LoginMessage = ({ content }) => (
|
|
|
)
|
|
|
|
|
|
const Login = () => {
|
|
|
- const [submitting, setSubmitting] = useState(false)
|
|
|
const [userLoginState, setUserLoginState] = useState({
|
|
|
submitting: false,
|
|
|
status: '',
|
|
|
@@ -59,23 +59,24 @@ const Login = () => {
|
|
|
|
|
|
const handleSubmit = async values => {
|
|
|
setUserLoginState({ ...userLoginState, submitting: true })
|
|
|
- const { code = -1, data: { token = '' } = {} } = await apiLogin({ ...values })
|
|
|
- if (code === consts.RET_CODE.SUCCESS) {
|
|
|
+ const { code, data: { token = '' } = {} } = await apiLogin({ ...values })
|
|
|
+ if (isUnDef(code)) {
|
|
|
+ // 不设置
|
|
|
+ setUserLoginState({ ...userLoginState, submitting: false })
|
|
|
+ } else if (code === consts.RET_CODE.SUCCESS) {
|
|
|
setAuthCache(TOKEN_KEY, token, DEFAULT_CACHE_TIME)
|
|
|
const userinfo = await fetchUserInfo()
|
|
|
/** 此方法会跳转到 redirect 参数所在的位置 */
|
|
|
return goto(userinfo?.currentUser?.username)
|
|
|
+ } else {
|
|
|
+ // 如果失败去设置用户错误信息
|
|
|
+ setUserLoginState({ ...userLoginState, status: 'error', submitting: false })
|
|
|
}
|
|
|
- // 如果失败去设置用户错误信息
|
|
|
- setUserLoginState({ ...userLoginState, status: 'error', submitting: false })
|
|
|
}
|
|
|
- const { status, type: loginType } = userLoginState
|
|
|
+ const { submitting, status, type: loginType } = userLoginState
|
|
|
|
|
|
return (
|
|
|
<div className={styles.container}>
|
|
|
- <div className={styles.lang} data-lang>
|
|
|
- {SelectLang && <SelectLang />}
|
|
|
- </div>
|
|
|
<div className={styles.content}>
|
|
|
<div className={styles.top}>
|
|
|
<div className={styles.header}>
|