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