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