|  |  | 
 |  |  |   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, 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(intl.formatMessage({ id: 'page.update.success', defaultMessage: '修改成功' })); | 
 |  |  |       form.resetFields(); | 
 |  |  |       return true; | 
 |  |  |     } else { | 
 |  |  |       message.error(resp.msg); | 
 |  |  |       return false; | 
 |  |  |     } | 
 |  |  |   } catch (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) => { | 
 |  |  |     console.log(values); | 
 |  |  |     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="currentPwd" | 
 |  |  |             label="当前密码" | 
 |  |  |             name="oldPwd" | 
 |  |  |             label={intl.formatMessage({ id: 'personal.security.cur.pwd', defaultMessage: '当前密码' })} | 
 |  |  |             rules={[ | 
 |  |  |               { | 
 |  |  |                 required: true, | 
 |  |  |                 message: '请输入当前密码!', | 
 |  |  |               }, | 
 |  |  |             ]} | 
 |  |  |           /> | 
 |  |  |           <ProFormText.Password | 
 |  |  |             width="md" | 
 |  |  |             name="newPwd" | 
 |  |  |             label="新密码" | 
 |  |  |             name="password" | 
 |  |  |             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(intl.formatMessage({ id: 'personal.security.new.pwd.rule.length', defaultMessage: '新密码必须是4到16个字符!' }))); | 
 |  |  |                 }, | 
 |  |  |               }, | 
 |  |  |             ]} | 
 |  |  |           /> | 
 |  |  |           <ProFormText.Password | 
 |  |  |             width="md" | 
 |  |  |             name="newPwdRepeat" | 
 |  |  |             label="确认密码" | 
 |  |  |             name="passwordRepeat" | 
 |  |  |             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(intl.formatMessage({ id: 'personal.security.new.pwd.rule.check', defaultMessage: '两次输入的密码不相符!' }))); | 
 |  |  |                 } | 
 |  |  |               } | 
 |  |  |             ]} | 
 |  |  |           /> | 
 |  |  |         </ProForm> |