|  |  |  | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | } 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(); | 
|---|
|  |  |  | const [currentStep, setCurrentStep] = useState(0); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const resetForm = () => { | 
|---|
|  |  |  | useEffect(() => { | 
|---|
|  |  |  | form.resetFields(); | 
|---|
|  |  |  | form.setFieldsValue({ | 
|---|
|  |  |  | shelfType: null | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | setCurrentStep(0); | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | }, [batchSprites]); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | useEffect(() => { | 
|---|
|  |  |  | console.log(batchSprites); | 
|---|
|  |  |  | resetForm(); | 
|---|
|  |  |  | }, [props]); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | useEffect(() => { | 
|---|
|  |  |  | console.log(currentStep); | 
|---|
|  |  |  | }, [currentStep]); | 
|---|
|  |  |  | const handleOk = (values) => { | 
|---|
|  |  |  | if (batchSprites?.length > 0) { | 
|---|
|  |  |  | const closeLoading = message.loading(intl.formatMessage({ id: 'common.loading.api.message', defaultMessage: '等待服务器......' })); | 
|---|
|  |  |  | batchSprites.forEach(sprite => { | 
|---|
|  |  |  | if (sprite.data?.type === Utils.SENSOR_TYPE.SHELF) { | 
|---|
|  |  |  | if (!Utils.isNullOfUndefined(values.shelfType)) { | 
|---|
|  |  |  | sprite.data.shelfType = values.shelfType; | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | closeLoading(); | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return ( | 
|---|
|  |  |  | <> | 
|---|
|  |  |  | <StepsForm | 
|---|
|  |  |  | form={form} | 
|---|
|  |  |  | current={currentStep} | 
|---|
|  |  |  | onCurrentChange={setCurrentStep} | 
|---|
|  |  |  | onFinish={async () => { | 
|---|
|  |  |  | await waitTime(1000); | 
|---|
|  |  |  | message.success('提交成功'); | 
|---|
|  |  |  | }} | 
|---|
|  |  |  | formProps={{ | 
|---|
|  |  |  | variant: 'filled', | 
|---|
|  |  |  | layout: 'horizontal', | 
|---|
|  |  |  | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | }} | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <ProForm.Item | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <ProForm.Item> | 
|---|
|  |  |  | <ShowJson | 
|---|
|  |  |  | data={ | 
|---|
|  |  |  | batchSprites?.filter(item => { | 
|---|
|  |  |  | return item.data?.type === Utils.SENSOR_TYPE.SHELF | 
|---|
|  |  |  | }).map(item => { | 
|---|
|  |  |  | return item.data?.no; | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | data={batchSprites?.filter(item => { | 
|---|
|  |  |  | return item.data?.type === Utils.SENSOR_TYPE.SHELF | 
|---|
|  |  |  | }).map(item => { | 
|---|
|  |  |  | return item.data?.no; | 
|---|
|  |  |  | })} | 
|---|
|  |  |  | height='500px' | 
|---|
|  |  |  | jsonType={0} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | 
|---|
|  |  |  | {/************************* second ****************************/} | 
|---|
|  |  |  | <StepsForm.StepForm | 
|---|
|  |  |  | name="checkbox" | 
|---|
|  |  |  | form={form} | 
|---|
|  |  |  | title={intl.formatMessage({ id: 'map.settings.batch.set.params', defaultMessage: '设置参数' })} | 
|---|
|  |  |  | onFinish={(values) => { | 
|---|
|  |  |  | console.log(values); | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | }} | 
|---|
|  |  |  | onFinish={handleOk} | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <ProForm.Item | 
|---|
|  |  |  | name='shelfType' | 
|---|
|  |  |  | 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: 0 | 
|---|
|  |  |  | value: Utils.SHELF_TYPE.STORE | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | label: intl.formatMessage({ id: 'map.settings.shelf.track', defaultMessage: '轨道' }), | 
|---|
|  |  |  | value: 3 | 
|---|
|  |  |  | value: Utils.SHELF_TYPE.TRACK | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | { | 
|---|
|  |  |  | label: intl.formatMessage({ id: 'map.settings.shelf.diable', defaultMessage: '禁用' }), | 
|---|
|  |  |  | value: 1 | 
|---|
|  |  |  | value: Utils.SHELF_TYPE.DISABLE | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ]} | 
|---|
|  |  |  | defaultValue={0} | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </ProForm.Item> | 
|---|
|  |  |  | <ProForm.Item | 
|---|