| import React, { useState, useRef, useEffect } from 'react';  | 
| import {  | 
|     ProForm,  | 
|     ProFormDigit,  | 
|     ProFormText,  | 
|     ProFormSelect,  | 
|     ProFormTreeSelect,  | 
|     ProFormTextArea,  | 
|     ProFormRadio  | 
| } from '@ant-design/pro-components';  | 
| import { FormattedMessage, useIntl } from '@umijs/max';  | 
| import { Form, Modal } from 'antd';  | 
| import moment from 'moment';  | 
| import Http from '@/utils/http';  | 
|   | 
| const Edit = (props) => {  | 
|     const intl = useIntl();  | 
|     const [form] = Form.useForm();  | 
|     const { } = props;  | 
|   | 
|     useEffect(() => {  | 
|         form.resetFields();  | 
|         form.setFieldsValue({  | 
|             ...props.values,  | 
|             roleIds: props.values.userRoleIds  | 
|         })  | 
|     }, [form, props])  | 
|   | 
|     const handleCancel = () => {  | 
|         props.onCancel();  | 
|     };  | 
|   | 
|     const handleOk = () => {  | 
|         form.submit();  | 
|     }  | 
|   | 
|     const handleFinish = async (values) => {  | 
|         props.onSubmit({ ...values });  | 
|     }  | 
|   | 
|     return (  | 
|         <>  | 
|             <Modal  | 
|                 title={  | 
|                     Object.keys(props.values).length > 0  | 
|                         ? intl.formatMessage({ id: 'page.edit', defaultMessage: '编辑' })  | 
|                         : intl.formatMessage({ id: 'page.add', defaultMessage: '添加' })  | 
|                 }  | 
|                 width={640}  | 
|                 forceRender  | 
|                 destroyOnClose  | 
|                 open={props.open}  | 
|                 onCancel={handleCancel}  | 
|                 onOk={handleOk}  | 
|             >  | 
|                 <ProForm  | 
|                     form={form}  | 
|                     submitter={false}  | 
|                     onFinish={handleFinish}  | 
|                     layout="horizontal"  | 
|                     grid={true}  | 
|                 >  | 
|                     <ProFormDigit  | 
|                         name="id"  | 
|                         disabled  | 
|                         hidden={true}  | 
|                     />  | 
|                     <ProForm.Group>  | 
|                         <ProFormTreeSelect  | 
|                             name="deptId"  | 
|                             label="所属部门"  | 
|                             params={props.treeData}  | 
|                             request={async () => {  | 
|                                 return props.treeData;  | 
|                             }}  | 
|                             colProps={{ md: 12, xl: 12 }}  | 
|                             fieldProps={{  | 
|                                 treeDefaultExpandedKeys: [0]  | 
|                             }}  | 
|                             rules={[{ required: true }]}  | 
|                         />  | 
|                         <ProFormText  | 
|                             name="username"  | 
|                             label="登录账号"  | 
|                             colProps={{ md: 12, xl: 12 }}  | 
|                             rules={[{ required: true }]}  | 
|                         />  | 
|                     </ProForm.Group>  | 
|                     <ProForm.Group>  | 
|                         <ProFormText  | 
|                             name="nickname"  | 
|                             label="名称"  | 
|                             colProps={{ md: 12, xl: 12 }}  | 
|                             rules={[{ required: true }]}  | 
|                         />  | 
|                         <ProFormSelect  | 
|                             name="sex"  | 
|                             label="性别"  | 
|                             colProps={{ md: 12, xl: 12 }}  | 
|                             options={[  | 
|                                 { label: '未知', value: 0 },  | 
|                                 { label: '男', value: 1 },  | 
|                                 { label: '女', value: 2 },  | 
|                             ]}  | 
|                         />  | 
|                     </ProForm.Group>  | 
|                     <ProForm.Group>  | 
|                         <ProFormText  | 
|                             name="phone"  | 
|                             label="手机号"  | 
|                             colProps={{ md: 12, xl: 12 }}  | 
|                             placeholder="请输入"  | 
|                             rules={[  | 
|                                 {  | 
|                                     pattern: /^1[3456789]\d{9}$/,  | 
|                                     message: '请输入正确的手机号码!',  | 
|                                 },  | 
|                                 {  | 
|                                     required: false,  | 
|                                     message: '手机号码不能为空!',  | 
|                                 },  | 
|                             ]}  | 
|   | 
|                         />  | 
|                         <ProFormText  | 
|                             name="email"  | 
|                             label="邮箱"  | 
|                             colProps={{ md: 12, xl: 12 }}  | 
|                             rules={[  | 
|                                 {  | 
|                                     type: 'email',  | 
|                                     message: '请输入正确的邮箱地址!',  | 
|                                 },  | 
|                                 {  | 
|                                     required: false,  | 
|                                 },  | 
|                             ]}  | 
|                         />  | 
|                     </ProForm.Group>  | 
|                     <ProForm.Group>  | 
|                         <ProFormText  | 
|                             name="realName"  | 
|                             label="真实姓名"  | 
|                             colProps={{ md: 12, xl: 12 }}  | 
|                         />  | 
|                         <ProFormText  | 
|                             name="idCard"  | 
|                             label="身份证号"  | 
|                             colProps={{ md: 12, xl: 12 }}  | 
|                         />  | 
|                     </ProForm.Group>  | 
|                     <ProForm.Group>  | 
|                         <ProFormRadio.Group  | 
|                             name="status"  | 
|                             label="状态"  | 
|                             colProps={{ md: 12, xl: 12 }}  | 
|                             options={[  | 
|                                 { label: '正常', value: 1 },  | 
|                                 { label: '禁用', value: 0 },  | 
|                             ]}  | 
|                             rules={[  | 
|                                 {  | 
|                                     required: true,  | 
|                                 },  | 
|                             ]}  | 
|                         />  | 
|                         <ProFormSelect  | 
|                             name="roleIds"  | 
|                             mode="multiple"  | 
|                             label="角色"  | 
|                             colProps={{ md: 12, xl: 12 }}  | 
|                             rules={[{ required: true, type: 'array', message: '角色不能为空!' }]}  | 
|                             request={async ({ keyWords }) => {  | 
|                                 const resp = await Http.doPostForm('api/role/query', { condition: keyWords });  | 
|                                 return resp.data;  | 
|                             }}  | 
|                         />  | 
|                     </ProForm.Group>  | 
|                     <ProFormTextArea  | 
|                         name="memo"  | 
|                         label="备注"  | 
|                         colProps={{ md: 24, xl: 24 }}  | 
|                     />  | 
|                 </ProForm>  | 
|             </Modal>  | 
|         </>  | 
|     )  | 
| }  | 
|   | 
| export default Edit;  |