稳定运行版本v1
Change-Id: Id2cb7e1c6d3fbe156911e42fa342cab74f817193
diff --git a/Merge/front/src/components/UserManagement.js b/Merge/front/src/components/UserManagement.js
index bed6b8f..8eb48e3 100644
--- a/Merge/front/src/components/UserManagement.js
+++ b/Merge/front/src/components/UserManagement.js
@@ -19,16 +19,41 @@
const { userId: superAdminId } = useParams()
const [users, setUsers] = useState([])
+ const [unauthorized, setUnauthorized] = useState(false)
useEffect(() => {
async function load() {
try {
// 调用接口获取用户列表
const data = await fetchUserList(superAdminId)
- setUsers(data)
+
+ // 检查是否是权限错误
+ if (data && data.status === 'error' && data.message === 'Unauthorized') {
+ setUnauthorized(true)
+ setUsers([])
+ return
+ }
+
+ // 确保数据是数组格式
+ let userList = []
+ if (Array.isArray(data)) {
+ userList = data
+ } else if (Array.isArray(data.data)) {
+ userList = data.data
+ } else if (Array.isArray(data.users)) {
+ userList = data.users
+ }
+
+ setUsers(userList)
+ setUnauthorized(false)
} catch (e) {
console.error(e)
- message.error('获取用户列表失败:' + e.message)
+ if (e.message === 'Unauthorized') {
+ setUnauthorized(true)
+ setUsers([])
+ } else {
+ message.error('获取用户列表失败:' + e.message)
+ }
}
}
@@ -41,13 +66,22 @@
// 处理角色变更
const handleRoleChange = async (userId, newRole) => {
try {
+ let result
if (newRole === '用户') {
- await giveUser(superAdminId, userId)
+ result = await giveUser(userId)
} else if (newRole === '管理员') {
- await giveAdmin(superAdminId, userId)
+ result = await giveAdmin(userId)
} else if (newRole === '超级管理员') {
- await giveSuperAdmin(superAdminId, userId)
+ result = await giveSuperAdmin(userId)
}
+
+ // 检查返回结果是否有权限错误
+ if (result && result.status === 'error' && result.message === 'Unauthorized') {
+ setUnauthorized(true)
+ message.error('权限不足,无法执行此操作')
+ return
+ }
+
// 本地更新状态
setUsers(us =>
us.map(u => (u.id === userId ? { ...u, role: newRole } : u))
@@ -55,7 +89,12 @@
message.success('修改成功')
} catch (e) {
console.error(e)
- message.error('修改失败:' + e.message)
+ if (e.message === 'Unauthorized') {
+ setUnauthorized(true)
+ message.error('权限不足,无法执行此操作')
+ } else {
+ message.error('修改失败:' + e.message)
+ }
}
}
@@ -91,12 +130,23 @@
return (
<div className="admin-container">
- <Table
- dataSource={users}
- columns={columns}
- rowKey="id"
- pagination={false}
- />
+ {unauthorized ? (
+ <div style={{
+ textAlign: 'center',
+ padding: '50px',
+ fontSize: '18px',
+ color: '#ff4d4f'
+ }}>
+ 权限不足,无法访问用户管理功能
+ </div>
+ ) : (
+ <Table
+ dataSource={users}
+ columns={columns}
+ rowKey="id"
+ pagination={false}
+ />
+ )}
</div>
)
}