| // 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 { userId } = useParams() // ← 从路由拿到 |
| const [loading, setLoading] = useState(true) |
| const [hasPermission, setHasPermission] = useState(true) |
| |
| useEffect(() => { |
| async function check() { |
| try { |
| await fetchUserList(userId) // ← 传入 userId |
| } catch (e) { |
| if (e.message === 'Unauthorized') { |
| setHasPermission(false) |
| } else { |
| console.error(e) |
| } |
| } finally { |
| setLoading(false) |
| } |
| } |
| check() |
| }, [userId]) |
| |
| 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"> |
| <aside className="super-admin-sidebar"> |
| <h2>超级管理员</h2> |
| <nav> |
| <ul> |
| <li> |
| <NavLink |
| to="users" |
| end |
| className={({ isActive }) => |
| isActive ? 'active' : '' |
| } |
| > |
| 用户管理 |
| </NavLink> |
| </li> |
| <li> |
| <NavLink |
| to="dashboard" |
| className={({ isActive }) => |
| isActive ? 'active' : '' |
| } |
| > |
| 平台运行监控 |
| </NavLink> |
| </li> |
| </ul> |
| </nav> |
| </aside> |
| |
| <main className="super-admin-content"> |
| <Outlet /> |
| </main> |
| </div> |
| ) |
| } |