更新路由守卫
Change-Id: Iddd1d006202a03e8a97e3a90d64d9a43c5d2cb78
diff --git a/Merge/front/src/components/SuperAdmin.js b/Merge/front/src/components/SuperAdmin.js
index f24e5d4..0fa6722 100644
--- a/Merge/front/src/components/SuperAdmin.js
+++ b/Merge/front/src/components/SuperAdmin.js
@@ -1,33 +1,48 @@
-import React, { useState, useEffect } from 'react';
-import { NavLink, Outlet } from 'react-router-dom';
-import { Spin } from 'antd';
-import { fetchUserList } from '../api/posts_trm';
-import '../style/SuperAdmin.css';
+// src/components/SuperAdmin.jsx
+import React, { useState, useEffect } from 'react'
+import { NavLink, Outlet, useParams } from 'react-router-dom'
+import { Spin } from 'antd'
+import { fetchUserList } from '../api/posts_trm'
+import '../style/SuperAdmin.css'
export default function SuperAdmin() {
- const SUPERADMIN_USER_ID = 3;
- const [loading, setLoading] = useState(true);
- const [hasPermission, setHasPermission] = useState(true);
+ const { userId } = useParams() // ← 从路由拿到
+ const [loading, setLoading] = useState(true)
+ const [hasPermission, setHasPermission] = useState(true)
useEffect(() => {
async function check() {
try {
- await fetchUserList(SUPERADMIN_USER_ID);
+ await fetchUserList(userId) // ← 传入 userId
} catch (e) {
if (e.message === 'Unauthorized') {
- setHasPermission(false);
+ setHasPermission(false)
} else {
- console.error(e);
+ console.error(e)
}
} finally {
- setLoading(false);
+ setLoading(false)
}
}
- check();
- }, []);
+ check()
+ }, [userId])
- if (loading) return <Spin spinning tip="加载中…" style={{ width: '100%', marginTop: 100 }} />;
- if (!hasPermission) return <div style={{ textAlign: 'center', marginTop: 100 }}>权限不足</div>;
+ if (loading) {
+ return (
+ <Spin
+ spinning
+ tip="加载中…"
+ style={{ width: '100%', marginTop: 100 }}
+ />
+ )
+ }
+ if (!hasPermission) {
+ return (
+ <div style={{ textAlign: 'center', marginTop: 100 }}>
+ 权限不足
+ </div>
+ )
+ }
return (
<div className="super-admin-container">
@@ -36,18 +51,22 @@
<nav>
<ul>
<li>
- <NavLink
- to="users"
- end
- className={({ isActive }) => isActive ? 'active' : ''}
+ <NavLink
+ to="users"
+ end
+ className={({ isActive }) =>
+ isActive ? 'active' : ''
+ }
>
用户管理
</NavLink>
</li>
<li>
- <NavLink
- to="dashboard"
- className={({ isActive }) => isActive ? 'active' : ''}
+ <NavLink
+ to="dashboard"
+ className={({ isActive }) =>
+ isActive ? 'active' : ''
+ }
>
平台运行监控
</NavLink>
@@ -60,5 +79,5 @@
<Outlet />
</main>
</div>
- );
-}
\ No newline at end of file
+ )
+}