zjj
2025-02-17 a4093814b51bba7eae9530cfa076f6242df3f5f8
zy-asrs-flow/src/pages/map/components/configSettings.jsx
@@ -3,7 +3,6 @@
import { FormattedMessage, useIntl, useModel } from '@umijs/max';
import { createStyles } from 'antd-style';
import * as Utils from '../utils'
import * as PIXI from 'pixi.js';
const useStyles = createStyles(({ token, css }) => {
@@ -14,12 +13,18 @@
    const { styles } = useStyles();
    const { curSprite, configForm: form } = props;
    const [showLiftNoItem, setShowLiftNoItem] = React.useState(false);
    const [showConveyorNoItem, setShowConveyorNoItem] = React.useState(false);
    useEffect(() => {
        form.resetFields();
        if (curSprite) {
            form.setFieldsValue({
                shelfType: Utils.SHELF_TYPE.STORE,
                ...curSprite.data
            })
            setShowLiftNoItem(form.getFieldValue('shelfType') === Utils.SHELF_TYPE.LIFT);
            setShowConveyorNoItem(form.getFieldValue('shelfType') === Utils.SHELF_TYPE.CONVEYOR);
        }
    }, [props, form]);
@@ -77,6 +82,11 @@
                                });
                            }
                            break;
                        case 'shelfType':
                            const shelfType = form.getFieldValue('shelfType');
                            setShowLiftNoItem(shelfType === Utils.SHELF_TYPE.LIFT);
                            setShowConveyorNoItem(shelfType === Utils.SHELF_TYPE.CONVEYOR);
                            break;
                        default:
                            break;
                    }
@@ -94,11 +104,13 @@
        // execute where the form was finished
        const confirmSettings = () => {
            if (curSprite && curSprite?.data?.type) {
                curSprite.data = { ...curSprite.data, ...values }
                curSprite.data = { ...curSprite.data, ...values };
                Utils.showSheflType(curSprite);
            }
            message.success(intl.formatMessage({ id: 'common.success', defaultMessage: '操作成功' }));
        }
        console.log(values);
        props.onSubmit({ ...values }, confirmSettings);
    }
@@ -135,12 +147,18 @@
                    <span>{curSprite?.data?.type}</span>
                </Form.Item>
                <Form.Item
                    label={intl.formatMessage({ id: 'map.settings.uuid', defaultMessage: '地图号' })}
                    label={intl.formatMessage({ id: 'map.settings.uuid', defaultMessage: '图号' })}
                >
                    <span>{curSprite?.data?.uuid}</span>
                </Form.Item>
                {curSprite?.data?.type === Utils.SENSOR_TYPE.AGV && (
                    <>
                    </>
                )}
                {curSprite?.data?.type === Utils.SENSOR_TYPE.SHUTTLE && (
                    <>
                    </>
@@ -191,7 +209,7 @@
                            label={intl.formatMessage({ id: 'map.settings.shelf.type', defaultMessage: '类型' })}
                            rules={[
                                {
                                    required: false,
                                    required: true,
                                },
                            ]}
                        >
@@ -199,90 +217,203 @@
                                style={{ width: 120 }}
                                options={[
                                    {
                                        label: '库位',
                                        value: 'loc'
                                        label: intl.formatMessage({ id: 'map.settings.shelf.store', defaultMessage: '库位' }),
                                        value: Utils.SHELF_TYPE.STORE
                                    },
                                    {
                                        label: '轨道',
                                        value: 'track'
                                        label: intl.formatMessage({ id: 'map.settings.shelf.track', defaultMessage: '轨道' }),
                                        value: Utils.SHELF_TYPE.TRACK
                                    },
                                    {
                                        label: '禁用',
                                        value: 'disable'
                                        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.conveyor', defaultMessage: '输送线' }),
                                        value: Utils.SHELF_TYPE.CONVEYOR
                                    },
                                    {
                                        label: intl.formatMessage({ id: 'map.settings.shelf.diable', defaultMessage: '禁用' }),
                                        value: Utils.SHELF_TYPE.DISABLE
                                    },
                                ]}
                            />
                        </Form.Item>
                        {showLiftNoItem && (
                            <>
                                <Form.Item
                                    name='liftNo'
                                    label={intl.formatMessage({ id: 'map.settings.lift.no', defaultMessage: '提升机编号' })}
                                    rules={[
                                        {
                                            required: true,
                                        },
                                    ]}
                                >
                                    <InputNumber
                                        style={{
                                            width: '50%',
                                        }}
                                    />
                                </Form.Item>
                            </>
                        )}
                        {showConveyorNoItem && (
                            <>
                                <Form.Item
                                    name='conveyorNo'
                                    label={intl.formatMessage({ id: 'map.settings.conveyor.no', defaultMessage: '输送站号' })}
                                    rules={[
                                        {
                                            required: true,
                                        },
                                    ]}
                                >
                                    <InputNumber
                                        style={{
                                            width: '50%',
                                        }}
                                    />
                                </Form.Item>
                                <Form.Item
                                    name='conveyorHasGo'
                                    label={intl.formatMessage({ id: 'map.settings.conveyor.hasGo', defaultMessage: '小车可走' })}
                                    valuePropName="checked"
                                >
                                    <Checkbox
                                        style={{
                                            width: '50%',
                                        }}
                                    />
                                </Form.Item>
                            </>
                        )}
                        <Form.Item
                            name='top'
                            label={intl.formatMessage({ id: 'map.settings.shelf.top', defaultMessage: '上' })}
                            rules={[
                                {
                                    required: false,
                                },
                            ]}
                            label={intl.formatMessage({ id: 'map.settings.shelf.space', defaultMessage: '间距' })}
                        >
                            <InputNumber
                                style={{
                                    width: '50%',
                                }}
                            />
                            <Space.Compact>
                                <Form.Item
                                    name='top'
                                    noStyle
                                >
                                    <InputNumber
                                        addonBefore={<Space.Compact><FormattedMessage id='map.settings.shelf.top' defaultMessage='上' /></Space.Compact>}
                                        style={{
                                            width: '50%',
                                        }}
                                    />
                                </Form.Item>
                                <Form.Item
                                    name='bottom'
                                    noStyle
                                >
                                    <InputNumber
                                        addonBefore={<Space.Compact><FormattedMessage id='map.settings.shelf.bottom' defaultMessage='下' /></Space.Compact>}
                                        style={{
                                            width: '50%',
                                        }}
                                    />
                                </Form.Item>
                            </Space.Compact>
                        </Form.Item>
                        <Form.Item
                            name='right'
                            label={intl.formatMessage({ id: 'map.settings.shelf.right', defaultMessage: '右' })}
                            rules={[
                                {
                                    required: false,
                                },
                            ]}
                            label={' '}
                        >
                            <InputNumber
                                style={{
                                    width: '50%',
                                }}
                            />
                            <Space.Compact>
                                <Form.Item
                                    name='left'
                                    noStyle
                                >
                                    <InputNumber
                                        addonBefore={<Space.Compact><FormattedMessage id='map.settings.shelf.left' defaultMessage='左' /></Space.Compact>}
                                        style={{
                                            width: '50%',
                                        }}
                                    />
                                </Form.Item>
                                <Form.Item
                                    name='right'
                                    noStyle
                                >
                                    <InputNumber
                                        addonBefore={<Space.Compact><FormattedMessage id='map.settings.shelf.right' defaultMessage='右' /></Space.Compact>}
                                        style={{
                                            width: '50%',
                                        }}
                                    />
                                </Form.Item>
                            </Space.Compact>
                        </Form.Item>
                        <Form.Item
                            name='bottom'
                            label={intl.formatMessage({ id: 'map.settings.shelf.bottom', defaultMessage: '下' })}
                            rules={[
                                {
                                    required: false,
                                },
                            ]}
                            label={intl.formatMessage({ id: 'map.settings.shelf.reference', defaultMessage: '基准值' })}
                        >
                            <InputNumber
                                style={{
                                    width: '50%',
                                }}
                            />
                        </Form.Item>
                        <Form.Item
                            name='left'
                            label={intl.formatMessage({ id: 'map.settings.shelf.left', defaultMessage: '左' })}
                            rules={[
                                {
                                    required: false,
                                },
                            ]}
                        >
                            <InputNumber
                                style={{
                                    width: '50%',
                                }}
                            />
                            <Space.Compact>
                                <Form.Item
                                    name='refx'
                                    noStyle
                                    rules={[
                                        {
                                            required: false,
                                        },
                                    ]}
                                >
                                    <InputNumber
                                        addonBefore={<Space.Compact><FormattedMessage id='map.x' defaultMessage='x' /></Space.Compact>}
                                        style={{
                                            width: '50%',
                                        }}
                                    />
                                </Form.Item>
                                <Form.Item
                                    name='refy'
                                    noStyle
                                    rules={[
                                        {
                                            required: false,
                                        },
                                    ]}
                                >
                                    <InputNumber
                                        addonBefore={<Space.Compact><FormattedMessage id='map.y' defaultMessage='y' /></Space.Compact>}
                                        style={{
                                            width: '50%',
                                        }}
                                    />
                                </Form.Item>
                            </Space.Compact>
                        </Form.Item>
                        <Form.Item
                            name='value'
                            label={intl.formatMessage({ id: 'map.settings.shelf.value', defaultMessage: '地图值' })}
                        >
                            <Input
                                style={{
                                    width: '50%',
                                }}
                            />
                        </Form.Item>
                    </>
                )}
                {curSprite?.data?.type === Utils.SENSOR_TYPE.CONVEYOR && (
                    <>
                        <Form.Item
                            name='plcNo'
                            label={intl.formatMessage({ id: 'map.settings.conveyor.plc.no', defaultMessage: 'PLC编号' })}
                            rules={[
                                {
                                    required: false,
                                    required: true,
                                },
                            ]}
                        >
                            <Input
                            <InputNumber
                                style={{
                                    width: '50%',
                                }}