/* eslint-disable import/no-unresolved */ import React, { useEffect } from 'react'; import { Modal, Form, Input, notification, message } from 'antd'; import { updateUserPassword } from '@/services/userManage/api'; const ChangePasswordModal = props => { const { visible, currentUser, currentSelectOrg, submitSearchUser, onSelect, onCancel } = props; const [passwordForm] = Form.useForm(); // 修改密码 useEffect(() => { console.log(currentUser); if (visible) { console.log(currentUser.password); passwordForm.setFieldsValue({ oldPassword: currentUser.password, newPassword: '', passwordConfirm: '', }); } }, [visible]); // 提交-修改密码 const submitChangePassword = () => { const oldPassword = passwordForm.getFieldValue('oldPassword'); const newPassword = passwordForm.getFieldValue('newPassword'); const passwordConfirm = passwordForm.getFieldValue('passwordConfirm'); if ( newPassword && newPassword.length >= 6 && passwordConfirm && newPassword.length >= 6 && newPassword === passwordConfirm ) { updateUserPassword({ UserId: +currentUser.userID, OldPassWord: oldPassword, NewPassWord: newPassword, }) .then(res => { if (res.code === 0) { onCancel(); // eslint-disable-next-line no-unused-expressions currentSelectOrg === '-1' ? submitSearchUser() : onSelect([currentSelectOrg]); notification.success({ message: '提交成功', duration: 2, }); } else { notification.error({ message: '提交失败', description: res.message, }); } passwordForm.setFieldsValue({ oldPassword: currentUser.password, newPassword: '', passwordConfirm: '', }); }) .catch(err => { message.error(err); }); } else if (newPassword === '' || passwordConfirm === '') { notification.error({ message: '提交失败', description: '带*号为必填项,不能为空', }); } else if ( (newPassword && newPassword.length < 6) || (passwordConfirm && passwordConfirm < 6) ) { notification.error({ message: '提交失败', description: '密码至少为6位!', }); } else if (newPassword !== passwordConfirm) { notification.error({ message: '提交失败', description: '确认密码不一致!', }); } }; const title = ( <span> 修改用户 <span style={{ fontWeight: 'bold', color: 'rgb(24, 144, 255)' }}> 【{currentUser.userName}】 </span> 的密码 </span> ); return ( <Modal title={title} visible={visible} onOk={submitChangePassword} maskClosable={false} destroyOnClose afterClose={() => { passwordForm.resetFields(); }} onCancel={() => { passwordForm.setFieldsValue({ oldPassword: currentUser.password, newPassword: '', passwordConfirm: '', }); onCancel(); }} okText="确认" cancelText="取消" > <Form form={passwordForm} labelCol={{ span: 4 }}> <Form.Item name="oldPassword" label="原始密码"> <Input disabled /> </Form.Item> <Form.Item name="newPassword" label="新密码" rules={[ { pattern: /^[a-zA-Z0-9_]{6,16}$/, message: '长度6-16位,支持字母与数字,允许下划线', }, { required: true }, ]} > <Input.Password placeholder="请输入新密码" autoComplete="off" maxLength="16" /> </Form.Item> <Form.Item name="passwordConfirm" label="确认密码" rules={[ { pattern: /^[a-zA-Z0-9_]{6,16}$/, message: '长度6-16位,支持字母与数字,允许下划线', }, { required: true }, ]} > <Input.Password placeholder="再次确认新密码" autoComplete="off" maxLength="16" /> </Form.Item> </Form> </Modal> ); }; export default ChangePasswordModal;