|  |  | 
 |  |  | import React, { useState, useRef, useEffect } from 'react'; | 
 |  |  | import { Drawer, Space, Button, Card, Select, InputNumber, Input, Result, Form } from 'antd'; | 
 |  |  | import { message, Space, Button, Card, Select, InputNumber, Input, Result, Form } from 'antd'; | 
 |  |  | import { | 
 |  |  |     ProForm, | 
 |  |  |     StepsForm, | 
 |  |  |     ProFormSelect | 
 |  |  | } from '@ant-design/pro-components'; | 
 |  |  | import { FormattedMessage, useIntl, useModel } from '@umijs/max'; | 
 |  |  | import { createStyles } from 'antd-style'; | 
 |  |  | import * as Utils from '../utils' | 
 |  |  | import ShowJson from '../drawer/showJson'; | 
 |  |  |  | 
 |  |  | const waitTime = (time = 100) => { | 
 |  |  |     return new Promise((resolve) => { | 
 |  |  |         setTimeout(() => { | 
 |  |  |             resolve(true); | 
 |  |  |         }, time); | 
 |  |  |     }); | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | const useStyles = createStyles(({ token, css }) => { | 
 |  |  |     return { | 
 |  |  |     } | 
 |  |  | }) | 
 |  |  |  | 
 |  |  | const BatchModify = (props) => { | 
 |  |  |     const intl = useIntl(); | 
 |  |  |     const { styles } = useStyles(); | 
 |  |  |     const { batchSprites } = props; | 
 |  |  |  | 
 |  |  |     const [form] = Form.useForm(); | 
 |  |  | 
 |  |  |     useEffect(() => { | 
 |  |  |         form.resetFields(); | 
 |  |  |         form.setFieldsValue({ | 
 |  |  |             shelfType: Utils.SHELF_TYPE.STORE | 
 |  |  |             shelfType: null | 
 |  |  |         }) | 
 |  |  |         setCurrentStep(0); | 
 |  |  |     }, [batchSprites]); | 
 |  |  |  | 
 |  |  |     const handleOk = (values) => { | 
 |  |  |         console.log(values); | 
 |  |  |         if (batchSprites?.length > 0) { | 
 |  |  |             // loading | 
 |  |  |             const closeLoading = message.loading(intl.formatMessage({ id: 'common.loading.api.message', defaultMessage: '等待服务器......' })); | 
 |  |  |             batchSprites.forEach(sprite => { | 
 |  |  |                 if (sprite.data?.type === Utils.SENSOR_TYPE.SHELF) { | 
 |  |  |                     if (values.shelfType) { | 
 |  |  |  | 
 |  |  |                     if (!Utils.isNullOfUndefined(values.shelfType)) { | 
 |  |  |                         sprite.data.shelfType = values.shelfType; | 
 |  |  |                         Utils.showSheflType(sprite); | 
 |  |  |                     } | 
 |  |  |                     Utils.showSheflType(sprite); | 
 |  |  |                     if (!Utils.isNullOfUndefined(values.top)) { | 
 |  |  |                         sprite.data.top = values.top; | 
 |  |  |                     } | 
 |  |  |                     if (!Utils.isNullOfUndefined(values.right)) { | 
 |  |  |                         sprite.data.right = values.right; | 
 |  |  |                     } | 
 |  |  |                     if (!Utils.isNullOfUndefined(values.bottom)) { | 
 |  |  |                         sprite.data.bottom = values.bottom; | 
 |  |  |                     } | 
 |  |  |                     if (!Utils.isNullOfUndefined(values.left)) { | 
 |  |  |                         sprite.data.left = values.left; | 
 |  |  |                     } | 
 |  |  |                     if (!Utils.isNullOfUndefined(values.value)) { | 
 |  |  |                         sprite.data.value = values.value; | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             }); | 
 |  |  |             return false; | 
 |  |  |             closeLoading(); | 
 |  |  |             return true; | 
 |  |  |         } else { | 
 |  |  |             return false; | 
 |  |  |         } | 
 |  |  | 
 |  |  |             <StepsForm | 
 |  |  |                 current={currentStep} | 
 |  |  |                 onCurrentChange={setCurrentStep} | 
 |  |  |                 onFinish={async () => { | 
 |  |  |                     await waitTime(1000); | 
 |  |  |                     message.success('提交成功'); | 
 |  |  |                 }} | 
 |  |  |                 formProps={{ | 
 |  |  |                     variant: 'filled', | 
 |  |  |                     layout: 'horizontal', | 
 |  |  | 
 |  |  |                         label={intl.formatMessage({ id: 'map.settings.shelf.type', defaultMessage: '类型' })} | 
 |  |  |                         rules={[ | 
 |  |  |                             { | 
 |  |  |                                 required: true, | 
 |  |  |                                 required: false, | 
 |  |  |                             }, | 
 |  |  |                         ]} | 
 |  |  |                     > | 
 |  |  |                         <Select | 
 |  |  |                             style={{ width: 120 }} | 
 |  |  |                             style={{ width: 160 }} | 
 |  |  |                             options={[ | 
 |  |  |                                 { | 
 |  |  |                                     label: intl.formatMessage({ id: 'common.select.cancel', defaultMessage: '取消选择' }), | 
 |  |  |                                     value: null | 
 |  |  |                                 }, | 
 |  |  |                                 { | 
 |  |  |                                     label: intl.formatMessage({ id: 'map.settings.shelf.store', defaultMessage: '库位' }), | 
 |  |  |                                     value: Utils.SHELF_TYPE.STORE | 
 |  |  | 
 |  |  |                                     value: Utils.SHELF_TYPE.TRACK | 
 |  |  |                                 }, | 
 |  |  |                                 { | 
 |  |  |                                     label: intl.formatMessage({ id: 'map.settings.shelf.lift', defaultMessage: '提升机' }), | 
 |  |  |                                     value: Utils.SHELF_TYPE.LIFT | 
 |  |  |                                 }, | 
 |  |  |                                 { | 
 |  |  |                                     label: intl.formatMessage({ id: 'map.settings.shelf.charge', defaultMessage: '充电站' }), | 
 |  |  |                                     value: Utils.SHELF_TYPE.CHARGE | 
 |  |  |                                 }, | 
 |  |  |                                 { | 
 |  |  |                                     label: intl.formatMessage({ id: 'map.settings.shelf.diable', defaultMessage: '禁用' }), | 
 |  |  |                                     value: Utils.SHELF_TYPE.DISABLE | 
 |  |  |                                 }, | 
 |  |  |                             ]} | 
 |  |  |                             defaultValue={0} | 
 |  |  |                         /> | 
 |  |  |                     </ProForm.Item> | 
 |  |  |                     <ProForm.Item |