#
vincentlu
2025-02-07 a19b70e1af79238c298ef8af6d0265bf6a22c92d
#
4个文件已修改
88 ■■■■■ 已修改文件
rsf-admin/src/i18n/en.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/i18n/zh.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/login/Login.jsx 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/login/Register.jsx 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/i18n/en.js
@@ -222,6 +222,7 @@
    page: {
        login: {
            tenant: 'Company',
            confirmPwd: 'Confirm Password',
            button: {
                login: 'LOG IN',
                register: 'REGISTER',
rsf-admin/src/i18n/zh.js
@@ -222,6 +222,7 @@
    page: {
        login: {
            tenant: '公司',
            confirmPwd: '确认密码',
            button: {
                login: 'LOG IN',
                register: 'REGISTER',
rsf-admin/src/page/login/Login.jsx
@@ -7,7 +7,9 @@
    Button,
    TextField,
    Stack,
    Autocomplete
    Autocomplete,
    InputAdornment,
    IconButton,
} from '@mui/material';
import {
    useTranslate,
@@ -16,6 +18,8 @@
} from 'react-admin';
import { useForm, Controller } from 'react-hook-form';
import ProviderChoices from "./ProviderChoices";
import Visibility from '@mui/icons-material/Visibility';
import VisibilityOff from '@mui/icons-material/VisibilityOff';
const Login = (props) => {
    const translate = useTranslate();
@@ -27,6 +31,7 @@
    const { control, watch, handleSubmit, setValue } = useForm();
    const [loading, setLoading] = useState(false);
    const [showPassword, setShowPassword] = useState(false);
    const username = watch('username');
    const password = watch('password');
@@ -122,6 +127,7 @@
                                variant="standard"
                                disabled={loading}
                                autoFocus
                                autoComplete="off"
                            />
                        )}
                    />
@@ -135,10 +141,24 @@
                            <TextField
                                {...field}
                                label={translate('ra.auth.password')}
                                type="password"
                                type={showPassword ? 'text' : 'password'}
                                variant="standard"
                                disabled={loading}
                                autoComplete="off"
                                InputProps={{
                                    endAdornment: (
                                        <InputAdornment position="end">
                                            <IconButton
                                                aria-label="toggle password visibility"
                                                onClick={() => setShowPassword((show) => !show)}
                                                onMouseDown={(event) => { event.preventDefault() }}
                                                edge="end"
                                            >
                                                {showPassword ? <VisibilityOff /> : <Visibility />}
                                            </IconButton>
                                        </InputAdornment>
                                    ),
                                }}
                            />
                        )}
                    />
rsf-admin/src/page/login/Register.jsx
@@ -7,7 +7,9 @@
    Button,
    TextField,
    Stack,
    Autocomplete
    Autocomplete,
    InputAdornment,
    IconButton,
} from '@mui/material';
import {
    useTranslate,
@@ -16,6 +18,8 @@
} from 'react-admin';
import { useForm, Controller } from 'react-hook-form';
import ProviderChoices from "./ProviderChoices";
import Visibility from '@mui/icons-material/Visibility';
import VisibilityOff from '@mui/icons-material/VisibilityOff';
const Register = (props) => {
    const translate = useTranslate();
@@ -27,9 +31,11 @@
    const { control, watch, handleSubmit, setValue } = useForm();
    const [loading, setLoading] = useState(false);
    const [showPassword, setShowPassword] = useState(true);
    const username = watch('username');
    const password = watch('password');
    const confirmPassword = watch('confirmPassword');
    const tenantId = watch('tenantId');
    useEffect(() => {
@@ -39,6 +45,8 @@
    }, [tenantList, setValue]);
    const onSubmit = (data) => {
        notify("Registration is not open yet");
        return;
        setLoading(true);
        // js native confirm && root
        login(
@@ -116,6 +124,7 @@
                                variant="standard"
                                disabled={loading}
                                autoFocus
                                autoComplete="off"
                            />
                        )}
                    />
@@ -129,10 +138,55 @@
                            <TextField
                                {...field}
                                label={translate('ra.auth.password')}
                                type="password"
                                type={showPassword ? 'text' : 'password'}
                                variant="standard"
                                disabled={loading}
                                autoComplete="off"
                                InputProps={{
                                    endAdornment: (
                                        <InputAdornment position="end">
                                            <IconButton
                                                aria-label="toggle password visibility"
                                                onClick={() => setShowPassword((show) => !show)}
                                                onMouseDown={(event) => { event.preventDefault() }}
                                                edge="end"
                                            >
                                                {showPassword ? <VisibilityOff /> : <Visibility />}
                                            </IconButton>
                                        </InputAdornment>
                                    ),
                                }}
                            />
                        )}
                    />
                    <Controller
                        name="confirmPassword"
                        control={control}
                        defaultValue=""
                        rules={{ required: true }}
                        render={({ field }) => (
                            <TextField
                                {...field}
                                label={translate('page.login.confirmPwd')}
                                type={showPassword ? 'text' : 'password'}
                                variant="standard"
                                disabled={loading}
                                autoComplete="off"
                                InputProps={{
                                    endAdornment: (
                                        <InputAdornment position="end">
                                            <IconButton
                                                aria-label="toggle password visibility"
                                                onClick={() => setShowPassword((show) => !show)}
                                                onMouseDown={(event) => { event.preventDefault() }}
                                                edge="end"
                                            >
                                                {showPassword ? <VisibilityOff /> : <Visibility />}
                                            </IconButton>
                                        </InputAdornment>
                                    ),
                                }}
                            />
                        )}
                    />
@@ -142,7 +196,7 @@
                    <Button
                        type="submit"
                        variant="contained"
                        disabled={loading || !(tenantId && username && password)}
                        disabled={loading || !(tenantId && username && password && confirmPassword)}
                        sx={{
                            backgroundColor: "#3D4BA7"
                        }}