From a908604f5aa2da9921cd99c12a6fa422d5893f4a Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 11 十月 2024 15:17:04 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/settings/CopyDrawer.jsx |  204 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 201 insertions(+), 3 deletions(-)

diff --git a/zy-acs-flow/src/map/settings/CopyDrawer.jsx b/zy-acs-flow/src/map/settings/CopyDrawer.jsx
index e880819..8f6b767 100644
--- a/zy-acs-flow/src/map/settings/CopyDrawer.jsx
+++ b/zy-acs-flow/src/map/settings/CopyDrawer.jsx
@@ -15,20 +15,59 @@
     Divider,
     Drawer,
     IconButton,
+    LinearProgress,
+    Switch,
+    FormControlLabel,
+    FormLabel,
+    ToggleButtonGroup,
+    ToggleButton,
 } from '@mui/material';
 import CloseIcon from '@mui/icons-material/Close';
 import { useTranslate } from 'react-admin';
 import * as Tool from '../tool';
 import { PAGE_DRAWER_WIDTH } from '@/config/setting';
-
+import {
+    DEVICE_TYPE,
+} from '../constants';
+import { useNotification } from '../Notification';
 
 const CopyDrawer = (props) => {
-    const { open, onCancel, sprite, width = PAGE_DRAWER_WIDTH, title } = props;
+    const { open, onCancel, sprite, value, width = PAGE_DRAWER_WIDTH, handleOnCopy } = props;
+    const notify = useNotification();
     const translate = useTranslate();
+    const deviceType = sprite?.data?.type;
+
+    const { control, handleSubmit, reset, watch, setValue, formState: { errors } } = useForm({
+        defaultValues: {
+            copyDirect: value?.copyDirect || '',
+            copyCount: value?.copyCount || '',
+            gap: 0.0,
+            autoIncrement: false,
+            incrementMode: 'ascending',
+        },
+    });
+
+    useEffect(() => {
+        if (value && Object.keys(value).length > 0) {
+            // setValue('copyDirect', value.copyDirect);
+            // setValue('copyCount', value.copyCount);
+        }
+    }, [value, setValue])
 
     const handleClose = () => {
         onCancel();
     }
+
+    const onFormSubmit = (data) => {
+        if (data) {
+            console.log(data);
+
+        }
+        if (handleOnCopy) {
+            handleOnCopy(data);
+        }
+        notify.info(translate('common.response.success'));
+    };
 
     return (
         <>
@@ -39,7 +78,7 @@
                 onClose={handleClose}
                 sx={{ zIndex: 100, opacity: 1 }}
             >
-                {open && (
+                {(open) && (
                     <Box pt={12} width={{ xs: '100vW', sm: width }} height={'calc(100vh - 200px);'} mt={{ xs: 2, sm: 1 }} sx={{
                     }}>
                         <Stack direction="row" p={2}>
@@ -52,6 +91,165 @@
                         </Stack>
 
                         <Box p={3}>
+                            <Box component="form" onSubmit={handleSubmit(onFormSubmit)} noValidate sx={{ mt: 0 }}>
+                                <Grid container spacing={1.4}>
+
+                                    {/* <Grid item xs={6}>
+                                        <Typography variant="body1">
+                                            {translate('page.map.settings.map.copy.direction')}: {value?.copyDirect}
+                                        </Typography>
+                                    </Grid>
+                                    <Grid item xs={6}>
+                                        <Typography variant="body1">
+                                            {translate('page.map.settings.map.copy.count')}: {value?.copyCount}
+                                        </Typography>
+                                    </Grid> */}
+
+                                    <Grid item xs={6}>
+                                        <Controller
+                                            name="copyDirect"
+                                            control={control}
+                                            render={({ field }) => (
+                                                <TextField
+                                                    {...field}
+                                                    label={translate('page.map.settings.map.copy.direction')}
+                                                    InputProps={{
+                                                        readOnly: true,
+                                                    }}
+                                                    fullWidth
+                                                />
+                                            )}
+                                        />
+                                    </Grid>
+                                    <Grid item xs={6}>
+                                        <Controller
+                                            name="copyCount"
+                                            control={control}
+                                            render={({ field }) => (
+                                                <TextField
+                                                    {...field}
+                                                    label={translate('page.map.settings.map.copy.count')}
+                                                    InputProps={{
+                                                        readOnly: true,
+                                                    }}
+                                                    fullWidth
+                                                />
+                                            )}
+                                        />
+                                    </Grid>
+
+                                    <Grid item xs={12}>
+                                        <Controller
+                                            name="gap"
+                                            control={control}
+                                            render={({ field }) => (
+                                                <TextField
+                                                    {...field}
+                                                    label={translate('page.map.settings.map.copy.field.gap')}
+                                                    type="number"
+                                                    sx={{ width: '50%' }}
+                                                    fullWidth
+                                                    inputProps={{
+                                                        min: 0,
+                                                        step: 1,
+                                                    }}
+                                                />
+                                            )}
+                                        />
+                                    </Grid>
+
+                                    <Grid item xs={12} mt={2} mb={1}>
+                                        <Divider />
+                                    </Grid>
+
+                                    <Grid item xs={12}>
+                                        <Controller
+                                            name="autoIncrement"
+                                            control={control}
+                                            render={({ field }) => (
+                                                <FormControlLabel
+                                                    control={
+                                                        <Switch
+                                                            {...field}
+                                                            checked={field.value || false}
+                                                            onChange={(e) => field.onChange(e.target.checked)}
+                                                        />
+                                                    }
+                                                    label={translate('page.map.settings.map.copy.field.autoIncrement')}
+                                                />
+                                            )}
+                                        />
+                                    </Grid>
+
+                                    {watch('autoIncrement') && (
+                                        <Grid item xs={12}>
+                                            <FormControl fullWidth>
+                                                <FormLabel sx={{
+                                                    mb: 1
+                                                }}>
+                                                    {translate('page.map.settings.map.copy.field.incrementMode')}
+                                                </FormLabel>
+                                                <Controller
+                                                    name="incrementMode"
+                                                    control={control}
+                                                    render={({ field }) => (
+                                                        <ToggleButtonGroup
+                                                            {...field}
+                                                            value={field.value}
+                                                            exclusive
+                                                            onChange={(event, value) => {
+                                                                field.onChange(value);
+                                                            }}
+                                                            fullWidth
+                                                        >
+                                                            <ToggleButton value="ascending">
+                                                                {translate('page.map.settings.map.copy.field.ascend')}
+                                                            </ToggleButton>
+                                                            <ToggleButton value="descending">
+                                                                {translate('page.map.settings.map.copy.field.descend')}
+                                                            </ToggleButton>
+                                                        </ToggleButtonGroup>
+                                                    )}
+                                                />
+                                            </FormControl>
+                                        </Grid>
+                                    )}
+
+                                    {deviceType === DEVICE_TYPE.SHELF && (
+                                        <>
+                                        </>
+                                    )}
+
+                                    {deviceType === DEVICE_TYPE.CHARGE && (
+                                        <>
+                                        </>
+                                    )}
+
+                                    {deviceType === DEVICE_TYPE.STATION && (
+                                        <>
+                                        </>
+                                    )}
+
+                                    {deviceType === DEVICE_TYPE.POINT && (
+                                        <>
+                                        </>
+                                    )}
+
+
+                                    <Grid item xs={12}>
+                                        <Divider />
+                                    </Grid>
+
+                                    <Grid item xs={12} mt={2}>
+                                        <Stack direction="row" spacing={2}>
+                                            <Button variant="contained" color="primary" type="submit">
+                                                {translate('ra.action.confirm')}
+                                            </Button>
+                                        </Stack>
+                                    </Grid>
+
+                                </Grid>
+                            </Box>
                         </Box>
                     </Box>
                 )}

--
Gitblit v1.9.1