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