From c993b0005df6cccdc8d701a16493eb40fb4f4c73 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 19 九月 2024 17:14:45 +0800
Subject: [PATCH] #

---
 zy-acs-flow/public/login_bg11.jpg    |    0 
 zy-acs-flow/public/login_bg1.jpg     |    0 
 zy-acs-flow/public/login_bg3.jpg     |    0 
 zy-acs-flow/public/login_bg788.jpg   |    0 
 zy-acs-flow/src/page/login/Login.jsx |  140 ++++++++++++++++++++++++++++++++++++++++++++--
 zy-acs-flow/public/login_bg12.jpg    |    0 
 zy-acs-flow/public/login_bg.jpg      |    0 
 zy-acs-flow/public/login_bg66.jpg    |    0 
 zy-acs-flow/src/App.jsx              |    2 
 zy-acs-flow/public/login_bg223.jpg   |    0 
 10 files changed, 134 insertions(+), 8 deletions(-)

diff --git a/zy-acs-flow/public/login_bg.jpg b/zy-acs-flow/public/login_bg.jpg
new file mode 100644
index 0000000..1671796
--- /dev/null
+++ b/zy-acs-flow/public/login_bg.jpg
Binary files differ
diff --git a/zy-acs-flow/public/login_bg1.jpg b/zy-acs-flow/public/login_bg1.jpg
new file mode 100644
index 0000000..960aafe
--- /dev/null
+++ b/zy-acs-flow/public/login_bg1.jpg
Binary files differ
diff --git a/zy-acs-flow/public/login_bg11.jpg b/zy-acs-flow/public/login_bg11.jpg
new file mode 100644
index 0000000..6e92df1
--- /dev/null
+++ b/zy-acs-flow/public/login_bg11.jpg
Binary files differ
diff --git a/zy-acs-flow/public/login_bg12.jpg b/zy-acs-flow/public/login_bg12.jpg
new file mode 100644
index 0000000..c005200
--- /dev/null
+++ b/zy-acs-flow/public/login_bg12.jpg
Binary files differ
diff --git a/zy-acs-flow/public/login_bg223.jpg b/zy-acs-flow/public/login_bg223.jpg
new file mode 100644
index 0000000..ddb8406
--- /dev/null
+++ b/zy-acs-flow/public/login_bg223.jpg
Binary files differ
diff --git a/zy-acs-flow/public/login_bg3.jpg b/zy-acs-flow/public/login_bg3.jpg
new file mode 100644
index 0000000..0f36942
--- /dev/null
+++ b/zy-acs-flow/public/login_bg3.jpg
Binary files differ
diff --git a/zy-acs-flow/public/login_bg66.jpg b/zy-acs-flow/public/login_bg66.jpg
new file mode 100644
index 0000000..463c1c7
--- /dev/null
+++ b/zy-acs-flow/public/login_bg66.jpg
Binary files differ
diff --git a/zy-acs-flow/public/login_bg788.jpg b/zy-acs-flow/public/login_bg788.jpg
new file mode 100644
index 0000000..7a5e114
--- /dev/null
+++ b/zy-acs-flow/public/login_bg788.jpg
Binary files differ
diff --git a/zy-acs-flow/src/App.jsx b/zy-acs-flow/src/App.jsx
index 47c662d..f026581 100644
--- a/zy-acs-flow/src/App.jsx
+++ b/zy-acs-flow/src/App.jsx
@@ -56,7 +56,7 @@
         defaultTheme={DEFAULT_THEME_MODE}
         i18nProvider={i18nProvider}
         dataProvider={DataProvider(DATA_PROVIDER_SPRING)}
-        // loginPage={Login}
+        loginPage={Login}
         dashboard={Dashboard}
       >
         {permissions => (
diff --git a/zy-acs-flow/src/page/login/Login.jsx b/zy-acs-flow/src/page/login/Login.jsx
index 29e615c..bd2ad7e 100644
--- a/zy-acs-flow/src/page/login/Login.jsx
+++ b/zy-acs-flow/src/page/login/Login.jsx
@@ -1,10 +1,136 @@
+import * as React from 'react';
+import { useState } from 'react';
+import { useLocation } from 'react-router-dom';
+
+import {
+    Avatar,
+    Box,
+    Button,
+    Card,
+    CardActions,
+    CircularProgress,
+} from '@mui/material';
+import LockIcon from '@mui/icons-material/Lock';
+import {
+    Form,
+    required,
+    TextInput,
+    useTranslate,
+    useLogin,
+    useNotify,
+} from 'react-admin';
 
 const Login = () => {
-    return (
-        <>
-            <h1>Login</h1>
-        </>
-    )
-}
+    const [loading, setLoading] = useState(false);
+    const translate = useTranslate();
 
-export default Login;
\ No newline at end of file
+    const notify = useNotify();
+    const login = useLogin();
+    const location = useLocation();
+
+    const handleSubmit = (auth) => {
+        setLoading(true);
+        login(
+            auth,
+            location.state ? (location.state).nextPathname : '/'
+        ).catch((error) => {
+            setLoading(false);
+            notify(
+                typeof error === 'string'
+                    ? error
+                    : typeof error === 'undefined' || !error.message
+                      ? 'ra.auth.sign_in_error'
+                      : error.message,
+                {
+                    type: 'error',
+                    messageArgs: {
+                        _:
+                            typeof error === 'string'
+                                ? error
+                                : error && error.message
+                                  ? error.message
+                                  : undefined,
+                    },
+                }
+            );
+        });
+    };
+
+    return (
+        <Form onSubmit={handleSubmit} noValidate>
+            <Box
+                sx={{
+                    display: 'flex',
+                    flexDirection: 'column',
+                    minHeight: '100vh',
+                    alignItems: 'center',
+                    justifyContent: 'flex-start',
+                    background: `url(/login_bg.jpg)`,
+                    backgroundRepeat: 'no-repeat',
+                    backgroundSize: 'cover',
+                }}
+            >
+                {/* https://unsplash.com/ */}
+                <Card sx={{ minWidth: 300, marginTop: '6em', backgroundColor: '#fff' }}>
+                    <Box
+                        sx={{
+                            margin: '1em',
+                            display: 'flex',
+                            justifyContent: 'center',
+                        }}
+                    >
+                        <Avatar sx={{ bgcolor: 'secondary.main' }}>
+                            <LockIcon />
+                        </Avatar>
+                    </Box>
+                    <Box
+                        sx={{
+                            marginTop: '1em',
+                            display: 'flex',
+                            justifyContent: 'center',
+                            color: theme => theme.palette.grey[500],
+                        }}
+                    >
+                        Hint: root / 123456
+                    </Box>
+                    <Box sx={{ padding: '0 1em 1em 1em' }}>
+                        <Box sx={{ marginTop: '1em' }}>
+                            <TextInput
+                                autoFocus
+                                source="username"
+                                label={translate('ra.auth.username')}
+                                disabled={loading}
+                                validate={required()}
+                            />
+                        </Box>
+                        <Box sx={{ marginTop: '1em' }}>
+                            <TextInput
+                                source="password"
+                                label={translate('ra.auth.password')}
+                                type="password"
+                                disabled={loading}
+                                validate={required()}
+                            />
+                        </Box>
+                    </Box>
+                    <CardActions sx={{ padding: '0 1em 1em 1em' }}>
+                        <Button
+                            variant="contained"
+                            type="submit"
+                            color="primary"
+                            disabled={loading}
+                            fullWidth
+                        >
+                            {loading && (
+                                <CircularProgress size={25} thickness={2} />
+                            )}
+                            {translate('ra.auth.sign_in')}
+                        </Button>
+                    </CardActions>
+                </Card>
+            </Box>
+        </Form>
+    );
+};
+
+export default Login;

--
Gitblit v1.9.1