From a6e81a114e7fd78c86cac6c03c17b7632769c227 Mon Sep 17 00:00:00 2001 From: lishenfeng Date: Wed, 7 Jan 2026 13:51:31 +0800 Subject: [PATCH] =?UTF-8?q?fix():=20=E4=BF=AE=E5=A4=8D=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E5=9B=A0=E6=9D=83=E9=99=90=E8=AE=BE=E7=BD=AE=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E5=B1=95=E7=A4=BA=E7=AD=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/tools.js | 23 +++++++++++++++++++++++ src/views/Home/index.js | 23 +---------------------- src/views/Login/index1.tsx | 16 +++++++++++++--- 3 files changed, 37 insertions(+), 25 deletions(-) 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('获取用户信息失败'); }