@@ -18,21 +57,10 @@ export default function SettingsPage() {
,
- label: "模型接入",
- },
- {
- key: "system-config",
- icon: ,
- label: "参数配置",
- },
- ]}
+ items={tabs}
selectedKeys={[activeTab]}
onClick={({ key }) => {
- setActiveTab(key);
+ setActiveTab(String(key));
}}
/>
@@ -41,6 +69,13 @@ export default function SettingsPage() {
{/* 内容区域,根据 activeTab 渲染不同的组件 */}
{activeTab === "system-config" &&
}
{activeTab === "model-access" &&
}
+ {activeTab === "user-permission" && (
+
+ )}
);
diff --git a/frontend/src/pages/SettingsPage/UserPermissionManagement.tsx b/frontend/src/pages/SettingsPage/UserPermissionManagement.tsx
new file mode 100644
index 0000000..d9d9a79
--- /dev/null
+++ b/frontend/src/pages/SettingsPage/UserPermissionManagement.tsx
@@ -0,0 +1,321 @@
+import { useCallback, useEffect, useMemo, useState } from "react";
+import {
+ Button,
+ Card,
+ Empty,
+ message,
+ Modal,
+ Select,
+ Space,
+ Table,
+ Tag,
+ Typography,
+} from "antd";
+import type { ColumnsType } from "antd/es/table";
+import {
+ assignUserRolesUsingPut,
+ listAuthPermissionsUsingGet,
+ listAuthRolesUsingGet,
+ listAuthUsersUsingGet,
+} from "./settings.apis";
+import type {
+ AuthPermissionInfo,
+ AuthRoleInfo,
+ AuthUserWithRoles,
+} from "./settings.apis";
+
+interface ApiResponse