From 6bee3457639f04f3a3576c1a32dcb7d5632cd3d4 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 11 十月 2024 15:52:49 +0800 Subject: [PATCH] # --- zy-acs-flow/src/map/settings/CopyDrawer.jsx | 179 ++++++++++++++++------------------------------------------- 1 files changed, 50 insertions(+), 129 deletions(-) diff --git a/zy-acs-flow/src/map/settings/CopyDrawer.jsx b/zy-acs-flow/src/map/settings/CopyDrawer.jsx index 7b8176b..60b46e2 100644 --- a/zy-acs-flow/src/map/settings/CopyDrawer.jsx +++ b/zy-acs-flow/src/map/settings/CopyDrawer.jsx @@ -31,11 +31,28 @@ } from '../constants'; import { useNotification } from '../Notification'; +const incrementOptionsMap = { + [DEVICE_TYPE.SHELF]: [ + { value: 'row', label: 'page.map.settings.config.shelf.row' }, + { value: 'bay', label: 'page.map.settings.config.shelf.bay' }, + ], + [DEVICE_TYPE.CHARGE]: [ + { value: 'no', label: 'page.map.settings.config.base.no' }, + ], + [DEVICE_TYPE.STATION]: [ + { value: 'no', label: 'page.map.settings.config.base.no' }, + ], + [DEVICE_TYPE.POINT]: [ + { value: 'no', label: 'page.map.settings.config.base.no' }, + ], +}; + const CopyDrawer = (props) => { const { open, onCancel, sprite, value, width = PAGE_DRAWER_WIDTH, handleOnCopy } = props; const notify = useNotification(); const translate = useTranslate(); const deviceType = sprite?.data?.type; + const incrementOptions = incrementOptionsMap[deviceType] const { control, handleSubmit, reset, watch, setValue, formState: { errors } } = useForm({ defaultValues: { @@ -48,11 +65,28 @@ }); useEffect(() => { - if (value && Object.keys(value).length > 0) { - // setValue('copyDirect', value.copyDirect); - // setValue('copyCount', value.copyCount); + if (watch('autoIncrement') && incrementOptions && incrementOptions.length > 0) { + const currentIncrementValue = watch('incrementValue'); + if (!currentIncrementValue) { + setValue('incrementValue', incrementOptions[0].value); + } + } else { + setValue('incrementValue', undefined); } - }, [value, setValue]) + }, [watch('autoIncrement'), incrementOptions, setValue, watch]); + + useEffect(() => { + if (sprite && value && Object.keys(value).length > 0) { + reset({ + copyDirect: value.copyDirect || '', + copyCount: value.copyCount || '', + gap: 0.0, + autoIncrement: false, + incrementMode: 'ascending', + incrementValue: undefined, + }); + } + }, [sprite, value, reset, incrementOptions, setValue]); const handleClose = () => { onCancel(); @@ -93,18 +127,6 @@ <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" @@ -181,16 +203,14 @@ /> </Grid> - {(deviceType === DEVICE_TYPE.SHELF && watch('autoIncrement')) && ( + {(!!incrementOptions?.length && watch('autoIncrement')) && ( <Grid item xs={12}> <FormControl fullWidth> - <FormLabel sx={{ - mb: 1 - }}> + <FormLabel sx={{ mb: 1 }}> {translate('page.map.settings.map.copy.field.incrementValue')} </FormLabel> <Controller - name="incrementValue" + name='incrementValue' control={control} render={({ field }) => ( <ToggleButtonGroup @@ -202,115 +222,16 @@ }} fullWidth > - <ToggleButton value="row"> - {translate('page.map.settings.config.shelf.row')} - </ToggleButton> - <ToggleButton value="bay"> - {translate('page.map.settings.config.shelf.bay')} - </ToggleButton> - </ToggleButtonGroup> - )} - /> - </FormControl> - </Grid> - )} - - {(deviceType === DEVICE_TYPE.CHARGE && watch('autoIncrement')) && ( - <Grid item xs={12}> - <FormControl fullWidth> - <FormLabel sx={{ - mb: 1 - }}> - {translate('page.map.settings.map.copy.field.incrementValue')} - </FormLabel> - <Controller - name="incrementValue" - control={control} - render={({ field }) => ( - <ToggleButtonGroup - {...field} - value={field.value} - exclusive - onChange={(event, value) => { - field.onChange(value); - }} - fullWidth - > - <ToggleButton value="no"> - {translate('page.map.settings.config.base.no')} - </ToggleButton> - </ToggleButtonGroup> - )} - /> - </FormControl> - </Grid> - )} - - {(deviceType === DEVICE_TYPE.STATION && watch('autoIncrement')) && ( - <Grid item xs={12}> - <FormControl fullWidth> - <FormLabel sx={{ - mb: 1 - }}> - {translate('page.map.settings.map.copy.field.incrementValue')} - </FormLabel> - <Controller - name="incrementValue" - control={control} - render={({ field }) => ( - <ToggleButtonGroup - {...field} - value={field.value} - exclusive - onChange={(event, value) => { - field.onChange(value); - }} - fullWidth - > - <ToggleButton value="no"> - {translate('page.map.settings.config.base.no')} - </ToggleButton> - </ToggleButtonGroup> - )} - /> - </FormControl> - </Grid> - )} - - {(deviceType === DEVICE_TYPE.POINT && watch('autoIncrement')) && ( - <> - <Grid item xs={12}> - <FormControl fullWidth> - <FormLabel sx={{ - mb: 1 - }}> - {translate('page.map.settings.map.copy.field.incrementValue')} - </FormLabel> - <Controller - name="incrementValue" - control={control} - render={({ field }) => ( - <ToggleButtonGroup - {...field} - value={field.value} - exclusive - onChange={(event, value) => { - field.onChange(value); - }} - fullWidth - > - <ToggleButton value="a"> - {translate('page.map.settings.config.shelf.a')} + {incrementOptions.map((option, idx) => ( + <ToggleButton key={idx} value={option.value}> + {translate(option.label)} </ToggleButton> - <ToggleButton value="b"> - {translate('page.map.settings.config.shelf.b')} - </ToggleButton> - </ToggleButtonGroup> - )} - /> - </FormControl> - </Grid> - </> + ))} + </ToggleButtonGroup> + )} + /> + </FormControl> + </Grid> )} {watch('autoIncrement') && ( -- Gitblit v1.9.1