| | |
| | | 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 ( |
| | | <> |
| | |
| | | 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}> |
| | |
| | | </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> |
| | | )} |