luxiaotao1123
2024-04-08 9d0acfb65c80c4948c305ca01338f894b87346a0
zy-asrs-flow/src/pages/map/components/mapCopySettings.jsx
@@ -1,5 +1,5 @@
import React, { useState, useRef, useEffect } from 'react';
import { Col, Form, Input, Row, Switch, Slider, Select, Drawer, Space, Button, InputNumber, Segmented } from 'antd';
import { Col, Form, Input, Row, Switch, Slider, message, Drawer, Space, Button, InputNumber, Segmented } from 'antd';
import { FormattedMessage, useIntl, useModel } from '@umijs/max';
import { createStyles } from 'antd-style';
import * as Utils from '../utils'
@@ -15,6 +15,7 @@
    const { curSprite } = props;
    const [form] = Form.useForm();
    const [autoIncrement, setAutoIncrement] = useState(false);
    const [autoIncrementError, setAutoIncrementError] = useState(null);
    useEffect(() => {
        setAutoIncrement(false);
@@ -25,6 +26,31 @@
            });
        }
    }, [form, props]);
    useEffect(() => {
        if (autoIncrement === true && curSprite) {
            switch (curSprite.data?.type) {
                case Utils.SENSOR_TYPE.SHELF:
                    if (!curSprite.data?.row || !curSprite.data?.bay) {
                        setAutoIncrementError(intl.formatMessage({ id: 'map.settings.sub.copy.warn.config.shelf', defaultMessage: '请先设置货架参数!' }));
                    } else {
                        setAutoIncrementError(null);
                    }
                    break;
                case Utils.SENSOR_TYPE.POINT:
                    if (!curSprite.data?.vertical || !curSprite.data?.horizontal) {
                        setAutoIncrementError(intl.formatMessage({ id: 'map.settings.sub.copy.warn.config.point', defaultMessage: '请先设置定位点参数!' }));
                    } else {
                        setAutoIncrementError(null);
                    }
                    break;
                default:
                    break;
            }
        } else {
            setAutoIncrementError(null);
        }
    }, [autoIncrement])
    const handleCancel = () => {
        props.onClose();
@@ -69,7 +95,6 @@
                    initialValues={{
                        copyGap: 0,
                        autoIncrement: false,
                        incrementValue: 'row',
                        incrementMode: 'ascending',
                    }}
                    onFinish={handleFinish}
@@ -121,26 +146,105 @@
                        {/* switch auto increment  */}
                        <Col span={24}>
                            <Form.Item
                                label={intl.formatMessage({ id: 'map.settings.sub.copy.shelf.auto-increment', defaultMessage: '自增长' })}
                                label={intl.formatMessage({ id: 'map.settings.sub.copy.auto-increment', defaultMessage: '自增长' })}
                                labelCol={{ span: 8 }}
                                help={autoIncrementError}
                                validateStatus={autoIncrementError ? "error" : null}
                            >
                                <Switch value={autoIncrement} onChange={setAutoIncrement} />
                            </Form.Item>
                        </Col>
                        {autoIncrement && curSprite?.data?.type === Utils.SENSOR_TYPE.SHUTTLE && (
                            <>
                                <Col span={24}>
                                    <Form.Item
                                        name='incrementValue'
                                        label={intl.formatMessage({ id: 'map.settings.sub.copy.increment-value', defaultMessage: '自增长值' })}
                                        labelCol={{ span: 8 }}
                                        initialValue='no'
                                    >
                                        <Segmented
                                            block
                                            options={[
                                                {
                                                    label: intl.formatMessage({ id: 'map.settings.no', defaultMessage: '编号' }),
                                                    value: 'no'
                                                },
                                            ]}
                                            onChange={(value) => {
                                            }}
                                        />
                                    </Form.Item>
                                </Col>
                                <Col span={24}>
                                    <Form.Item
                                        name='incrementMode'
                                        label={intl.formatMessage({ id: 'map.settings.sub.copy.increment.mode', defaultMessage: '增长方式' })}
                                        labelCol={{ span: 8 }}
                                    >
                                        <Segmented
                                            block
                                            options={[
                                                {
                                                    label: intl.formatMessage({ id: 'map.settings.sub.copy.ascend', defaultMessage: '升序' }),
                                                    value: 'ascending'
                                                },
                                                {
                                                    label: intl.formatMessage({ id: 'map.settings.sub.copy.descend', defaultMessage: '降序' }),
                                                    value: 'descending'
                                                },
                                            ]}
                                            onChange={(value) => {
                                            }}
                                        />
                                    </Form.Item>
                                </Col>
                            </>
                        )}
                        {autoIncrement && curSprite?.data?.type === Utils.SENSOR_TYPE.AGV && (
                            <>
                                <Col span={24}>
                                    <Form.Item
                                        name='id'
                                        label={intl.formatMessage({ id: 'map.settings.sub.copy.id', defaultMessage: '序号' })}
                                        name='incrementValue'
                                        label={intl.formatMessage({ id: 'map.settings.sub.copy.increment-value', defaultMessage: '自增长值' })}
                                        labelCol={{ span: 8 }}
                                        initialValue='no'
                                    >
                                        <Segmented
                                            block
                                            options={[
                                                {
                                                    label: intl.formatMessage({ id: 'map.settings.no', defaultMessage: '编号' }),
                                                    value: 'no'
                                                },
                                            ]}
                                            onChange={(value) => {
                                            }}
                                        />
                                    </Form.Item>
                                </Col>
                                <Col span={24}>
                                    <Form.Item
                                        name='incrementMode'
                                        label={intl.formatMessage({ id: 'map.settings.sub.copy.increment.mode', defaultMessage: '增长方式' })}
                                        labelCol={{ span: 8 }}
                                    >
                                        <InputNumber
                                            style={{
                                                width: '60%',
                                        <Segmented
                                            block
                                            options={[
                                                {
                                                    label: intl.formatMessage({ id: 'map.settings.sub.copy.ascend', defaultMessage: '升序' }),
                                                    value: 'ascending'
                                                },
                                                {
                                                    label: intl.formatMessage({ id: 'map.settings.sub.copy.descend', defaultMessage: '降序' }),
                                                    value: 'descending'
                                                },
                                            ]}
                                            onChange={(value) => {
                                            }}
                                            min={0}
                                        />
                                    </Form.Item>
                                </Col>
@@ -152,8 +256,9 @@
                                <Col span={24}>
                                    <Form.Item
                                        name='incrementValue'
                                        label={intl.formatMessage({ id: 'map.settings.sub.copy.shelf.increment-value', defaultMessage: '自增长值' })}
                                        label={intl.formatMessage({ id: 'map.settings.sub.copy.increment-value', defaultMessage: '自增长值' })}
                                        labelCol={{ span: 8 }}
                                        initialValue='row'
                                    >
                                        <Segmented
                                            block
@@ -198,6 +303,57 @@
                            </>
                        )}
                        {autoIncrement && curSprite?.data?.type === Utils.SENSOR_TYPE.POINT && (
                            <>
                                <Col span={24}>
                                    <Form.Item
                                        name='incrementValue'
                                        label={intl.formatMessage({ id: 'map.settings.sub.copy.increment-value', defaultMessage: '自增长值' })}
                                        labelCol={{ span: 8 }}
                                        initialValue='vertical'
                                    >
                                        <Segmented
                                            block
                                            options={[
                                                {
                                                    label: intl.formatMessage({ id: 'map.settings.point.vertical', defaultMessage: '纵向' }),
                                                    value: 'vertical'
                                                },
                                                {
                                                    label: intl.formatMessage({ id: 'map.settings.point.horizontal', defaultMessage: '横向' }),
                                                    value: 'horizontal'
                                                },
                                            ]}
                                            onChange={(value) => {
                                            }}
                                        />
                                    </Form.Item>
                                </Col>
                                <Col span={24}>
                                    <Form.Item
                                        name='incrementMode'
                                        label={intl.formatMessage({ id: 'map.settings.sub.copy.increment.mode', defaultMessage: '增长方式' })}
                                        labelCol={{ span: 8 }}
                                    >
                                        <Segmented
                                            block
                                            options={[
                                                {
                                                    label: intl.formatMessage({ id: 'map.settings.sub.copy.ascend', defaultMessage: '升序' }),
                                                    value: 'ascending'
                                                },
                                                {
                                                    label: intl.formatMessage({ id: 'map.settings.sub.copy.descend', defaultMessage: '降序' }),
                                                    value: 'descending'
                                                },
                                            ]}
                                            onChange={(value) => {
                                            }}
                                        />
                                    </Form.Item>
                                </Col>
                            </>
                        )}
                    </Row>
                </Form>
            </Drawer>