import { Outlet, history, useLocation } from 'umi';
import styles from './index.less';
import { useEffect, useState } from 'react';
import { MenuType, tabsType } from '@/utils/menu';
import { Select, message } from 'antd';
import LeftMenuOne from '@/layouts/LeftMenuOne';
import LeftMenuTwo from '@/layouts/LeftMenuTwo';
import BottomConfigInfo from '@/layouts/BottomConfigInfo';
const options2 = [
{ value: 1, label: 'GLQ管理' },
{ value: 2, label: 'MY管理' },
{ value: 3, label: 'SB管理' },
{ value: 4, label: 'SF管理' },
{ value: 5, label: 'SBJK二维版', disabled: true },
{ value: 6, label: '设备注册', disabled: true }
]
const leftMenuType: any = {
// GLQ管理
'GLQ远程维护': ,
'网络MMJ管理': ,
'网络GLQ配置': ,
// MY管理
'密钥体管理': ,
'密钥管理': ,
'邮箱管理': ,
// SB管理
'设备管理': ,
'日志管理': ,
'审计管理': ,
'境外任务管理': ,
// SF管理
'算法资源管理': ,
'算法配置管理': ,
'算法托收管理': ,
'算法邮箱管理': ,
// SBJK二维版
'设备监控二维版':
,
// 设备注册
'注册管理': ,
'位置管理':
}
export default function Layout() {
const [selectVal, setSelectVal] = useState(1);
const [tabList, setTabList] = useState([]);
const [active, setActive] = useState(1);
const [activeName, setActiveName] = useState('GLQ远程维护');
// 获取布局信息
let layoutInfo: any = localStorage.getItem('layoutInfo');
layoutInfo = JSON.parse(layoutInfo);
useEffect(() => {
// 校验浏览器是否有储存的布局信息
if (layoutInfo) {
setActive(layoutInfo.active);
setActiveName(layoutInfo.activeName);
setSelectVal(layoutInfo.selectVal);
setTabList([...tabsType[layoutInfo.selectVal]]);
} else {
setTabList([...tabsType[selectVal]]);
}
}, [])
// 页面销毁前记录下当前布局信息
window.addEventListener('beforeunload', function (event) {
let layoutInfo: any = {
selectVal: selectVal,
active: active,
activeName: activeName,
}
localStorage.setItem('layoutInfo', JSON.stringify(layoutInfo));
});
useEffect(() => {
// 条件判断: 当选择框的值发生改变时,在(tabList长度大于0 并且 没有发现记录布局的数据)时 ,默认进入第一个模块的页面
if (tabList.length > 0 && !layoutInfo) {
setActiveName(tabList[0].name)
let info = MenuType[tabList[0].name];
if (info[0].data) {
history.push(`${info[0].data[0].url}`)
} else {
history.push(`${info[0].url}`)
}
}
}, [selectVal])
return (
{/* 顶部导航 */}
{
tabList.map((item: any, index: number) => {
return
{
let info = MenuType[item.name];
setActive(item.id)
setActiveName(item.name)
if (info.length == 0 || info[0].data && info[0].data.length == 0) {
history.push('/construction');
// 暂时屏蔽
// setActive(tabList[0].id)
// setActiveName(tabList[0].name)
// message.info(item.name + '模块正在建设中!')
return
}
// 改变activeName时跳转菜单栏的第一个路由
if (info[0].data) {
history.push(`${info[0].data[0].url}`)
} else {
history.push(`${info[0].url}`)
}
}}>
{item.name}
})
}
{/* 主体内容 */}
{/* 右侧菜单栏 */}
{leftMenuType[activeName]}
{/* 左侧内容 */}
{/* GQL管理整个模块页面底部的配置信息 */}
{selectVal == 1 &&
}
{/* 底部信息 */}
软件当前版本:0.0.0
当前用户:admin
当前操作:设备注册
);
}