blob: 0fa6722781484bc9de44307303913a38e932b1c1 [file] [log] [blame]
// 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>
)
}