blob: 26825d4e11518ace2ca57d282163fcbc6a8a191e [file] [log] [blame]
Jiarenxiang38dcb052025-03-13 16:40:09 +08001import React from 'react';
2import { Form, message } from 'antd';
3import { FormattedMessage, useIntl } from '@umijs/max';
4import { updateUserPwd } from '@/services/system/user';
5import { ProForm, ProFormText } from '@ant-design/pro-components';
6
7const ResetPassword: React.FC = () => {
8 const [form] = Form.useForm();
9 const intl = useIntl();
10
11 const handleFinish = async (values: Record<string, any>) => {
12 const resp = await updateUserPwd(values.oldPassword, values.newPassword);
13 if (resp.code === 200) {
14 message.success('密码重置成功。');
15 } else {
16 message.warning(resp.msg);
17 }
18 };
19
20 const checkPassword = (rule: any, value: string) => {
21 const login_password = form.getFieldValue('newPassword');
22 if (value === login_password) {
23 return Promise.resolve();
24 }
25 return Promise.reject(new Error('两次密码输入不一致'));
26 };
27
28 return (
29 <>
30 <ProForm form={form} onFinish={handleFinish}>
31 <ProFormText.Password
32 name="oldPassword"
33 label={intl.formatMessage({
34 id: 'system.user.old_password',
35 defaultMessage: '旧密码',
36 })}
37 width="xl"
38 placeholder="请输入旧密码"
39 rules={[
40 {
41 required: true,
42 message: <FormattedMessage id="请输入旧密码!" defaultMessage="请输入旧密码!" />,
43 },
44 ]}
45 />
46 <ProFormText.Password
47 name="newPassword"
48 label={intl.formatMessage({
49 id: 'system.user.new_password',
50 defaultMessage: '新密码',
51 })}
52 width="xl"
53 placeholder="请输入新密码"
54 rules={[
55 {
56 required: true,
57 message: <FormattedMessage id="请输入新密码!" defaultMessage="请输入新密码!" />,
58 },
59 ]}
60 />
61 <ProFormText.Password
62 name="confirmPassword"
63 label={intl.formatMessage({
64 id: 'system.user.confirm_password',
65 defaultMessage: '确认密码',
66 })}
67 width="xl"
68 placeholder="请输入确认密码"
69 rules={[
70 {
71 required: true,
72 message: (
73 <FormattedMessage id="请输入确认密码!" defaultMessage="请输入确认密码!" />
74 ),
75 },
76 { validator: checkPassword },
77 ]}
78 />
79 </ProForm>
80 </>
81 );
82};
83
84export default ResetPassword;