diff --git a/src/utils/tools.js b/src/utils/tools.js index 381c960..93d7120 100644 --- a/src/utils/tools.js +++ b/src/utils/tools.js @@ -21,6 +21,29 @@ export const fileDownload = (url,params) => { // 模拟点击事件,开始下载 downloadLink.click(); } + +export function getMenuUrl(menuItem){ + if (!menuItem) { + return null; + } + + const url = menuItem.path; + if (url) { + return url; + } + + if (menuItem.children && menuItem.children.length) { + for (const m of menuItem.children) { + const url = getMenuUrl(m); + + if (url) { + return url; + } + } + } + + return null; +} /** * 对象类型 * @param {object} obj diff --git a/src/views/Home/index.js b/src/views/Home/index.js index 19c09e5..6826451 100644 --- a/src/views/Home/index.js +++ b/src/views/Home/index.js @@ -17,7 +17,7 @@ import HFivePlayer from '../../components/video1Plary'; import moment from 'moment'; import { loadMenu, loadRole } from '../../models/auth/_' import { gateMarkersConfig } from './gateMarkersConfig' - +import { getMenuUrl } from '../../utils/tools'; // 闸门标注组件 const GateMarker = ({ gateInfo, position, onClick }) => { const getStatusColor = (status) => { @@ -60,28 +60,7 @@ const MenuTitleCard = ({ key, title }) => { ) } -function getMenuUrl(menuItem){ - if (!menuItem) { - return null; - } - const url = menuItem.path; - if (url) { - return url; - } - - if (menuItem.children && menuItem.children.length) { - for (const m of menuItem.children) { - const url = getMenuUrl(m); - - if (url) { - return url; - } - } - } - - return null; -} export default function Home() { const menu = useSelector((state) => state.auth.menu); const [title, setTitle] = useState([]) diff --git a/src/views/Login/index1.tsx b/src/views/Login/index1.tsx index be287fb..33a479b 100644 --- a/src/views/Login/index1.tsx +++ b/src/views/Login/index1.tsx @@ -13,6 +13,9 @@ import PicAuthCode from './PicAuthCode' import { httppost2 } from "../../utils/request"; import apiurl from '../../service/apiurl'; import { login, info, router } from './http' +import { loadMenu, loadRole } from '../../models/auth/_' +import { getMenuUrl } from '../../utils/tools'; + // 引入md5加密 // import md5 from 'js-md5'; @@ -71,7 +74,7 @@ const LoginPage = () => { message.error((result?.description)?.replace('参数错误','')); } } - const getInfo = (result1: any, value: any) => { + const getInfo = async (result1: any, value: any) => { if (result1?.code === 200) { if(checked){ localStorage.setItem('loginNamePwd',JSON.stringify(value)) @@ -82,8 +85,15 @@ const LoginPage = () => { } localStorage.setItem('userName', result1.user.nickName); localStorage.setItem('userId', result1.user.userId); - - navigate('/home'); + let menuData = await loadMenu(); + if (menuData && menuData.length > 0) { + const url = getMenuUrl(menuData[0]); + if (url) { + navigate(url); + } + } else { + navigate('/home'); + } }else{ message.error('获取用户信息失败'); }