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