import React, { useState, useRef, useEffect } from 'react'; 
 | 
import { 
 | 
    ProForm, 
 | 
    ProFormDigit, 
 | 
    ProFormText, 
 | 
    ProFormSelect, 
 | 
    ProFormDateTimePicker 
 | 
} from '@ant-design/pro-components'; 
 | 
import { Form, Modal } from 'antd'; 
 | 
import { FormattedMessage, useIntl } from '@umijs/max'; 
 | 
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 
 | 
        }) 
 | 
    }, [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> 
 | 
                        <ProFormText 
 | 
                            name="uuid" 
 | 
                            label="编号" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                        /> 
 | 
                        <ProFormDigit 
 | 
                            name="wrkNo" 
 | 
                            label="任务号" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            fieldProps={{ precision: 0 }} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
                    <ProForm.Group> 
 | 
                        <ProFormText 
 | 
                            name="serialNo" 
 | 
                            label="序列号" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                        /> 
 | 
                        <ProFormText 
 | 
                            name="title" 
 | 
                            label="描述" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
                    <ProForm.Group> 
 | 
                        <ProFormDigit 
 | 
                            name="priority" 
 | 
                            label="优先级" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            fieldProps={{ precision: 0 }} 
 | 
                        /> 
 | 
                        <ProFormSelect 
 | 
                            name="sync" 
 | 
                            label="同步" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            rules={[{ required: true }]} 
 | 
                            options={[ 
 | 
                                { label: '是', value: 1 }, 
 | 
                                { label: '否', value: 0 }, 
 | 
                            ]} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
                    <ProForm.Group> 
 | 
                        <ProFormSelect 
 | 
                            name="motionCtg" 
 | 
                            label="任务类型" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            fieldProps={{ precision: 0 }} 
 | 
                            rules={[{ required: true }]} 
 | 
                            showSearch 
 | 
                            debounceTime={300} 
 | 
                            request={async ({ keyWords }) => { 
 | 
                                const resp = await Http.doPostForm('api/motionCtg/query', { condition: keyWords }); 
 | 
                                return resp.data; 
 | 
                            }} 
 | 
                        /> 
 | 
                        <ProFormSelect 
 | 
                            name="motionSts" 
 | 
                            label="任务状态" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            fieldProps={{ precision: 0 }} 
 | 
                            rules={[{ required: true }]} 
 | 
                            showSearch 
 | 
                            debounceTime={300} 
 | 
                            request={async ({ keyWords }) => { 
 | 
                                const resp = await Http.doPostForm('api/motionSts/query', { condition: keyWords }); 
 | 
                                return resp.data; 
 | 
                            }} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
                    <ProForm.Group> 
 | 
                        <ProFormSelect 
 | 
                            name="deviceType" 
 | 
                            label="设备类型" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            fieldProps={{ precision: 0 }} 
 | 
                            showSearch 
 | 
                            debounceTime={300} 
 | 
                            request={async ({ keyWords }) => { 
 | 
                                const resp = await Http.doPostForm('api/deviceType/query', { condition: keyWords }); 
 | 
                                return resp.data; 
 | 
                            }} 
 | 
                        /> 
 | 
                        <ProFormText 
 | 
                            name="device" 
 | 
                            label="设备" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
                    <ProForm.Group> 
 | 
                        <ProFormText 
 | 
                            name="origin" 
 | 
                            label="来源" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                        /> 
 | 
                        <ProFormDigit 
 | 
                            name="oriDrt" 
 | 
                            label="来源方向" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            fieldProps={{ precision: 0 }} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
                    <ProForm.Group> 
 | 
                        <ProFormText 
 | 
                            name="target" 
 | 
                            label="目标" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                        /> 
 | 
                        <ProFormDigit 
 | 
                            name="tarDrt" 
 | 
                            label="目标方向" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            fieldProps={{ precision: 0 }} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
                    <ProForm.Group> 
 | 
                        <ProFormText 
 | 
                            name="dockNo" 
 | 
                            label="对接设备" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                        /> 
 | 
                        <ProFormDateTimePicker 
 | 
                            name="ioTime" 
 | 
                            label="工作时间" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            transform={(value) => moment(value).toISOString()} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
                    <ProForm.Group> 
 | 
                        <ProFormDateTimePicker 
 | 
                            name="startTime" 
 | 
                            label="开始时间" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            transform={(value) => moment(value).toISOString()} 
 | 
                        /> 
 | 
                        <ProFormDateTimePicker 
 | 
                            name="endTime" 
 | 
                            label="结束时间" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            transform={(value) => moment(value).toISOString()} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
                    <ProForm.Group> 
 | 
                        <ProFormDateTimePicker 
 | 
                            name="errTime" 
 | 
                            label="异常时间" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            transform={(value) => moment(value).toISOString()} 
 | 
                        /> 
 | 
                        <ProFormDigit 
 | 
                            name="errCode" 
 | 
                            label="异常代码" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            fieldProps={{ precision: 0 }} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
                    <ProForm.Group> 
 | 
                        <ProFormText 
 | 
                            name="errDesc" 
 | 
                            label="异常描述" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                        /> 
 | 
                        <ProFormText 
 | 
                            name="temp" 
 | 
                            label="预留" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
                    <ProForm.Group> 
 | 
                        <ProFormSelect 
 | 
                            name="status" 
 | 
                            label="状态" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            options={[ 
 | 
                                { label: '正常', value: 1 }, 
 | 
                                { label: '禁用', value: 0 }, 
 | 
                            ]} 
 | 
                        /> 
 | 
                        <ProFormSelect 
 | 
                            name="createBy" 
 | 
                            label="添加人员" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            fieldProps={{ precision: 0 }} 
 | 
                            showSearch 
 | 
                            debounceTime={300} 
 | 
                            request={async ({ keyWords }) => { 
 | 
                                const resp = await Http.doPostForm('api/user/query', { condition: keyWords }); 
 | 
                                return resp.data; 
 | 
                            }} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
                    <ProForm.Group> 
 | 
                        <ProFormDateTimePicker 
 | 
                            name="createTime" 
 | 
                            label="添加时间" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            transform={(value) => moment(value).toISOString()} 
 | 
                        /> 
 | 
                        <ProFormSelect 
 | 
                            name="updateBy" 
 | 
                            label="修改人员" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            fieldProps={{ precision: 0 }} 
 | 
                            showSearch 
 | 
                            debounceTime={300} 
 | 
                            request={async ({ keyWords }) => { 
 | 
                                const resp = await Http.doPostForm('api/user/query', { condition: keyWords }); 
 | 
                                return resp.data; 
 | 
                            }} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
                    <ProForm.Group> 
 | 
                        <ProFormDateTimePicker 
 | 
                            name="updateTime" 
 | 
                            label="修改时间" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                            transform={(value) => moment(value).toISOString()} 
 | 
                        /> 
 | 
                        <ProFormText 
 | 
                            name="memo" 
 | 
                            label="备注" 
 | 
                            colProps={{ md: 12, xl: 12 }} 
 | 
                        /> 
 | 
                    </ProForm.Group> 
 | 
  
 | 
                </ProForm> 
 | 
            </Modal> 
 | 
        </> 
 | 
    ) 
 | 
} 
 | 
  
 | 
export default Edit; 
 |