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