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;  
 |