From 4220dbfd495b2ec179c5d7f22531f3bbd80b2525 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期三, 04 二月 2026 15:08:28 +0800
Subject: [PATCH] #页面持久化

---
 rsf-admin/src/layout/index.jsx |   25 ++++++++++++-------------
 1 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/rsf-admin/src/layout/index.jsx b/rsf-admin/src/layout/index.jsx
index 95e8f93..faec8e1 100644
--- a/rsf-admin/src/layout/index.jsx
+++ b/rsf-admin/src/layout/index.jsx
@@ -1,7 +1,9 @@
 import { Layout as RALayout, CheckForApplicationUpdate, useSidebarState } from "react-admin";
+import { AliveScope } from 'react-activation';
 import AppBar from './AppBar';
 import { MyMenu } from './MyMenu';
 import TabsBar from './TabsBar';
+import KeepAliveWrapper from './KeepAliveWrapper';
 import { Box } from '@mui/material';
 
 const LayoutContent = ({ children }) => {
@@ -20,35 +22,32 @@
           width: `calc(100% - ${sidebarWidth}px)`,
           height: 'calc(100% - 86px)', // 鍑忓幓TabsBar鐨勯珮搴� (50px AppBar + 36px TabsBar)
           top: '86px',
-          transition: (theme) =>
-            theme.transitions.create(['left', 'width'], {
-              easing: theme.transitions.easing.sharp,
-              duration: theme.transitions.duration.leavingScreen,
-            }),
+          // 浼樺寲杩囨浮鍔ㄧ敾锛氱缉鐭椂闂达紝浣跨敤鏇村钩婊戠殑 easing
+          transition: 'left 150ms ease-out, width 150ms ease-out',
+          willChange: 'left, width', // GPU 鍔犻��
         }
       }}
     >
       <Box sx={{
         position: 'fixed',
         top: 48,
-        // left: 0,
         left: sidebarWidth + 5,
         right: 0,
         zIndex: 1100,
-        transition: (theme) =>
-          theme.transitions.create('left', {
-            easing: theme.transitions.easing.sharp,
-            duration: theme.transitions.duration.leavingScreen,
-          }),
+        // 浼樺寲杩囨浮鍔ㄧ敾
+        transition: 'left 150ms ease-out',
+        willChange: 'left', // GPU 鍔犻��
       }}>
         <TabsBar />
       </Box>
-      {children}
+      <KeepAliveWrapper>{children}</KeepAliveWrapper>
       <CheckForApplicationUpdate />
     </RALayout>
   );
 };
 
 export const Layout = ({ children }) => (
-  <LayoutContent>{children}</LayoutContent>
+  <AliveScope max={10}>
+    <LayoutContent>{children}</LayoutContent>
+  </AliveScope>
 );

--
Gitblit v1.9.1