整理项目结构
Change-Id: I14b059f2c462100581d2acfef6efbee130bed861
diff --git a/TRM/front/src/UserManagement.js b/TRM/front/src/UserManagement.js
new file mode 100644
index 0000000..ec7cbc2
--- /dev/null
+++ b/TRM/front/src/UserManagement.js
@@ -0,0 +1,44 @@
+import React, { useState, useEffect } from 'react';
+import './Admin.css';
+
+function UserManagement() {
+ const [users, setUsers] = useState([]);
+
+ useEffect(() => {
+ fetch('/api/users')
+ .then(res => res.json())
+ .then(data => setUsers(data))
+ .catch(console.error);
+ }, []);
+
+ const handleUserAction = (id, action) => {
+ fetch(`/api/users/${id}/${action}`, { method: 'POST' })
+ .then(res => res.ok && setUsers(us => us.filter(u => u.id !== id)))
+ .catch(console.error);
+ };
+
+ return (
+ <div className="admin-container">
+ <h2>用户管理</h2>
+ <table className="admin-table">
+ <thead>
+ <tr><th>用户名</th><th>角色</th><th>操作</th></tr>
+ </thead>
+ <tbody>
+ {users.map(u => (
+ <tr key={u.id}>
+ <td>{u.username}</td>
+ <td>{u.role}</td>
+ <td>
+ <button onClick={() => handleUserAction(u.id, 'ban')}>封禁</button>
+ <button onClick={() => handleUserAction(u.id, 'promote')}>提升权限</button>
+ </td>
+ </tr>
+ ))}
+ </tbody>
+ </table>
+ </div>
+ );
+}
+
+export default UserManagement;