From 7f70cb15d035f0c233b9e62b9e43aa985317c908 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 04 十一月 2024 10:22:45 +0800 Subject: [PATCH] # --- zy-acs-flow/src/page/settings/Settings.jsx | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 107 insertions(+), 5 deletions(-) diff --git a/zy-acs-flow/src/page/settings/Settings.jsx b/zy-acs-flow/src/page/settings/Settings.jsx index ae356ee..7833c47 100644 --- a/zy-acs-flow/src/page/settings/Settings.jsx +++ b/zy-acs-flow/src/page/settings/Settings.jsx @@ -1,4 +1,5 @@ import React, { useState, useRef, useEffect, useMemo } from "react"; +import { useNavigate } from 'react-router-dom'; import { Edit, SimpleForm, @@ -14,24 +15,125 @@ NumberField, required, useRecordContext, - DeleteButton, + useTheme, + useAuthProvider, } from 'react-admin'; import { useWatch, useFormContext } from "react-hook-form"; -import { Stack, Grid, Box, Typography, Card, CardContent } from '@mui/material'; +import { Stack, Grid, Box, Typography, Card, CardContent, Tabs, Tab } from '@mui/material'; import * as Common from '@/utils/common'; import { } from '@/config/setting'; const Settings = () => { + const authProvider = useAuthProvider(); + const navigate = useNavigate(); + const translate = useTranslate(); + const theme = useTheme(); + const [value, setValue] = React.useState(0); + + useEffect(() => { + authProvider.checkAuth().catch(() => { + navigate('/login'); + }); + }, [authProvider, navigate]); + + useEffect(() => { + }, [value]); return ( <> - <Card> - <CardContent> - + <Card sx={{ backgroundColor: 'initial' }}> + <CardContent > + <Box + mt={2} + sx={{ + flexGrow: 1, + bgcolor: 'background.paper', + display: 'flex', + height: 224, + border: `1px solid #${theme[0] === 'light' ? 'ddd' : '333'}`, + borderRadius: 2 + }} + > + <Tabs + orientation="vertical" + variant="scrollable" + value={value} + onChange={(event, newValue) => { + setValue(newValue); + }} + indicatorColor="secondary" + textColor="inherit" + 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> + <BaseSettings + value={value} + /> + <SecuritySettings + value={value} + /> + </Box> </CardContent> </Card> </> ) } +const BaseSettings = (props) => { + const { children, value, ...other } = props; + + return ( + <Box + hidden={value !== 0} + sx={{ p: 3 }} + {...other} + > + <Grid container spacing={6}> + <Grid item xs={12}> + {/* https://github.com/themeselection/materio-mui-nextjs-admin-template-free/blob/main/javascript-version/src/views/account-settings/account/AccountDetails.jsx */} + <Card> + <CardContent className='mbe-5'> + <Typography> + Base Settings + </Typography> + </CardContent> + </Card> + + </Grid> + </Grid> + </Box> + + ) +} + +const SecuritySettings = (props) => { + const { children, value, ...other } = props; + + return ( + <Box + hidden={value !== 1} + sx={{ p: 3 }} + {...other} + > + <Typography> + Security Settings + </Typography> + </Box> + + ) +} + export default Settings; \ No newline at end of file -- Gitblit v1.9.1