From 822d9d9494cc575c1bcdbaa51d68da817236c0b8 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 12 十月 2024 08:13:56 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/settings/index.jsx       |   10 +
 zy-acs-flow/src/map/settings/MapSettings.jsx |    8 
 zy-acs-flow/src/map/settings/CopyDrawer.jsx  |  346 ++++++++++++++++++++++++++-----------------------
 zy-acs-flow/src/map/player.js                |    4 
 zy-acs-flow/src/map/MapPage.jsx              |    5 
 5 files changed, 203 insertions(+), 170 deletions(-)

diff --git a/zy-acs-flow/src/map/MapPage.jsx b/zy-acs-flow/src/map/MapPage.jsx
index 527f79d..b05430e 100644
--- a/zy-acs-flow/src/map/MapPage.jsx
+++ b/zy-acs-flow/src/map/MapPage.jsx
@@ -92,6 +92,11 @@
             window.removeEventListener('resize', handleResize);
             Tool.patchRaLayout('');
         };
+    }, [])
+
+    useEffect(() => {
+        player.setTheme(themeMode);
+        Tool.setThemeMode(themeMode);
     }, [themeMode])
 
     const switchMode = (mode) => {
diff --git a/zy-acs-flow/src/map/player.js b/zy-acs-flow/src/map/player.js
index 63f6d2c..0ba0145 100644
--- a/zy-acs-flow/src/map/player.js
+++ b/zy-acs-flow/src/map/player.js
@@ -390,6 +390,10 @@
         this.app.destroy(true, { children: true });
     }
 
+    setTheme = (themeMode) => {
+        this.app.renderer.background.color = themeMode === 'dark' ? 0x2f3542 : 0xf1f2f6;
+    }
+
 }
 
 const generateApp = (dom, themeMode) => {
diff --git a/zy-acs-flow/src/map/settings/CopyDrawer.jsx b/zy-acs-flow/src/map/settings/CopyDrawer.jsx
index 2229124..f72ab02 100644
--- a/zy-acs-flow/src/map/settings/CopyDrawer.jsx
+++ b/zy-acs-flow/src/map/settings/CopyDrawer.jsx
@@ -5,11 +5,12 @@
     Grid,
     Typography,
     TextField,
-    Slider,
+    Card,
+    CardContent,
     Button,
     Select,
     MenuItem,
-    InputLabel,
+    useTheme,
     FormControl,
     Stack,
     Divider,
@@ -79,6 +80,9 @@
     const { open, onCancel, sprite, value, width = PAGE_DRAWER_WIDTH, handleOnCopy } = props;
     const notify = useNotification();
     const translate = useTranslate();
+    const theme = useTheme();
+    const themeMode = theme.palette.mode;
+
     const deviceType = sprite?.data?.type;
     const incrementOptions = incrementOptionsMap[deviceType]
 
@@ -137,173 +141,189 @@
                         </Stack>
 
                         <Box p={3}>
-                            <Box component="form" onSubmit={handleSubmit(onFormSubmit)} noValidate sx={{ mt: 0 }}>
-                                <Grid container spacing={1.4}>
-                                    <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}
-                                            rules={{ validate: (value) => validateIncrement(value, deviceType, sprite, translate) }}
-                                            render={({ field }) => (
-                                                <FormControlLabel
-                                                    control={
-                                                        <Switch
+                            <Card sx={{
+                                p: 2,
+                                transition: '0.3s',
+                                boxShadow: themeMode === 'light'
+                                    ? '0px 2px 8px rgba(0, 0, 0, 0.1)'
+                                    : '0px 2px 2px rgba(255, 255, 255, 0.1)',
+                                '&:hover': {
+                                    boxShadow: themeMode === 'light'
+                                        ? '0px 4px 16px rgba(0, 0, 0, 0.2)'
+                                        : '0px 4px 8px rgba(255, 255, 255, 0.2)',
+                                },
+                                borderRadius: '8px',
+                            }}>
+                                <CardContent>
+                                    <Box component="form" onSubmit={handleSubmit(onFormSubmit)} noValidate sx={{ mt: 0 }}>
+                                        <Grid container spacing={1.4}>
+                                            <Grid item xs={6}>
+                                                <Controller
+                                                    name="copyDirect"
+                                                    control={control}
+                                                    render={({ field }) => (
+                                                        <TextField
                                                             {...field}
-                                                            checked={field.value || false}
-                                                            onChange={(e) => field.onChange(e.target.checked)}
+                                                            label={translate('page.map.settings.map.copy.direction')}
+                                                            InputProps={{
+                                                                readOnly: true,
+                                                            }}
+                                                            fullWidth
                                                         />
-                                                    }
-                                                    label={translate('page.map.settings.map.copy.field.autoIncrement')}
+                                                    )}
                                                 />
+                                            </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}
+                                                    rules={{ validate: (value) => validateIncrement(value, deviceType, sprite, translate) }}
+                                                    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')}
+                                                        />
+                                                    )}
+                                                />
+                                                {errors.autoIncrement && (
+                                                    <Typography color="error">
+                                                        {errors.autoIncrement.message}
+                                                    </Typography>
+                                                )}
+                                            </Grid>
+
+                                            {(!!incrementOptions?.length && 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) => {
+                                                                        if (value !== null) {
+                                                                            field.onChange(value);
+                                                                        }
+                                                                    }}
+                                                                    fullWidth
+                                                                >
+                                                                    {incrementOptions.map((option, idx) => (
+                                                                        <ToggleButton key={idx} value={option.value}>
+                                                                            {translate(option.label)}
+                                                                        </ToggleButton>
+                                                                    ))}
+                                                                </ToggleButtonGroup>
+                                                            )}
+                                                        />
+                                                    </FormControl>
+                                                </Grid>
                                             )}
-                                        />
-                                        {errors.autoIncrement && (
-                                            <Typography color="error">
-                                                {errors.autoIncrement.message}
-                                            </Typography>
-                                        )}
-                                    </Grid>
 
-                                    {(!!incrementOptions?.length && 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) => {
-                                                                if (value !== null) {
-                                                                    field.onChange(value);
-                                                                }
-                                                            }}
-                                                            fullWidth
-                                                        >
-                                                            {incrementOptions.map((option, idx) => (
-                                                                <ToggleButton key={idx} value={option.value}>
-                                                                    {translate(option.label)}
-                                                                </ToggleButton>
-                                                            ))}
-                                                        </ToggleButtonGroup>
-                                                    )}
-                                                />
-                                            </FormControl>
+                                            {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) => {
+                                                                        if (value !== null) {
+                                                                            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>
+                                            )}
+
+                                            <Grid item xs={12} mt={2}>
+                                                <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>
-                                    )}
-
-                                    {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) => {
-                                                                if (value !== null) {
-                                                                    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>
-                                    )}
-
-                                    <Grid item xs={12} mt={2}>
-                                        <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>
+                                </CardContent>
+                            </Card>
                         </Box>
                     </Box>
                 )}
diff --git a/zy-acs-flow/src/map/settings/MapSettings.jsx b/zy-acs-flow/src/map/settings/MapSettings.jsx
index d470e19..e414696 100644
--- a/zy-acs-flow/src/map/settings/MapSettings.jsx
+++ b/zy-acs-flow/src/map/settings/MapSettings.jsx
@@ -27,10 +27,10 @@
 
     const { control, handleSubmit, reset, watch } = useForm({
         defaultValues: {
-            x: sprite?.position.x || 0,
-            y: sprite?.position.y || 0,
-            scaleX: sprite?.scale.x || 1,
-            scaleY: sprite?.scale.y || 1,
+            x: sprite?.position?.x || 0,
+            y: sprite?.position?.y || 0,
+            scaleX: sprite?.scale?.x || 1,
+            scaleY: sprite?.scale?.y || 1,
             rotation: (sprite?.rotation * 180) / Math.PI || 0,
             copyDirection: 'right',
             copyCount: 1,
diff --git a/zy-acs-flow/src/map/settings/index.jsx b/zy-acs-flow/src/map/settings/index.jsx
index 56096a3..c132d95 100644
--- a/zy-acs-flow/src/map/settings/index.jsx
+++ b/zy-acs-flow/src/map/settings/index.jsx
@@ -1,6 +1,6 @@
 import React, { useState, useRef, useEffect } from 'react';
 import { useTranslate } from "react-admin";
-import { Drawer, Box, Typography, Tabs, Tab, IconButton, Stack, useTheme, Card, CardContent, CardHeader, Divider } from '@mui/material';
+import { Drawer, Box, Typography, Tabs, Tab, IconButton, Stack, useTheme, Card, CardContent, Divider } from '@mui/material';
 import CloseIcon from '@mui/icons-material/Close';
 import { PAGE_DRAWER_WIDTH } from '@/config/setting';
 import MapSettings from './MapSettings';
@@ -53,9 +53,13 @@
                         <Box p={3}>
                             <Card sx={{
                                 transition: '0.3s',
-                                boxShadow: '0px 2px 8px rgba(0, 0, 0, 0.1)',
+                                boxShadow: themeMode === 'light'
+                                    ? '0px 2px 8px rgba(0, 0, 0, 0.1)'
+                                    : '0px 2px 2px rgba(255, 255, 255, 0.1)',
                                 '&:hover': {
-                                    boxShadow: '0px 4px 16px rgba(0, 0, 0, 0.2)',
+                                    boxShadow: themeMode === 'light'
+                                        ? '0px 4px 16px rgba(0, 0, 0, 0.2)'
+                                        : '0px 4px 8px rgba(255, 255, 255, 0.2)',
                                 },
                                 borderRadius: '8px',
                             }}>

--
Gitblit v1.9.1