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