From 920e52029ffad0bd2486ddeb583c3f25d1fa152a Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 11 十月 2024 11:00:56 +0800 Subject: [PATCH] # --- zy-acs-flow/src/map/settings/ConfigSettings.jsx | 42 +++++++++++++++++++++++++++++++----------- 1 files changed, 31 insertions(+), 11 deletions(-) diff --git a/zy-acs-flow/src/map/settings/ConfigSettings.jsx b/zy-acs-flow/src/map/settings/ConfigSettings.jsx index 54bec87..75aee21 100644 --- a/zy-acs-flow/src/map/settings/ConfigSettings.jsx +++ b/zy-acs-flow/src/map/settings/ConfigSettings.jsx @@ -36,8 +36,9 @@ const notify = useNotification(); const translate = useTranslate(); - const { control, handleSubmit, reset, watch, setValue } = useForm({ + const { control, handleSubmit, reset, watch, setValue, unregister } = useForm({ defaultValues: getFormDefaultValues(sprite?.data), + shouldUnregister: true, }); useEffect(() => { @@ -46,16 +47,32 @@ } }, [sprite, reset]); + const deviceType = sprite?.data?.type; + const rowValue = watch('row'); const bayValue = watch('bay'); useEffect(() => { - if (rowValue != null && bayValue != null && rowValue !== '' && bayValue !== '') { - setValue('no', `${rowValue}-${bayValue}`); - } else { - setValue('no', ''); + if (deviceType !== DEVICE_TYPE.SHELF) { + unregister('row'); + unregister('bay'); } - }, [rowValue, bayValue, setValue]); + }, [deviceType, unregister]); + + useEffect(() => { + if (deviceType === DEVICE_TYPE.SHELF) { + if (rowValue != null && bayValue != null && rowValue !== '' && bayValue !== '') { + setValue('no', `${rowValue}-${bayValue}`); + } else { + setValue('no', ''); + } + } + }, [ + setValue, + deviceType, + rowValue, + bayValue, + ]); const onFormSubmit = (data) => { if (sprite && sprite.data) { @@ -74,7 +91,7 @@ <> <Box component="form" onSubmit={handleSubmit(onFormSubmit)} noValidate sx={{ mt: 0 }}> <Grid container spacing={1.4}> - {sprite?.data?.type === DEVICE_TYPE.SHELF && ( + {deviceType === DEVICE_TYPE.SHELF && ( <> <Grid item xs={6}> <Controller @@ -85,6 +102,7 @@ {...field} label={translate('page.map.settings.config.shelf.row')} type="number" + value={field.value ?? ''} fullWidth onChange={(e) => { field.onChange(e); @@ -102,6 +120,7 @@ {...field} label={translate('page.map.settings.config.shelf.bay')} type="number" + value={field.value ?? ''} fullWidth onChange={(e) => { field.onChange(e); @@ -113,20 +132,21 @@ </> )} - {sprite?.data?.type === DEVICE_TYPE.CHARGE && ( + {deviceType === DEVICE_TYPE.CHARGE && ( <> </> )} - {sprite?.data?.type === DEVICE_TYPE.STATION && ( + {deviceType === DEVICE_TYPE.STATION && ( <> </> )} - {sprite?.data?.type === DEVICE_TYPE.POINT && ( + {deviceType === DEVICE_TYPE.POINT && ( <> </> )} + <Grid item xs={12}> <Divider /> </Grid> @@ -146,7 +166,7 @@ {...field} label="No" type="text" - value={field.value || ''} + value={field.value ?? ''} fullWidth onChange={(e) => { field.onChange(e); -- Gitblit v1.9.1