| 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
 | | import React, { useState, useRef, useEffect, useMemo } from "react"; |  | import { useNavigate } from 'react-router-dom'; |  | import { |  |     useTranslate, |  |     useAuthProvider, |  | } from 'react-admin'; |  | import { useWatch, useFormContext } from "react-hook-form"; |  | import { Stack, Grid, Box, Typography, Card, CardContent, Tabs, Tab, useTheme } from '@mui/material'; |  | import * as Common from '@/utils/common'; |  | import BaseSettings from "./BaseSettings"; |  | import SecuritySettings from "./SecuritySettings" |  | import { queryUserInfo } from '@/api/auth'; |  |   |  | const Index = () => { |  |     const authProvider = useAuthProvider(); |  |     const navigate = useNavigate(); |  |     const translate = useTranslate(); |  |     const theme = useTheme(); |  |   |  |     const [value, setValue] = useState(0); |  |     const [userInfo, setUserInfo] = useState(null); |  |   |  |     useEffect(() => { |  |         authProvider.checkAuth().catch(() => { |  |             navigate('/login'); |  |         }); |  |     }, [authProvider, navigate]); |  |   |  |     useEffect(() => { |  |         queryUserInfo().then(res => { |  |             setUserInfo(res); |  |         }) |  |     }, []); |  |   |  |     return ( |  |         <> |  |             <Card sx={{ backgroundColor: 'initial' }}> |  |                 <CardContent > |  |                     <Box |  |                         mt={2} |  |                         sx={{ |  |                             flexGrow: 1, |  |                             bgcolor: 'background.paper', |  |                             display: 'flex', |  |                             border: `1px solid #${theme.palette.mode === 'light' ? 'ddd' : '333'}`, |  |                             borderRadius: 2, |  |                             pt: 1, |  |                             pb: 1, |  |                         }} |  |                     > |  |                         <Tabs |  |                             orientation="vertical" |  |                             variant="scrollable" |  |                             value={value} |  |                             onChange={(event, newValue) => { |  |                                 setValue(newValue); |  |                             }} |  |                             indicatorColor="primary" |  |                             textColor="inherit" |  |                             TabIndicatorProps={{ |  |                                 style: { |  |                                     left: 0, |  |                                     right: 'auto', |  |                                     width: '5px', |  |                                     borderRadius: '2px', |  |                                     opacity: .8, |  |                                 } |  |                             }} |  |                             sx={{ |  |                                 borderRight: 1, |  |                                 borderColor: 'divider', |  |                                 width: 150, |  |                             }} |  |                         > |  |                             <Tab |  |                                 label={translate('settings.base')} |  |                                 id='vertical-tab-0' |  |                                 aria-controls='vertical-tabpanel-0' |  |                             /> |  |                             <Tab label={translate('settings.security')} |  |                                 id='vertical-tab-1' |  |                                 aria-controls='vertical-tabpanel-1' |  |                             /> |  |                         </Tabs> |  |   |  |                         {value === 0 && ( |  |                             <BaseSettings |  |                                 value={value} |  |                                 userInfo={userInfo} |  |                             /> |  |                         )} |  |                         {value === 1 && ( |  |                             <SecuritySettings |  |                                 value={value} |  |                                 userInfo={userInfo} |  |                             /> |  |                         )} |  |   |  |                     </Box> |  |                 </CardContent> |  |             </Card> |  |         </> |  |     ) |  | } |  |   |  | export default Index; | 
 |