修复权限管理页面错误

1. 修复 ApiPermissions.vue 中的数据绑定错误
   - 从 axios 响应中正确提取 .data 属性
   - 修复 loadPermissionData、loadMonitoringData、save 函数

2. 禁用 FastAPI 响应验证
   - 在 api_permissions.py 中添加 response_model=None
   - 避免 Pydantic 验证错误

3. 注册权限监控 API 路由
   - 在 router.py 中导入并注册 permission_monitoring 模块
   - 修改 permission_monitoring.py 的路由前缀

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Cheng Zhou
2026-05-14 10:41:16 +08:00
parent ebbb6aed25
commit 6eea6b35fd
4 changed files with 16 additions and 11 deletions
+9 -7
View File
@@ -130,8 +130,8 @@ const loadPermissionData = async () => {
fetchApiEndpointPermissions(studyId.value),
]);
moduleMatrix.value = moduleRes;
apiMatrix.value = apiRes;
moduleMatrix.value = moduleRes.data;
apiMatrix.value = apiRes.data;
dirty.value = false;
} catch (error) {
ElMessage.error("加载权限数据失败");
@@ -151,9 +151,9 @@ const loadMonitoringData = async () => {
fetchPermissionAlerts(undefined, 20),
]);
metrics.value = metricsRes;
health.value = healthRes;
alerts.value = alertsRes;
metrics.value = metricsRes.data;
health.value = healthRes.data;
alerts.value = alertsRes.data;
} catch (error) {
ElMessage.error("加载监控数据失败");
console.error(error);
@@ -177,11 +177,13 @@ const save = async () => {
try {
// 保存当前活跃标签的权限
if (activeTab.value === "module" && moduleMatrix.value) {
await updateProjectRolePermissions(studyId.value, {
const res = await updateProjectRolePermissions(studyId.value, {
roles: moduleMatrix.value.roles,
});
moduleMatrix.value = res.data;
} else if (activeTab.value === "api" && apiMatrix.value) {
await updateApiEndpointPermissions(studyId.value, apiMatrix.value);
const res = await updateApiEndpointPermissions(studyId.value, apiMatrix.value);
apiMatrix.value = res.data;
}
dirty.value = false;