学员各页面缓存

This commit is contained in:
禺狨 2023-04-21 10:27:54 +08:00
parent 492270bfc3
commit 409fa080fc
6 changed files with 50 additions and 16 deletions

View File

@ -10,6 +10,7 @@
}, },
"dependencies": { "dependencies": {
"@reduxjs/toolkit": "^1.9.3", "@reduxjs/toolkit": "^1.9.3",
"ahooks": "^3.7.6",
"antd": "^5.3.2", "antd": "^5.3.2",
"axios": "^1.3.4", "axios": "^1.3.4",
"echarts": "^5.4.2", "echarts": "^5.4.2",

View File

@ -0,0 +1,29 @@
import { useUpdate } from "ahooks";
import { useEffect, useRef } from "react";
import { useLocation, useOutlet } from "react-router-dom";
function KeepAlive() {
const componentList = useRef(new Map());
const outLet = useOutlet();
const { pathname } = useLocation();
const forceUpdate = useUpdate();
useEffect(() => {
if (!componentList.current.has(pathname)) {
componentList.current.set(pathname, outLet);
}
forceUpdate();
}, [pathname]);
return (
<div>
{Array.from(componentList.current).map(([key, component]) => (
<div key={key} style={{ display: pathname === key ? "block" : "none" }}>
{component}
</div>
))}
</div>
);
}
export default KeepAlive;

View File

@ -50,7 +50,7 @@ const items = [
"user", "user",
<i className="iconfont icon-icon-user" />, <i className="iconfont icon-icon-user" />,
[ [
getItem("学员", "/member", null, null, null), getItem("学员", "/member/index", null, null, null),
getItem("部门", "/department", null, null, null), getItem("部门", "/department", null, null, null),
], ],
null null

View File

@ -199,7 +199,7 @@ const DashboardPage = () => {
<div <div
className={styles["link-mode"]} className={styles["link-mode"]}
onClick={() => { onClick={() => {
navigate("/member"); navigate("/member/index");
}} }}
> >
<i <i

View File

@ -194,7 +194,7 @@ const DepartmentPage = () => {
type="link" type="link"
style={{ paddingLeft: 4, paddingRight: 4 }} style={{ paddingLeft: 4, paddingRight: 4 }}
danger danger
onClick={() => navigate("/member")} onClick={() => navigate("/member/index")}
> >
{res.data.users.length} {res.data.users.length}
</Button> </Button>

View File

@ -4,6 +4,7 @@ import { login, system } from "../api";
import InitPage from "../pages/init"; import InitPage from "../pages/init";
import { getToken } from "../utils"; import { getToken } from "../utils";
import KeepAlive from "../compenents/keep-alive";
import LoginPage from "../pages/login"; import LoginPage from "../pages/login";
import HomePage from "../pages/home"; import HomePage from "../pages/home";
@ -94,19 +95,22 @@ const routes: RouteObject[] = [
}, },
{ {
path: "/member", path: "/member",
element: <MemberPage />, element: <KeepAlive />,
}, children: [
{ { path: "/member/index", element: <MemberPage /> },
path: "/member/import", {
element: <MemberImportPage />, path: "/member/import",
}, element: <MemberImportPage />,
{ },
path: "/member/learn", {
element: <MemberLearnPage />, path: "/member/learn",
}, element: <MemberLearnPage />,
{ },
path: "/member/departmentUser", {
element: <MemberDepartmentProgressPage />, path: "/member/departmentUser",
element: <MemberDepartmentProgressPage />,
},
],
}, },
{ {
path: "/system/config/index", path: "/system/config/index",