From 07ce1e9ee6f723882c9b49e23215745ee719633a Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 10 二月 2025 08:30:11 +0800
Subject: [PATCH] #

---
 rsf-admin/src/page/login/index.jsx            |    4 +-
 rsf-admin/src/i18n/zh.js                      |    8 +++
 rsf-admin/src/page/login/Login.jsx            |    4 +-
 rsf-admin/src/page/role/AssignPermissions.jsx |   67 +++++++++++++++++++++++----------
 rsf-admin/src/i18n/en.js                      |   10 ++++-
 5 files changed, 66 insertions(+), 27 deletions(-)

diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index d35a323..0390e96 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -225,10 +225,16 @@
             title: 'Welcome',
             footer: 'Footer Goes Here',
             tenant: 'Company',
+            username: 'Username',
+            password: 'Password',
             confirmPwd: 'Confirm Password',
+            tab: {
+                login: 'SIGN IN',
+                register: 'SIGN UP',
+            },
             button: {
-                login: 'LOG IN',
-                register: 'REGISTER',
+                login: 'SIGN IN',
+                register: 'SIGN UP',
             },
         },
         settings: {
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index ffd3a88..60efdde 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -222,10 +222,16 @@
     page: {
         welcome: '  娆㈣繋浣跨敤RSF绠$悊绯荤粺',
         login: {
-            title: 'Welcome',
+            title: '娆㈣繋浣跨敤',
             footer: 'Footer Goes Here',
             tenant: '鍏徃',
+            username: '璐﹀彿',
+            password: '瀵嗙爜',
             confirmPwd: '纭瀵嗙爜',
+            tab: {
+                login: '鐧诲綍',
+                register: '娉ㄥ唽',
+            },
             button: {
                 login: '鐧诲綍',
                 register: '娉ㄥ唽',
diff --git a/rsf-admin/src/page/login/Login.jsx b/rsf-admin/src/page/login/Login.jsx
index 53c0ca4..0eedaad 100644
--- a/rsf-admin/src/page/login/Login.jsx
+++ b/rsf-admin/src/page/login/Login.jsx
@@ -123,7 +123,7 @@
                         render={({ field }) => (
                             <TextField
                                 {...field}
-                                label={translate('ra.auth.username')}
+                                label={translate("page.login.username")}
                                 variant="standard"
                                 disabled={loading}
                                 autoFocus
@@ -140,7 +140,7 @@
                         render={({ field }) => (
                             <TextField
                                 {...field}
-                                label={translate('ra.auth.password')}
+                                label={translate("page.login.password")}
                                 type={showPassword ? 'text' : 'password'}
                                 variant="standard"
                                 disabled={loading}
diff --git a/rsf-admin/src/page/login/index.jsx b/rsf-admin/src/page/login/index.jsx
index 765ea27..d491959 100644
--- a/rsf-admin/src/page/login/index.jsx
+++ b/rsf-admin/src/page/login/index.jsx
@@ -96,8 +96,8 @@
                     textColor="primary"
                     variant="fullWidth"
                 >
-                    <Tab label="Login" sx={{ fontSize: '.8em' }} />
-                    <Tab label="Register" sx={{ fontSize: '.8em' }} />
+                    <Tab label={translate('page.login.tab.login')} sx={{ fontSize: '.8em' }} />
+                    <Tab label={translate('page.login.tab.register')} sx={{ fontSize: '.8em' }} />
                 </Tabs>
 
                 {tab === 0 && <Login tenantList={tenantList} />}
diff --git a/rsf-admin/src/page/role/AssignPermissions.jsx b/rsf-admin/src/page/role/AssignPermissions.jsx
index df0eae5..29851d4 100644
--- a/rsf-admin/src/page/role/AssignPermissions.jsx
+++ b/rsf-admin/src/page/role/AssignPermissions.jsx
@@ -3,7 +3,7 @@
     useTranslate,
     useNotify,
 } from 'react-admin';
-import { Box, Button, Card, Stack, CardContent } from '@mui/material';
+import { Box, Button, Card, Stack, CardContent, Skeleton } from '@mui/material';
 import { SimpleTreeView, TreeItem, RichTreeView, useTreeViewApiRef } from '@mui/x-tree-view';
 import SaveIcon from '@mui/icons-material/Save';
 import request from '@/utils/request'
@@ -15,10 +15,11 @@
     const translate = useTranslate();
     const notify = useNotify();
 
-    const [treeData, setTreeData] = React.useState([]);
-    const [selectedItems, setSelectedItems] = React.useState([]);
-    const [expandedItems, setExpandedItems] = React.useState([]);
-    const toggledItemRef = React.useRef({});
+    const [loading, setLoading] = useState(false);
+    const [treeData, setTreeData] = useState([]);
+    const [selectedItems, setSelectedItems] = useState([]);
+    const [expandedItems, setExpandedItems] = useState([]);
+    const toggledItemRef = useRef({});
     const apiRef = useTreeViewApiRef();
 
     useEffect(() => {
@@ -46,8 +47,10 @@
                 notify(res.data.msg, { type: 'error' });
             }
         }
+        setLoading(true);
         setTimeout(() => {
             http();
+            setLoading(false);
         }, 200);
     }, [role, originMenuIds])
 
@@ -197,22 +200,27 @@
                             boxShadow: '0 1px 2px rgba(0, 0, 0, 0.2)',
                             backgroundColor: 'background.paper',
                         }}>
-                            <RichTreeView
-                                multiSelect
-                                checkboxSelection
-                                apiRef={apiRef}
-                                items={treeData}
-                                selectedItems={selectedItems}
-                                onSelectedItemsChange={handleSelectedItemsChange}
-                                onItemSelectionToggle={(event, itemId, isSelected) => {
-                                    toggledItemRef.current[itemId] = isSelected;
-                                }}
+                            {loading ? (
+                                <SkeletonBox />
+                            ) : (
+                                <RichTreeView
+                                    multiSelect
+                                    checkboxSelection
+                                    apiRef={apiRef}
+                                    items={treeData}
+                                    selectedItems={selectedItems}
+                                    onSelectedItemsChange={handleSelectedItemsChange}
+                                    onItemSelectionToggle={(event, itemId, isSelected) => {
+                                        toggledItemRef.current[itemId] = isSelected;
+                                    }}
 
-                                expandedItems={expandedItems}
-                                onExpandedItemsChange={(event, itemIds) => {
-                                    setExpandedItems(itemIds);
-                                }}
-                            />
+                                    expandedItems={expandedItems}
+                                    onExpandedItemsChange={(event, itemIds) => {
+                                        setExpandedItems(itemIds);
+                                    }}
+                                />
+                            )}
+
                         </Box>
                     </Box>
                     <Box sx={{
@@ -326,4 +334,23 @@
     return childrenIds;
 };
 
+const SkeletonBox = () => {
+    return (
+        <Stack spacing={1}>
+            <Skeleton variant="rounded" width={200} height={20} />
+            <Skeleton variant="rounded" width={200} height={20} style={{ marginLeft: '50px' }} />
+            <Skeleton variant="rounded" width={200} height={20} style={{ marginLeft: '50px' }} />
+            <Skeleton variant="rounded" width={200} height={20} style={{ marginLeft: '50px' }} />
+            <Skeleton variant="rounded" width={200} height={20} />
+            <Skeleton variant="rounded" width={200} height={20} style={{ marginLeft: '50px' }} />
+            <Skeleton variant="rounded" width={200} height={20} style={{ marginLeft: '50px' }} />
+            <Skeleton variant="rounded" width={200} height={20} style={{ marginLeft: '50px' }} />
+            <Skeleton variant="rounded" width={200} height={20} />
+            <Skeleton variant="rounded" width={200} height={20} style={{ marginLeft: '50px' }} />
+            <Skeleton variant="rounded" width={200} height={20} style={{ marginLeft: '50px' }} />
+            <Skeleton variant="rounded" width={200} height={20} style={{ marginLeft: '50px' }} />
+        </Stack>
+    )
+}
+
 export default AssignPermissions;
\ No newline at end of file

--
Gitblit v1.9.1