#
vincentlu
2025-12-15 1ed4b56aee1e01d9cdeca3766c687c0ebfe45965
zy-acs-flow/src/map/areaSettings/index.jsx
@@ -1,27 +1,75 @@
import React, { useState, useRef, useEffect } from 'react';
import React, { useState, useEffect } from 'react';
import { useTranslate } from "react-admin";
import { Drawer, Box, Typography, Tabs, Tab, IconButton, Stack, useTheme, Card, CardContent, Divider } from '@mui/material';
import {
    Drawer,
    Box,
    Typography,
    Tabs,
    Tab,
    IconButton,
    Stack,
    useTheme,
    Card,
    CardContent,
    Divider,
} from '@mui/material';
import CloseIcon from '@mui/icons-material/Close';
import { PAGE_DRAWER_WIDTH } from '@/config/setting';
import MapSettings from './MapSettings';
import ConfigSettings from './ConfigSettings';
import AreaBasicTab from './AreaBasicTab';
import AreaAdvancedTab from './AreaAdvancedTab';
const AreaSettings = (props) => {
    const { open, onCancel, sprite, width = PAGE_DRAWER_WIDTH, title, setSpriteSettings } = props;
    const { open, onCancel, sprite, width = PAGE_DRAWER_WIDTH } = props;
    const theme = useTheme();
    const themeMode = theme.palette.mode;
    const translate = useTranslate();
    const [lastCopiedSprites, setLastCopiedSprites] = useState([]);
    const handleClose = () => {
        onCancel();
    }
    const [activeTab, setActiveTab] = useState(0);
    const [areaName, setAreaName] = useState('');
    const [agvList, setAgvList] = useState('');
    const [barcodeList, setBarcodeList] = useState('');
    const [areaCode, setAreaCode] = useState('');
    const [maxQty, setMaxQty] = useState('');
    const [speedLimit, setSpeedLimit] = useState('');
    const [shapeData, setShapeData] = useState('');
    const [priority, setPriority] = useState('');
    useEffect(() => {
        if (sprite?.data) {
            setAreaName(sprite.data.name || '');
            setAreaCode(sprite.data.code || '');
            setMaxQty(sprite.data.maxQty || '');
            setSpeedLimit(sprite.data.speedLimit || '');
            setShapeData(sprite.data.shape || '');
            setPriority(sprite.data.priority || '');
            setAgvList((sprite.data.agvs || []).join(', '));
            setBarcodeList((sprite.data.barcodes || []).join('\n'));
        } else {
            setAreaName('');
            setAreaCode('');
            setMaxQty('');
            setSpeedLimit('');
            setShapeData('');
            setPriority('');
            setAgvList('');
            setBarcodeList('');
        }
    }, [sprite]);
    const handleTabChange = (event, newValue) => {
        setActiveTab(newValue);
    };
    const handleSaveBasic = () => {
        // placeholder for save logic
    };
    const handleSaveAdvanced = () => {
        // placeholder for save logic
    };
    return (
@@ -69,29 +117,37 @@
                                        variant="fullWidth"
                                        sx={{ mb: 0 }}
                                    >
                                        <Tab label={translate('page.map.settings.map.title')} />
                                        <Tab label={translate('page.map.settings.config.title')} />
                                        <Tab label={translate('page.map.area.basic', { _: '基础' })} />
                                        <Tab label={translate('page.map.area.advanced', { _: '高级' })} />
                                    </Tabs>
                                    <Divider />
                                    <Box p={3}>
                                        {activeTab === 0 && (
                                            <MapSettings
                                                sprite={sprite}
                                                setSpriteSettings={setSpriteSettings}
                                                onSubmit={() => {
                                                }}
                                                width={width}
                                                lastCopiedSprites={lastCopiedSprites}
                                                setLastCopiedSprites={setLastCopiedSprites}
                                            <AreaBasicTab
                                                areaName={areaName}
                                                setAreaName={setAreaName}
                                                agvList={agvList}
                                                setAgvList={setAgvList}
                                                barcodeList={barcodeList}
                                                setBarcodeList={setBarcodeList}
                                                onSave={handleSaveBasic}
                                            />
                                        )}
                                        {activeTab === 1 && (
                                            <ConfigSettings
                                                sprite={sprite}
                                                onSubmit={() => {
                                                }}
                                            <AreaAdvancedTab
                                                areaCode={areaCode}
                                                setAreaCode={setAreaCode}
                                                maxQty={maxQty}
                                                setMaxQty={setMaxQty}
                                                speedLimit={speedLimit}
                                                setSpeedLimit={setSpeedLimit}
                                                shapeData={shapeData}
                                                setShapeData={setShapeData}
                                                priority={priority}
                                                setPriority={setPriority}
                                                onSave={handleSaveAdvanced}
                                            />
                                        )}
                                    </Box>
@@ -105,4 +161,4 @@
    )
}
export default AreaSettings;
export default AreaSettings;