diff --git a/apps/admin/src/layout/index.tsx b/apps/admin/src/layout/index.tsx index 9fdf3c1..c649c33 100644 --- a/apps/admin/src/layout/index.tsx +++ b/apps/admin/src/layout/index.tsx @@ -1,6 +1,6 @@ import { Layout } from 'antd'; import ErrorBoundary from 'antd/es/alert/ErrorBoundary'; -import { Outlet } from 'react-router-dom'; +import { Outlet, useLocation } from 'react-router-dom'; import '@/gbeata'; import { AppLogo } from '@/components/AppLogo'; @@ -14,11 +14,13 @@ import useStyles from './index.style'; import LayoutMenu from './menu'; export const BasicLayout = (props: any) => { + const { state } = useLocation(); + const { key = 'key' } = state || {}; useTitle(); const { Sider, Content } = Layout; const { styles } = useStyles(); - const getMenuFold = useAppSelector((state) => state.app.appConfig?.menuSetting?.menuFold); + const getMenuFold = useAppSelector((st) => st.app.appConfig?.menuSetting?.menuFold); return ( @@ -30,7 +32,7 @@ export const BasicLayout = (props: any) => { - + diff --git a/apps/admin/src/layout/tags/index.tsx b/apps/admin/src/layout/tags/index.tsx index 151b987..12f9b48 100644 --- a/apps/admin/src/layout/tags/index.tsx +++ b/apps/admin/src/layout/tags/index.tsx @@ -8,7 +8,7 @@ import { searchRoute } from '@/utils'; import { basicRoutes } from '@/router'; import { useAppDispatch, useAppSelector } from '@/stores'; -import { addVisitedTags, closeAllTags, closeTagByKey, closeTagsByType } from '@/stores/modules/tags'; +import { addVisitedTags, closeAllTags, closeTagByKey, closeTagsByType, updateVisitedTags } from '@/stores/modules/tags'; import { TagItem } from './components'; import useStyles from './index.module.style'; @@ -166,7 +166,17 @@ const LayoutTags: FC = () => { navigate(path); }; - const handleReload = () => {}; + function getKey() { + return new Date().getTime().toString(); + } + const handleReload = () => { + // 刷新当前路由,页面不刷新 + const index = visitedTags.findIndex((tab) => tab.fullPath === activeTag); + if (index >= 0) { + // 这个是react的特性,key变了,组件会卸载重新渲染 + navigate(activeTag, { replace: true, state: { key: getKey() } }); + } + }; return (
@@ -182,6 +192,7 @@ const LayoutTags: FC = () => { {visitedTags.map((item: RouteObject) => (