|
|
|
@@ -289,216 +289,217 @@ const Login: React.FC = () => { |
|
|
|
> |
|
|
|
账号登录 |
|
|
|
</div> |
|
|
|
<LoginForm |
|
|
|
title="" |
|
|
|
className={styles.loginForm} |
|
|
|
initialValues={{ |
|
|
|
autoLogin: true, |
|
|
|
}} |
|
|
|
// actions={[ |
|
|
|
// <FormattedMessage |
|
|
|
// key="loginWith" |
|
|
|
// id="pages.login.loginWith" |
|
|
|
// defaultMessage="其他登录方式" |
|
|
|
// />, |
|
|
|
// <ActionIcons key="icons" />, |
|
|
|
// ]} |
|
|
|
onFinish={async (values) => { |
|
|
|
await handleSubmit(values as API.LoginParams); |
|
|
|
}} |
|
|
|
> |
|
|
|
{code !== 200 && loginType === 'account' && ( |
|
|
|
<LoginMessage |
|
|
|
content={intl.formatMessage({ |
|
|
|
id: 'pages.login.accountLogin.errorMessage', |
|
|
|
defaultMessage: '账户或密码错误(admin/admin123)', |
|
|
|
})} |
|
|
|
/> |
|
|
|
)} |
|
|
|
{type === 'account' && ( |
|
|
|
<> |
|
|
|
<ProFormText |
|
|
|
name="username" |
|
|
|
initialValue="admin" |
|
|
|
fieldProps={{ |
|
|
|
size: 'large', |
|
|
|
prefix: <UserOutlined />, |
|
|
|
}} |
|
|
|
placeholder={intl.formatMessage({ |
|
|
|
id: 'pages.login.username.placeholder', |
|
|
|
defaultMessage: '用户名: admin', |
|
|
|
})} |
|
|
|
rules={[ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: ( |
|
|
|
<FormattedMessage |
|
|
|
id="pages.login.username.required" |
|
|
|
defaultMessage="请输入用户名!" |
|
|
|
/> |
|
|
|
), |
|
|
|
}, |
|
|
|
]} |
|
|
|
/> |
|
|
|
<ProFormText.Password |
|
|
|
name="password" |
|
|
|
initialValue="admin123" |
|
|
|
fieldProps={{ |
|
|
|
size: 'large', |
|
|
|
prefix: <LockOutlined />, |
|
|
|
}} |
|
|
|
placeholder={intl.formatMessage({ |
|
|
|
id: 'pages.login.password.placeholder', |
|
|
|
defaultMessage: '密码: admin123', |
|
|
|
<div className={styles.loginForm}> |
|
|
|
<LoginForm |
|
|
|
title="" |
|
|
|
initialValues={{ |
|
|
|
autoLogin: true, |
|
|
|
}} |
|
|
|
// actions={[ |
|
|
|
// <FormattedMessage |
|
|
|
// key="loginWith" |
|
|
|
// id="pages.login.loginWith" |
|
|
|
// defaultMessage="其他登录方式" |
|
|
|
// />, |
|
|
|
// <ActionIcons key="icons" />, |
|
|
|
// ]} |
|
|
|
onFinish={async (values) => { |
|
|
|
await handleSubmit(values as API.LoginParams); |
|
|
|
}} |
|
|
|
> |
|
|
|
{code !== 200 && loginType === 'account' && ( |
|
|
|
<LoginMessage |
|
|
|
content={intl.formatMessage({ |
|
|
|
id: 'pages.login.accountLogin.errorMessage', |
|
|
|
defaultMessage: '账户或密码错误(admin/admin123)', |
|
|
|
})} |
|
|
|
rules={[ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: ( |
|
|
|
<FormattedMessage |
|
|
|
id="pages.login.password.required" |
|
|
|
defaultMessage="请输入密码!" |
|
|
|
/> |
|
|
|
), |
|
|
|
}, |
|
|
|
]} |
|
|
|
/> |
|
|
|
<Row> |
|
|
|
<Col flex={4}> |
|
|
|
<ProFormText |
|
|
|
style={{ |
|
|
|
float: 'right', |
|
|
|
}} |
|
|
|
name="code" |
|
|
|
placeholder={intl.formatMessage({ |
|
|
|
id: 'pages.login.captcha.placeholder', |
|
|
|
defaultMessage: '请输入验证', |
|
|
|
})} |
|
|
|
rules={[ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: ( |
|
|
|
<FormattedMessage |
|
|
|
id="pages.searchTable.updateForm.ruleName.nameRules" |
|
|
|
defaultMessage="请输入验证啊" |
|
|
|
/> |
|
|
|
), |
|
|
|
}, |
|
|
|
]} |
|
|
|
/> |
|
|
|
</Col> |
|
|
|
<Col> |
|
|
|
<Image |
|
|
|
src={captchaCode} |
|
|
|
alt="验证码" |
|
|
|
style={{ |
|
|
|
display: 'inline-block', |
|
|
|
verticalAlign: 'top', |
|
|
|
cursor: 'pointer', |
|
|
|
paddingLeft: '22px', |
|
|
|
width: '170px', |
|
|
|
height: '66px', |
|
|
|
}} |
|
|
|
preview={false} |
|
|
|
onClick={() => getCaptchaCode()} |
|
|
|
/> |
|
|
|
</Col> |
|
|
|
</Row> |
|
|
|
</> |
|
|
|
)} |
|
|
|
)} |
|
|
|
{type === 'account' && ( |
|
|
|
<> |
|
|
|
<ProFormText |
|
|
|
name="username" |
|
|
|
initialValue="admin" |
|
|
|
fieldProps={{ |
|
|
|
size: 'large', |
|
|
|
prefix: <UserOutlined />, |
|
|
|
}} |
|
|
|
placeholder={intl.formatMessage({ |
|
|
|
id: 'pages.login.username.placeholder', |
|
|
|
defaultMessage: '用户名: admin', |
|
|
|
})} |
|
|
|
rules={[ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: ( |
|
|
|
<FormattedMessage |
|
|
|
id="pages.login.username.required" |
|
|
|
defaultMessage="请输入用户名!" |
|
|
|
/> |
|
|
|
), |
|
|
|
}, |
|
|
|
]} |
|
|
|
/> |
|
|
|
<ProFormText.Password |
|
|
|
name="password" |
|
|
|
initialValue="admin123" |
|
|
|
fieldProps={{ |
|
|
|
size: 'large', |
|
|
|
prefix: <LockOutlined />, |
|
|
|
}} |
|
|
|
placeholder={intl.formatMessage({ |
|
|
|
id: 'pages.login.password.placeholder', |
|
|
|
defaultMessage: '密码: admin123', |
|
|
|
})} |
|
|
|
rules={[ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: ( |
|
|
|
<FormattedMessage |
|
|
|
id="pages.login.password.required" |
|
|
|
defaultMessage="请输入密码!" |
|
|
|
/> |
|
|
|
), |
|
|
|
}, |
|
|
|
]} |
|
|
|
/> |
|
|
|
<Row> |
|
|
|
<Col flex={4}> |
|
|
|
<ProFormText |
|
|
|
style={{ |
|
|
|
float: 'right', |
|
|
|
}} |
|
|
|
name="code" |
|
|
|
placeholder={intl.formatMessage({ |
|
|
|
id: 'pages.login.captcha.placeholder', |
|
|
|
defaultMessage: '请输入验证', |
|
|
|
})} |
|
|
|
rules={[ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: ( |
|
|
|
<FormattedMessage |
|
|
|
id="pages.searchTable.updateForm.ruleName.nameRules" |
|
|
|
defaultMessage="请输入验证啊" |
|
|
|
/> |
|
|
|
), |
|
|
|
}, |
|
|
|
]} |
|
|
|
/> |
|
|
|
</Col> |
|
|
|
<Col> |
|
|
|
<Image |
|
|
|
src={captchaCode} |
|
|
|
alt="验证码" |
|
|
|
style={{ |
|
|
|
display: 'inline-block', |
|
|
|
verticalAlign: 'top', |
|
|
|
cursor: 'pointer', |
|
|
|
paddingLeft: '22px', |
|
|
|
width: '170px', |
|
|
|
height: '66px', |
|
|
|
}} |
|
|
|
preview={false} |
|
|
|
onClick={() => getCaptchaCode()} |
|
|
|
/> |
|
|
|
</Col> |
|
|
|
</Row> |
|
|
|
</> |
|
|
|
)} |
|
|
|
|
|
|
|
{code !== 200 && loginType === 'mobile' && <LoginMessage content="验证码错误" />} |
|
|
|
{type === 'mobile' && ( |
|
|
|
<> |
|
|
|
<ProFormText |
|
|
|
fieldProps={{ |
|
|
|
size: 'large', |
|
|
|
prefix: <MobileOutlined />, |
|
|
|
}} |
|
|
|
name="mobile" |
|
|
|
placeholder={intl.formatMessage({ |
|
|
|
id: 'pages.login.phoneNumber.placeholder', |
|
|
|
defaultMessage: '手机号', |
|
|
|
})} |
|
|
|
rules={[ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: ( |
|
|
|
<FormattedMessage |
|
|
|
id="pages.login.phoneNumber.required" |
|
|
|
defaultMessage="请输入手机号!" |
|
|
|
/> |
|
|
|
), |
|
|
|
}, |
|
|
|
{ |
|
|
|
pattern: /^1\d{10}$/, |
|
|
|
message: ( |
|
|
|
<FormattedMessage |
|
|
|
id="pages.login.phoneNumber.invalid" |
|
|
|
defaultMessage="手机号格式错误!" |
|
|
|
/> |
|
|
|
), |
|
|
|
}, |
|
|
|
]} |
|
|
|
/> |
|
|
|
<ProFormCaptcha |
|
|
|
fieldProps={{ |
|
|
|
size: 'large', |
|
|
|
prefix: <LockOutlined />, |
|
|
|
}} |
|
|
|
captchaProps={{ |
|
|
|
size: 'large', |
|
|
|
}} |
|
|
|
placeholder={intl.formatMessage({ |
|
|
|
id: 'pages.login.captcha.placeholder', |
|
|
|
defaultMessage: '请输入验证码', |
|
|
|
})} |
|
|
|
captchaTextRender={(timing, count) => { |
|
|
|
if (timing) { |
|
|
|
return `${count} ${intl.formatMessage({ |
|
|
|
id: 'pages.getCaptchaSecondText', |
|
|
|
{code !== 200 && loginType === 'mobile' && <LoginMessage content="验证码错误" />} |
|
|
|
{type === 'mobile' && ( |
|
|
|
<> |
|
|
|
<ProFormText |
|
|
|
fieldProps={{ |
|
|
|
size: 'large', |
|
|
|
prefix: <MobileOutlined />, |
|
|
|
}} |
|
|
|
name="mobile" |
|
|
|
placeholder={intl.formatMessage({ |
|
|
|
id: 'pages.login.phoneNumber.placeholder', |
|
|
|
defaultMessage: '手机号', |
|
|
|
})} |
|
|
|
rules={[ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: ( |
|
|
|
<FormattedMessage |
|
|
|
id="pages.login.phoneNumber.required" |
|
|
|
defaultMessage="请输入手机号!" |
|
|
|
/> |
|
|
|
), |
|
|
|
}, |
|
|
|
{ |
|
|
|
pattern: /^1\d{10}$/, |
|
|
|
message: ( |
|
|
|
<FormattedMessage |
|
|
|
id="pages.login.phoneNumber.invalid" |
|
|
|
defaultMessage="手机号格式错误!" |
|
|
|
/> |
|
|
|
), |
|
|
|
}, |
|
|
|
]} |
|
|
|
/> |
|
|
|
<ProFormCaptcha |
|
|
|
fieldProps={{ |
|
|
|
size: 'large', |
|
|
|
prefix: <LockOutlined />, |
|
|
|
}} |
|
|
|
captchaProps={{ |
|
|
|
size: 'large', |
|
|
|
}} |
|
|
|
placeholder={intl.formatMessage({ |
|
|
|
id: 'pages.login.captcha.placeholder', |
|
|
|
defaultMessage: '请输入验证码', |
|
|
|
})} |
|
|
|
captchaTextRender={(timing, count) => { |
|
|
|
if (timing) { |
|
|
|
return `${count} ${intl.formatMessage({ |
|
|
|
id: 'pages.getCaptchaSecondText', |
|
|
|
defaultMessage: '获取验证码', |
|
|
|
})}`; |
|
|
|
} |
|
|
|
return intl.formatMessage({ |
|
|
|
id: 'pages.login.phoneLogin.getVerificationCode', |
|
|
|
defaultMessage: '获取验证码', |
|
|
|
})}`; |
|
|
|
} |
|
|
|
return intl.formatMessage({ |
|
|
|
id: 'pages.login.phoneLogin.getVerificationCode', |
|
|
|
defaultMessage: '获取验证码', |
|
|
|
}); |
|
|
|
}} |
|
|
|
name="captcha" |
|
|
|
rules={[ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: ( |
|
|
|
<FormattedMessage |
|
|
|
id="pages.login.captcha.required" |
|
|
|
defaultMessage="请输入验证码!" |
|
|
|
/> |
|
|
|
), |
|
|
|
}, |
|
|
|
]} |
|
|
|
onGetCaptcha={async (phone) => { |
|
|
|
const result = await getFakeCaptcha({ |
|
|
|
phone, |
|
|
|
}); |
|
|
|
if (!result) { |
|
|
|
return; |
|
|
|
} |
|
|
|
message.success('获取验证码成功!验证码为:1234'); |
|
|
|
}} |
|
|
|
/> |
|
|
|
</> |
|
|
|
)} |
|
|
|
<div |
|
|
|
style={{ |
|
|
|
marginBottom: 24, |
|
|
|
}} |
|
|
|
> |
|
|
|
<ProFormCheckbox noStyle name="autoLogin"> |
|
|
|
<FormattedMessage id="pages.login.rememberMe" defaultMessage="记住密码" /> |
|
|
|
</ProFormCheckbox> |
|
|
|
</div> |
|
|
|
</LoginForm> |
|
|
|
}); |
|
|
|
}} |
|
|
|
name="captcha" |
|
|
|
rules={[ |
|
|
|
{ |
|
|
|
required: true, |
|
|
|
message: ( |
|
|
|
<FormattedMessage |
|
|
|
id="pages.login.captcha.required" |
|
|
|
defaultMessage="请输入验证码!" |
|
|
|
/> |
|
|
|
), |
|
|
|
}, |
|
|
|
]} |
|
|
|
onGetCaptcha={async (phone) => { |
|
|
|
const result = await getFakeCaptcha({ |
|
|
|
phone, |
|
|
|
}); |
|
|
|
if (!result) { |
|
|
|
return; |
|
|
|
} |
|
|
|
message.success('获取验证码成功!验证码为:1234'); |
|
|
|
}} |
|
|
|
/> |
|
|
|
</> |
|
|
|
)} |
|
|
|
<div |
|
|
|
style={{ |
|
|
|
marginBottom: 24, |
|
|
|
}} |
|
|
|
> |
|
|
|
<ProFormCheckbox noStyle name="autoLogin"> |
|
|
|
<FormattedMessage id="pages.login.rememberMe" defaultMessage="记住密码" /> |
|
|
|
</ProFormCheckbox> |
|
|
|
</div> |
|
|
|
</LoginForm> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* <Helmet> |
|
|
|
|