| | |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | | 'login.success':'Login successful!', |
| | | 'login.failure':'Login failed, please try again!', |
| | | 'login.accountLogin.tab':'Account Login', |
| | | 'login.phoneLogin.tab':'Phone Login', |
| | | 'login.host':'Host:', |
| | | 'login.rule.host':'Please select host', |
| | | 'login.username':'Username:', |
| | | 'login.rule.username':'Please enter your username', |
| | | 'login.password':'Password:', |
| | | 'login.rule.password':'Please enter your password', |
| | | 'login.accountLogin.errorMessage':'Incorrect username/password', |
| | | 'login.rememberMe':'Remember me', |
| | | 'login.phoneNumber.placeholder':'Phone Number', |
| | | 'login.phoneNumber.required':'Please input your phone number!', |
| | | 'login.phoneNumber.invalid':'Phone number is invalid!', |
| | | 'login.captcha.placeholder':'Verification Code', |
| | | 'login.getCaptchaSecondText':'sec(s)', |
| | | 'login.phoneLogin.getVerificationCode':'Get Code', |
| | | 'login.captcha.required':'Please input verification code!', |
| | | 'login.phoneLogin.none':'Mobile phone login is not enabled', |
| | | '':'', |
| | | '':'', |
| | | '':'', |
| | |
| | | } |
| | | }; |
| | | |
| | | |
| | | const handleSubmit = async (values) => { |
| | | try { |
| | | const r = await request('/api/login', { |
| | |
| | | }) |
| | | } |
| | | message.success(intl.formatMessage({ |
| | | id: 'pages.login.success', |
| | | id: 'login.success', |
| | | defaultMessage: '登录成功!', |
| | | })); |
| | | setToken(r.data.accessToken, values.autoLogin); |
| | |
| | | } catch (error) { |
| | | console.log(error); |
| | | message.error(intl.formatMessage({ |
| | | id: 'pages.login.failure', |
| | | id: 'login.failure', |
| | | defaultMessage: '登录失败,请重试!', |
| | | })); |
| | | } |
| | |
| | | activeKey={loginType} |
| | | onChange={(activeKey) => setLoginType(activeKey)} |
| | | > |
| | | <Tabs.TabPane key={'account'} tab={'账号密码登录'} /> |
| | | <Tabs.TabPane key={'phone'} tab={'手机号登录'} /> |
| | | <Tabs.TabPane key={'account'} tab={intl.formatMessage({ |
| | | id: 'login.accountLogin.tab', |
| | | defaultMessage: '账户密码登录', |
| | | })} /> |
| | | <Tabs.TabPane key={'phone'} tab={intl.formatMessage({ |
| | | id: 'login.phoneLogin.tab', |
| | | defaultMessage: '手机号登录', |
| | | })} /> |
| | | </Tabs> |
| | | {loginType === 'account' && ( |
| | | <> |
| | | <ProFormSelect |
| | | className="centered-select" |
| | | name="hostId" |
| | | placeholder="机构:" |
| | | placeholder={intl.formatMessage({ |
| | | id: 'login.host', |
| | | defaultMessage: '机构:', |
| | | })} |
| | | rules={[ |
| | | { |
| | | required: true, |
| | | message: '请选择机构!', |
| | | message: intl.formatMessage({ |
| | | id: 'login.rule.host', |
| | | defaultMessage: '请选择机构!', |
| | | }), |
| | | }, |
| | | ]} |
| | | options={hostList} |
| | |
| | | /> |
| | | ), |
| | | }} |
| | | placeholder={'用户名: '} |
| | | placeholder={intl.formatMessage({ |
| | | id: 'login.username', |
| | | defaultMessage: '用户名: ', |
| | | })} |
| | | rules={[ |
| | | { |
| | | required: true, |
| | | message: '请输入用户名!', |
| | | message: intl.formatMessage({ |
| | | id: 'login.rule.username', |
| | | defaultMessage: '请输入用户名!', |
| | | }), |
| | | }, |
| | | ]} |
| | | /> |
| | |
| | | /> |
| | | ), |
| | | }} |
| | | placeholder={'密码: '} |
| | | placeholder={intl.formatMessage({ |
| | | id: 'login.password', |
| | | defaultMessage: '密码: ', |
| | | })} |
| | | rules={[ |
| | | { |
| | | required: true, |
| | | message: '请输入密码!', |
| | | message: intl.formatMessage({ |
| | | id: 'login.rule.password', |
| | | defaultMessage: '请输入密码!!', |
| | | }), |
| | | }, |
| | | ]} |
| | | /> |
| | |
| | | )} |
| | | {status !== 200 && loginType === 'account' && ( |
| | | <LoginMessage |
| | | content={errDesc} |
| | | content={intl.formatMessage({ |
| | | id: 'login.accountLogin.errorMessage', |
| | | defaultMessage: '账户或密码错误', |
| | | })} |
| | | /> |
| | | )} |
| | | {loginType === 'phone' && ( |
| | |
| | | <ProFormSelect |
| | | className="centered-select" |
| | | name="hostId" |
| | | placeholder="机构:" |
| | | placeholder={intl.formatMessage({ |
| | | id: 'login.host', |
| | | defaultMessage: '机构:', |
| | | })} |
| | | rules={[ |
| | | { |
| | | required: true, |
| | | message: '请选择机构!', |
| | | message: intl.formatMessage({ |
| | | id: 'login.rule.host', |
| | | defaultMessage: '请选择机构!', |
| | | }), |
| | | }, |
| | | ]} |
| | | options={hostList} |
| | |
| | | ), |
| | | }} |
| | | name="mobile" |
| | | placeholder={'手机号'} |
| | | placeholder={intl.formatMessage({ |
| | | id: 'login.phoneNumber.placeholder', |
| | | defaultMessage: '手机号', |
| | | })} |
| | | rules={[ |
| | | { |
| | | required: true, |
| | | message: '请输入手机号!', |
| | | message: |
| | | <FormattedMessage |
| | | id="login.phoneNumber.required" |
| | | defaultMessage="请输入手机号!" |
| | | />, |
| | | }, |
| | | { |
| | | pattern: /^1\d{10}$/, |
| | | message: '手机号格式错误!', |
| | | message: |
| | | <FormattedMessage |
| | | id="login.phoneNumber.invalid" |
| | | defaultMessage="手机号格式错误!" |
| | | />, |
| | | }, |
| | | ]} |
| | | /> |
| | |
| | | captchaProps={{ |
| | | size: 'large', |
| | | }} |
| | | placeholder={'请输入验证码'} |
| | | placeholder={intl.formatMessage({ |
| | | id: 'login.captcha.placeholder', |
| | | defaultMessage: '请输入验证码', |
| | | })} |
| | | captchaTextRender={(timing, count) => { |
| | | if (timing) { |
| | | return `${count} ${'获取验证码'}`; |
| | | return `${count} ${intl.formatMessage({ |
| | | id: 'pages.getCaptchaSecondText', |
| | | defaultMessage: 'sec(秒)', |
| | | })}`; |
| | | } |
| | | return '获取验证码'; |
| | | return intl.formatMessage({ |
| | | id: 'login.phoneLogin.getVerificationCode', |
| | | defaultMessage: '获取验证码', |
| | | }); |
| | | }} |
| | | name="captcha" |
| | | rules={[ |
| | | { |
| | | required: true, |
| | | message: '请输入验证码!', |
| | | message: |
| | | <FormattedMessage |
| | | id="login.captcha.required" |
| | | defaultMessage="请输入验证码!" |
| | | />, |
| | | }, |
| | | ]} |
| | | onGetCaptcha={async () => { |
| | | // message.success('获取验证码成功!验证码为:1234'); |
| | | message.warning('未开启手机号登录! '); |
| | | message.warning(intl.formatMessage({ |
| | | id: 'login.phoneLogin.none', |
| | | defaultMessage: '未开启手机号登录', |
| | | })); |
| | | }} |
| | | /> |
| | | </> |
| | |
| | | setRememberMe(e.target.checked); |
| | | }} |
| | | > |
| | | 自动登录 |
| | | {intl.formatMessage({ |
| | | id: 'login.rememberMe', |
| | | defaultMessage: '自动登录', |
| | | })} |
| | | </ProFormCheckbox> |
| | | </div> |
| | | </LoginFormPage> |
| | |
| | | if (timing) { |
| | | return `${count} ${intl.formatMessage({ |
| | | id: 'pages.getCaptchaSecondText', |
| | | defaultMessage: '获取验证码', |
| | | defaultMessage: '秒', |
| | | })}`; |
| | | } |
| | | return intl.formatMessage({ |