| | |
| | | ProForm, |
| | | ProFormText |
| | | } from '@ant-design/pro-components'; |
| | | import { FormattedMessage, useIntl } from '@umijs/max'; |
| | | import { useModel } from '@umijs/max'; |
| | | import Http from '@/utils/http'; |
| | | |
| | | const resetPwd = async (val) => { |
| | | const hide = message.loading('正在修改'); |
| | | const resetPwd = async (val, form, intl) => { |
| | | const hide = message.loading(intl.formatMessage({ id: 'page.updating', defaultMessage: '正在修改' })); |
| | | try { |
| | | const resp = await Http.doPost('api/user/reset/pwd', val); |
| | | if (resp.code === 200) { |
| | | message.success('修改成功'); |
| | | message.success(intl.formatMessage({ id: 'page.update.success', defaultMessage: '修改成功' })); |
| | | form.resetFields(); |
| | | return true; |
| | | } else { |
| | | message.error(resp.msg); |
| | | return false; |
| | | } |
| | | } catch (error) { |
| | | message.error('修改失败请重试!'); |
| | | message.error(intl.formatMessage({ id: 'page.update.fail', defaultMessage: '修改失败请重试!' })); |
| | | return false; |
| | | } finally { |
| | | hide(); |
| | |
| | | }; |
| | | |
| | | const SecurityView = () => { |
| | | const intl = useIntl(); |
| | | const [form] = Form.useForm(); |
| | | const { initialState } = useModel('@@initialState'); |
| | | const { currentUser } = initialState || {}; |
| | | |
| | | const handleFinish = (values) => { |
| | | resetPwd({...values, id: currentUser.id}); |
| | | resetPwd({ ...values, id: currentUser.id }, form, intl); |
| | | } |
| | | |
| | | return ( |
| | |
| | | onFinish={handleFinish} |
| | | submitter={{ |
| | | searchConfig: { |
| | | submitText: '修改密码', |
| | | submitText: intl.formatMessage({ id: 'personal.security.button.name', defaultMessage: '修改密码' }), |
| | | }, |
| | | render: (_, dom) => dom[1], |
| | | }} |
| | |
| | | <ProFormText.Password |
| | | width="md" |
| | | name="oldPwd" |
| | | label="当前密码" |
| | | label={intl.formatMessage({ id: 'personal.security.cur.pwd', defaultMessage: '当前密码' })} |
| | | rules={[ |
| | | { |
| | | required: true, |
| | | message: '请输入当前密码!', |
| | | }, |
| | | ]} |
| | | /> |
| | | <ProFormText.Password |
| | | width="md" |
| | | name="password" |
| | | label="新密码" |
| | | label={intl.formatMessage({ id: 'personal.security.new.pwd', defaultMessage: '新密码' })} |
| | | rules={[ |
| | | { |
| | | required: true, |
| | | message: '请输入新密码!', |
| | | }, |
| | | { |
| | | validator(_, value) { |
| | | if (value.length >= 4 && value.length <= 16) { |
| | | return Promise.resolve(); |
| | | } |
| | | return Promise.reject(new Error('新密码必须是4到16个字符!')); |
| | | return Promise.reject(new Error(intl.formatMessage({ id: 'personal.security.new.pwd.rule.length', defaultMessage: '新密码必须是4到16个字符!' }))); |
| | | }, |
| | | }, |
| | | ]} |
| | |
| | | <ProFormText.Password |
| | | width="md" |
| | | name="passwordRepeat" |
| | | label="确认密码" |
| | | label={intl.formatMessage({ id: 'personal.security.new.pwd.confirm', defaultMessage: '确认密码' })} |
| | | rules={[ |
| | | { |
| | | required: true, |
| | | message: '请再次输入新密码!', |
| | | }, |
| | | { |
| | | validator(_, value) { |
| | | if (form.getFieldValue('password') === value) return Promise.resolve(); |
| | | return Promise.reject(new Error('两次输入的密码不相符!')); |
| | | return Promise.reject(new Error(intl.formatMessage({ id: 'personal.security.new.pwd.rule.check', defaultMessage: '两次输入的密码不相符!' }))); |
| | | } |
| | | } |
| | | ]} |