From 6883e31331af4633d1b7d74ea7deb5f972afa05d Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期五, 23 五月 2025 20:02:19 +0800 Subject: [PATCH] 新增移库功能 --- rsf-admin/src/page/login/Login.jsx | 78 ++++++++++++++++++++------------------ 1 files changed, 41 insertions(+), 37 deletions(-) diff --git a/rsf-admin/src/page/login/Login.jsx b/rsf-admin/src/page/login/Login.jsx index b86c9d4..186f09a 100644 --- a/rsf-admin/src/page/login/Login.jsx +++ b/rsf-admin/src/page/login/Login.jsx @@ -14,8 +14,10 @@ import { useTranslate, useLogin, + localStorageStore, useNotify, } from 'react-admin'; +import { getSystemDicts } from "@/api/auth"; import { useForm, Controller, useWatch, FormProvider, useFormContext } from "react-hook-form"; import ProviderChoices from "./ProviderChoices"; import Visibility from '@mui/icons-material/Visibility'; @@ -26,7 +28,7 @@ const notify = useNotify(); const login = useLogin(); const location = useLocation(); - const { systemInfo, tenantList } = props; + const { systemInfo: { mode }, tenantList } = props; const { control, handleSubmit, watch, setValue, getValues, setError, clearErrors } = useForm(); @@ -36,7 +38,7 @@ const username = watch('username'); const password = watch('password'); const tenantId = watch('tenantId'); - + useEffect(() => { if (tenantList.length > 0 && !tenantId) { const rememberTenantId = localStorage.getItem('remember_tenantId'); @@ -49,6 +51,9 @@ }, [tenantList, setValue]); const onSubmit = (data) => { + getSystemDicts().then(data => { + localStorage.setItem('sys_dicts', JSON.stringify(data)); + }) setLoading(true); login( data, @@ -83,35 +88,37 @@ component="form" onSubmit={handleSubmit(onSubmit)} noValidate > <Stack spacing={2}> - {/* <Controller - name="tenantId" - control={control} - rules={{ required: true }} - defaultValue={tenantList.length > 0 ? tenantList[0].id : ''} - render={({ field: { onChange, value, ref } }) => { - const selectedTenant = tenantList.find(tenant => tenant.id === value) || null; - return ( - <Autocomplete - options={tenantList} - getOptionLabel={(option) => option.name} - value={selectedTenant} - onChange={(_, newValue) => { - const newTenantId = newValue ? newValue.id : ''; - onChange(newTenantId); - localStorage.setItem('remember_tenantId', newTenantId); - }} - renderInput={(params) => ( - <TextField - {...params} - label={translate("page.login.tenant")} - variant="standard" - inputRef={ref} - /> - )} - /> - ); - }} - /> */} + {mode === 'OFFLINE' && ( + <Controller + name="tenantId" + control={control} + rules={{ required: true }} + defaultValue={tenantList.length > 0 ? tenantList[0].id : ''} + render={({ field: { onChange, value, ref } }) => { + const selectedTenant = tenantList.find(tenant => tenant.id === value) || null; + return ( + <Autocomplete + options={tenantList} + getOptionLabel={(option) => option.name} + value={selectedTenant} + onChange={(_, newValue) => { + const newTenantId = newValue ? newValue.id : ''; + onChange(newTenantId); + localStorage.setItem('remember_tenantId', newTenantId); + }} + renderInput={(params) => ( + <TextField + {...params} + label={translate("page.login.tenant")} + variant="standard" + inputRef={ref} + /> + )} + /> + ); + }} + /> + )} <Controller name="username" @@ -170,19 +177,16 @@ <Button type="submit" variant="contained" - disabled={loading || !(true && username && password)} - sx={{ - // backgroundColor: "#3D4BA7" - }} + disabled={loading || !((mode === 'OFFLINE' ? tenantId : true) && username && password)} > {loading && <CircularProgress size={25} thickness={2} />} {translate('page.login.button.login')} </Button> </Stack> - <Box mt={1} mb={1} sx={{ textAlign: 'center' }}>or</Box> + {/* <Box mt={1} mb={1} sx={{ textAlign: 'center' }}>or</Box> */} - <ProviderChoices type="LOG IN" /> + {/* <ProviderChoices type="LOG IN" /> */} </Box > </> ) -- Gitblit v1.9.1