luxiaotao1123
2024-04-08 9d0acfb65c80c4948c305ca01338f894b87346a0
zy-asrs-flow/src/pages/map/batch/modify.jsx
@@ -1,94 +1,66 @@
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();
    const [currentStep, setCurrentStep] = useState(0);
    const [uuidsOfBatchSprites, setUuidsOfBatchSprites] = useState([]);
    const resetForm = () => {
        form.resetFields();
        form.setFieldsValue({
            shelfType: Utils.SHELF_TYPE.STORE
        })
        setCurrentStep(0);
    };
    useEffect(() => {
        resetForm();
        if (batchSprites?.length > 0) {
            setUuidsOfBatchSprites(batchSprites?.filter(item => {
                return item.data?.type === Utils.SENSOR_TYPE.SHELF
            }).map(item => {
                return item.data?.no;
            }));
        } else {
            setUuidsOfBatchSprites([]);
        }
        form.resetFields();
        form.setFieldsValue({
            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;
        }
    }
    useEffect(() => {
        if (currentStep === 1) {
            form.setFieldsValue({
                shelfType: Utils.SHELF_TYPE.STORE
            });
        }
    }, [currentStep]);
    return (
        <>
            <StepsForm
                form={form}
                current={currentStep}
                onCurrentChange={setCurrentStep}
                onFinish={async () => {
                    await waitTime(1000);
                    message.success('提交成功');
                }}
                formProps={{
                    variant: 'filled',
                    layout: 'horizontal',
@@ -105,9 +77,6 @@
                        return props.step === 2 ? [] : dom;
                    },
                }}
                initialValues={{
                    shelfType: Utils.SHELF_TYPE.STORE
                }}
            >
                {/************************* first ****************************/}
                <StepsForm.StepForm
@@ -119,7 +88,11 @@
                >
                    <ProForm.Item>
                        <ShowJson
                            data={uuidsOfBatchSprites}
                            data={batchSprites?.filter(item => {
                                return item.data?.type === Utils.SENSOR_TYPE.SHELF
                            }).map(item => {
                                return item.data?.no;
                            })}
                            height='500px'
                            jsonType={0}
                        />
@@ -128,61 +101,41 @@
                {/************************* second ****************************/}
                <StepsForm.StepForm
                    name="checkbox"
                    form={form}
                    title={intl.formatMessage({ id: 'map.settings.batch.set.params', defaultMessage: '设置参数' })}
                    onFinish={handleOk}
                >
                    {/* <ProForm.Item
                    <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> */}
                    <ProFormSelect
                        name='shelfType'
                        label={intl.formatMessage({ id: 'map.settings.shelf.type', defaultMessage: '类型' })}
                        rules={[
                            {
                                required: true,
                            },
                        ]}
                        style={{ width: 120 }}
                        options={[
                            {
                                label: intl.formatMessage({ id: 'map.settings.shelf.store', defaultMessage: '库位' }),
                                value: Utils.SHELF_TYPE.STORE
                            },
                            {
                                label: intl.formatMessage({ id: 'map.settings.shelf.track', defaultMessage: '轨道' }),
                                value: Utils.SHELF_TYPE.TRACK
                            },
                            {
                                label: intl.formatMessage({ id: 'map.settings.shelf.diable', defaultMessage: '禁用' }),
                                value: Utils.SHELF_TYPE.DISABLE
                            },
                        ]}
                    />
                    </ProForm.Item>
                    <ProForm.Item
                        label={intl.formatMessage({ id: 'map.settings.shelf.space', defaultMessage: '间距' })}
                    >