import React, { useState } from 'react'; import { Form, Input, Button, message, Card, Typography } from 'antd'; import { LockOutlined } from '@ant-design/icons'; import { request, useModel } from '@umijs/max'; import { isEmpty } from 'lodash'; const { Title } = Typography; const ResetPassword: React.FC = () => { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [messageApi, contextHolder] = message.useMessage(); const { initialState, setInitialState } = useModel('@@initialState'); // 提交重置密码请求 const handleResetPassword = async () => { try { debugger; const values = form.getFieldsValue(); if (initialState?.currentUser?.id == null) { messageApi.error('用户信息不存在,请重新登录'); return; } // 检查两次密码是否一致 if (values.newPassword !== values.confirmPassword) { messageApi.error('两次输入的密码不一致'); return; } if (isEmpty(values.newPassword)) { messageApi.error('请输入新密码'); return; } setLoading(true); // 发送重置密码请求 const res = await request>(`/lms/User/ResetPassword/${initialState?.currentUser?.id}`, { method: 'POST', data: { "newPassword": values.newPassword, } }); if (res.code !== 1) { throw new Error(res.message); } messageApi.success('密码重置成功'); form.resetFields(); } catch (error: any) { messageApi.error(error.message || '密码重置失败'); } finally { setLoading(false); } }; return ( {contextHolder}
设置新密码
} placeholder="请输入新密码" style={{ height: '45px', borderRadius: '4px', }} /> ({ validator(_, value) { if (!value || getFieldValue('newPassword') === value) { return Promise.resolve(); } return Promise.reject(new Error('两次输入的密码不一致')); }, }) ]} > } placeholder="请再次输入新密码" style={{ height: '45px', borderRadius: '4px', }} />
); }; export default ResetPassword;