diff --git a/.DS_Store b/.DS_Store
index e9df439..c7e173b 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/dist.zip b/dist.zip
index e6fa54c..abee3cf 100644
Binary files a/dist.zip and b/dist.zip differ
diff --git a/src/components/admin/UserManagement.css b/src/components/admin/UserManagement.css
index 5aa8f13..f25393e 100644
--- a/src/components/admin/UserManagement.css
+++ b/src/components/admin/UserManagement.css
@@ -1,9 +1,16 @@
-/* UserManagement.css */
.user-management .toolbar {
display: flex;
justify-content: space-between;
align-items: center;
- margin-bottom: 1.5rem;
+ margin-bottom: 2rem;
+}
+
+.user-management .toolbar h2 {
+ margin: 0;
+ flex-shrink: 0;
+ font-size: 1.5rem;
+ font-weight: 600;
+ color: #1e293b;
}
.users-table {
diff --git a/src/components/admin/UserManagement.jsx b/src/components/admin/UserManagement.jsx
index f634b2c..f29773c 100644
--- a/src/components/admin/UserManagement.jsx
+++ b/src/components/admin/UserManagement.jsx
@@ -18,9 +18,11 @@ const UserManagement = () => {
const [processingUser, setProcessingUser] = useState(null);
const [newUser, setNewUser] = useState({ username: '', caption: '', email: '', role_id: 2 });
const [editingUser, setEditingUser] = useState(null);
+ const [roles, setRoles] = useState([]);
useEffect(() => {
fetchUsers();
+ fetchRoles();
}, [page, pageSize]);
const fetchUsers = async () => {
@@ -36,6 +38,20 @@ const UserManagement = () => {
}
};
+ const fetchRoles = async () => {
+ try {
+ const response = await apiClient.get(buildApiUrl(API_ENDPOINTS.USERS.ROLES));
+ setRoles(response.data);
+ } catch (err) {
+ console.error('Error fetching roles:', err);
+ // 如果无法获取角色列表,使用默认值
+ setRoles([
+ { role_id: 1, role_name: '平台管理员' },
+ { role_id: 2, role_name: '普通用户' }
+ ]);
+ }
+ };
+
const handleAddUser = async (e) => {
e.preventDefault();
try {
@@ -141,7 +157,7 @@ const UserManagement = () => {
{user.username} |
{user.caption} |
{user.email} |
- {user.role_id === 1 ? '管理员' : '普通用户'} |
+ {user.role_name} |
{new Date(user.created_at).toLocaleString()} |
@@ -184,8 +200,9 @@ const UserManagement = () => {
@@ -221,8 +238,9 @@ const UserManagement = () => {
diff --git a/src/config/api.js b/src/config/api.js
index 69d0c3b..88d25fb 100644
--- a/src/config/api.js
+++ b/src/config/api.js
@@ -16,7 +16,8 @@ const API_CONFIG = {
DELETE: (userId) => `/api/users/${userId}`,
RESET_PASSWORD: (userId) => `/api/users/${userId}/reset-password`,
DETAIL: (userId) => `/api/users/${userId}`,
- UPDATE_PASSWORD: (userId) => `/api/users/${userId}/password`
+ UPDATE_PASSWORD: (userId) => `/api/users/${userId}/password`,
+ ROLES: '/api/roles'
},
MEETINGS: {
LIST: '/api/meetings',
diff --git a/src/pages/AdminManagement.css b/src/pages/AdminManagement.css
index a11ce56..cf4d98b 100644
--- a/src/pages/AdminManagement.css
+++ b/src/pages/AdminManagement.css
@@ -78,6 +78,7 @@
transition: all 0.3s ease;
font-weight: 500;
outline: none;
+ border-radius: 0px;
}
.tab-btn:hover {
diff --git a/src/pages/CreateMeeting.jsx b/src/pages/CreateMeeting.jsx
index 7c94092..d1dbf03 100644
--- a/src/pages/CreateMeeting.jsx
+++ b/src/pages/CreateMeeting.jsx
@@ -26,8 +26,9 @@ const CreateMeeting = ({ user }) => {
const fetchUsers = async () => {
try {
- const response = await apiClient.get(buildApiUrl(API_ENDPOINTS.USERS.LIST));
- setAvailableUsers(response.data.filter(u => u.user_id !== user.user_id));
+ // 获取所有用户,设置较大的size参数
+ const response = await apiClient.get(buildApiUrl(`${API_ENDPOINTS.USERS.LIST}?page=1&size=1000`));
+ setAvailableUsers(response.data.users.filter(u => u.user_id !== user.user_id));
} catch (err) {
console.error('Error fetching users:', err);
}
diff --git a/src/pages/Dashboard.css b/src/pages/Dashboard.css
index aaa1266..e40de84 100644
--- a/src/pages/Dashboard.css
+++ b/src/pages/Dashboard.css
@@ -41,8 +41,9 @@
}
.welcome-text {
- color: #64748b;
- font-weight: 500;
+ color: #334155;
+ font-weight: 600;
+ font-size: 1rem;
}
.logout-btn {
@@ -313,6 +314,14 @@
align-items: center;
cursor: pointer;
gap: 0.5rem;
+ padding: 0.5rem 1rem;
+ border-radius: 8px;
+ transition: all 0.3s ease;
+ background: transparent;
+}
+
+.user-menu-trigger:hover {
+ background: #f1f5f9;
}
.dropdown-menu {
diff --git a/src/pages/EditMeeting.css b/src/pages/EditMeeting.css
index 704c8cc..9c41801 100644
--- a/src/pages/EditMeeting.css
+++ b/src/pages/EditMeeting.css
@@ -681,5 +681,4 @@
.modal-actions .btn-submit:disabled {
opacity: 0.7;
cursor: not-allowed;
-}
}
\ No newline at end of file
diff --git a/src/pages/EditMeeting.jsx b/src/pages/EditMeeting.jsx
index 8d71cb6..b9604f3 100644
--- a/src/pages/EditMeeting.jsx
+++ b/src/pages/EditMeeting.jsx
@@ -68,8 +68,9 @@ const EditMeeting = ({ user }) => {
const fetchUsers = async () => {
try {
- const response = await apiClient.get(buildApiUrl(API_ENDPOINTS.USERS.LIST));
- setAvailableUsers(response.data.filter(u => u.user_id !== user.user_id));
+ // 获取所有用户,设置较大的size参数
+ const response = await apiClient.get(buildApiUrl(`${API_ENDPOINTS.USERS.LIST}?page=1&size=1000`));
+ setAvailableUsers(response.data.users.filter(u => u.user_id !== user.user_id));
} catch (err) {
console.error('Error fetching users:', err);
}
diff --git a/src/pages/HomePage.jsx b/src/pages/HomePage.jsx
index 00f9f87..673d015 100644
--- a/src/pages/HomePage.jsx
+++ b/src/pages/HomePage.jsx
@@ -60,9 +60,9 @@ const HomePage = ({ onLogin }) => {
{/* Hero Section */}
- 智慧会议,让会议更高效
+ “慧会议” 让会议更高效
- 通过AI技术,将会议音视频转化为结构化信息,提升团队协作效率
+ 通过AI将会议音频进行人声分离并自动总结,提升团队协作效率。
|