/* * @Author: your name * @Date: 2021-11-09 13:56:33 * @LastEditTime: 2022-07-08 16:35:31 * @LastEditors: code4eat awesomedema@gmail.com * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @FilePath: /KC-MiddlePlatform/src/layouts/index.tsx */ import { IRouteComponentProps, useModel, history } from 'umi'; import ProLayout from '@ant-design/pro-layout'; import TopBar from '@/components/topBar'; import { useEffect, useState } from 'react'; import { getPlatformMenu, getUserPlatformNav } from '@/service/menu'; import { NavSelecterData } from '@/components/NavSelecter'; const TopHoc = ({ currentSelectedSys, openedSysLists, navData }: { currentSelectedSys: TopBar.Tab | undefined, openedSysLists: TopBar.Tab[], navData: TopBar.PanelData[] }) => { const { initialState, setInitialState } = useModel('@@initialState'); const onTabChangeHandle = async (data: TopBar.Tab[]) => { // await setInitialState((s) => ({ ...s, openedSysLists: [...data] })); // localStorage.setItem('initialState', JSON.stringify(initialState)); //缓存tab状态,防止刷新丢失 }; const onTabClickHandle = async (data: TopBar.Tab) => { await setInitialState((s) => ({ ...s, currentSelectedSys: data })); console.log({data}); if(data.type == 4){ //空白页面 history.push(`${data.path}?isEmpty=true&menuId=${data.menuId}`); }else{ if(data.isSetupMenu){ //体系菜单掩藏子应用的menu localStorage.setItem('isChildShowMenu','false'); }else{ localStorage.setItem('isChildShowMenu','true'); } history.push(data.path); } }; const userPannelTabClickhandle = (tag: string) => { if (tag == 'LOGOUT') { if (initialState) { const { logout } = initialState; logout && logout(); } } if (tag == 'SETTING') { if (initialState) { setInitialState((s) => ({ ...s, currentSelectedSys: { menuId: -1, name: '个人中心', icon: '', url: '', systemId: '-1', type:1, path: '/personalCenter', }, })); } } }; return ( ); }; export default function Layout({ children, location, route, history, match }: IRouteComponentProps) { const { initialState, setInitialState } = useModel('@@initialState'); const [navData, set_navData] = useState([]); const [emptyPageContent, set_emptyPageContent] = useState(''); const [isEmpty,set_isEmpty] = useState(false); const getNavData = async () => { const nav = await getUserPlatformNav(); if (nav) { set_navData(nav); } } useEffect(() => { if (location.pathname != '/login') { getNavData(); } }, []) useEffect(()=>{ set_isEmpty(location.query.isEmpty == 'true'); }) if (location.pathname == '/login') { return
{children}
; } return ( { return ( { set_emptyPageContent(item.description); history.push(`${item.path}${item.contentType == 4 ? `?isEmpty=true&menuId=${item.key}` : ''}` || '/'); }} > {dom} ) }} menu={{ request: async () => { return [ { path: '/index', name: '欢迎进入医管平台' } ] }, }} pageTitleRender={false} headerRender={() => initialState && ( ) } > { isEmpty&& (

{emptyPageContent}

) } {!isEmpty&&(
{children}
)}
); }