skyouc
8 小时以前 ee608e161f17082b9fd6e1ed236214a0ac5c2f0e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import React, { useState, useRef, useEffect, useMemo } from "react";
import {
    Box,
    AppBar,
    Card,
    Toolbar,
    CircularProgress,
    Typography,
    Tabs,
    Tab,
    useTheme,
    useMediaQuery,
} from '@mui/material';
import {
    useTranslate,
    useLogin,
    useNotify,
} from 'react-admin';
import { LOGIN_BACKGROUND } from '@/config/setting';
import { getSystemInfo, tenants } from '@/api/auth';
import Login from "./Login";
import Register from "./Register";
 
const Index = () => {
    const translate = useTranslate();
    const theme = useTheme();
    const isSmallScreen = useMediaQuery(theme.breakpoints.down('md'));
 
    const [tab, setTab] = useState(0)
    const [systemInfo, setSystemInfo] = useState({});
    const [tenantList, setTenantList] = useState([]);
 
    const formPosition = isSmallScreen ? 'middle' : 'right'
 
    useEffect(() => {
        getSystemInfo().then(data => {
            setSystemInfo(data);
        })
        tenants().then(data => {
            setTenantList(data);
        })
    }, []);
 
 
    return (
        <Box
            sx={{
                display: 'flex',
                flexDirection: 'column',
                minHeight: '100vh',
                alignItems: formPosition === 'middle' ? 'center' : 'flex-end',
                paddingRight: formPosition === 'middle' ? 0 : '6em',
                justifyContent: formPosition === 'middle' ? 'flex-start' : 'center',
                background: `url(/login_bg.jpg)`, // https://unsplash.com/
                backgroundRepeat: 'no-repeat',
                backgroundSize: 'cover',
            }}
        >
            {/* <video
                autoPlay
                loop
                muted
                style={{
                    position: 'fixed',
                    top: 0,
                    left: 0,
                    width: '100%',
                    height: '100%',
                    // objectFit: 'cover',
                    // objectFit: 'contain',
                    objectFit: 'fill',
                    // objectFit: 'scale-down',
                    zIndex: 0,
                }}
            >
                {LOGIN_BACKGROUND === 'media' && (
                    <source src="/login_bg.mp4" type="video/mp4" />
                )}
            </video> */}
 
            <Card sx={{
                width: 400,
                marginTop: formPosition === 'middle' ? '6em' : 0,
                zIndex: 1
            }}>
                <div>
                    <AppBar position="static" sx={{ backgroundColor: '#3D4BA7' }}>
                        <Toolbar>
                            <Typography variant="h6" color="inherit">{translate("page.login.title")}</Typography>
                        </Toolbar>
                    </AppBar>
                </div>
 
                {systemInfo.mode === 'ONLINE' ? (
                    <>
                        <Tabs
                            value={tab}
                            onChange={(event, value) => {
                                setTab(value);
                            }}
                            indicatorColor="primary"
                            textColor="primary"
                            variant="fullWidth"
                        >
                            <Tab label={translate('page.login.tab.login')} sx={{ fontSize: '.8em' }} />
                            <Tab label={translate('page.login.tab.register')} sx={{ fontSize: '.8em' }} />
                        </Tabs>
 
                        {tab === 0 && <Login systemInfo={systemInfo} tenantList={tenantList} />}
                        {tab === 1 && <Register systemInfo={systemInfo} tenantList={tenantList} />}
                    </>
                ) : (
                    <Login systemInfo={systemInfo} tenantList={tenantList} />
                )}
 
                {/* <Box mb={1} sx={{ textAlign: 'center' }}>
                    <Typography variant="caption" align="center">{translate("page.login.footer")}</Typography>
                </Box> */}
            </Card>
        </Box >
    );
};
 
export default Index;