tab 优化
This commit is contained in:
@ -3,8 +3,8 @@ import ProLayout, {
|
||||
BasicLayoutProps as ProLayoutProps,
|
||||
Settings,
|
||||
} from '@ant-design/pro-layout';
|
||||
import React, { useEffect, useMemo, useRef, useState } from 'react';
|
||||
import { Link, connect, Dispatch, history, useLocation, useKeepOutlets, useAppData } from '@umijs/max';
|
||||
import React, { useEffect, useMemo, useRef, useContext } from 'react';
|
||||
import { Link, connect, Dispatch, history, useLocation, useKeepOutlets, KeepAliveContext } from '@umijs/max';
|
||||
import { Result, Button, message } from 'antd';
|
||||
import Authorized from '@/utils/Authorized';
|
||||
import RightContent from '@/components/GlobalHeader/RightContent';
|
||||
@ -13,6 +13,7 @@ import { getMatchMenu } from '@umijs/route-utils';
|
||||
import { getMenu } from './services'
|
||||
import logo from '../assets/logo.svg';
|
||||
import { getSessionRoleData, getSessionUserData } from '@/utils/session';
|
||||
import { getPathKeyMap } from '@/utils/pathKeyMap';
|
||||
|
||||
import {
|
||||
HomeOutlined,
|
||||
@ -35,7 +36,7 @@ import {
|
||||
IdcardOutlined,
|
||||
} from '@ant-design/icons';
|
||||
|
||||
const menuIconMap = {
|
||||
const menuIconMap: { [key: string]: React.ReactNode } = {
|
||||
"HomeOutlined": <HomeOutlined />,
|
||||
"ContactsOutlined": <ContactsOutlined />,
|
||||
"DesktopOutlined": <DesktopOutlined />,
|
||||
@ -105,7 +106,7 @@ const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
|
||||
const mall3_token: any = sessionStorage.getItem('Authorization');//当前登录token
|
||||
const userData: any = getSessionUserData();//当前登录人信息
|
||||
const children = useKeepOutlets();
|
||||
const routeData = useAppData();
|
||||
const { setKeepalive } = useContext(KeepAliveContext);
|
||||
|
||||
useEffect(() => {
|
||||
if (getSessionRoleData()?.roleId) {
|
||||
@ -116,13 +117,17 @@ const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
|
||||
if (res.code == 200) {
|
||||
setMenuData(res.data || [])
|
||||
if (dispatch) {
|
||||
const pathKeyMap = getPathKeyMap(res.data || [])
|
||||
dispatch({
|
||||
type: 'user/saveMenuData',
|
||||
payload: {
|
||||
menuData: res.data || [],
|
||||
routeData: routeData.routes,
|
||||
pathKeyMap,
|
||||
},
|
||||
});
|
||||
const keys = Array.from(pathKeyMap.keys())
|
||||
// @ts-ignore
|
||||
setKeepalive(keys)
|
||||
}
|
||||
setmenuShow(true)
|
||||
} else {
|
||||
@ -194,7 +199,7 @@ const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
|
||||
);
|
||||
}}
|
||||
rightContentRender={() => <RightContent />}
|
||||
postMenuData={(menuData) => {
|
||||
postMenuData={(menuData: any) => {
|
||||
menuDataRef.current = menuData || [];
|
||||
return menuData || [];
|
||||
}}
|
||||
|
Reference in New Issue
Block a user