From 9e9404d27345bd872dc16814ad95ed9f7439dc87 Mon Sep 17 00:00:00 2001 From: Cheng Zhou Date: Tue, 23 Dec 2025 21:48:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=93=8D=E4=BD=9C=E4=BA=BA?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/dist/index.html | 4 ++-- frontend/src/views/Verification.vue | 3 ++- frontend/src/views/admin/AuditLogs.vue | 19 +++++++++++++------ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/frontend/dist/index.html b/frontend/dist/index.html index 9f2320d4..8107d5b9 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -4,8 +4,8 @@ CTMS - - + +
diff --git a/frontend/src/views/Verification.vue b/frontend/src/views/Verification.vue index dc6a8b2d..3b63b984 100644 --- a/frontend/src/views/Verification.vue +++ b/frontend/src/views/Verification.vue @@ -185,8 +185,9 @@ const subjectMap = computed(() => const verifierMap = computed(() => members.value.reduce>((acc, cur) => { - const username = cur?.user?.display_name || cur?.user?.username || cur?.username; + const username = cur?.user?.display_name || cur?.user?.full_name || cur?.user?.username || cur?.username; if (cur?.user_id) acc[cur.user_id] = username || cur.user_id; + if (cur?.id) acc[cur.id] = username || cur.id; return acc; }, {}) ); diff --git a/frontend/src/views/admin/AuditLogs.vue b/frontend/src/views/admin/AuditLogs.vue index 39885449..f3a9a4e2 100644 --- a/frontend/src/views/admin/AuditLogs.vue +++ b/frontend/src/views/admin/AuditLogs.vue @@ -93,6 +93,7 @@ import { useRouter } from "vue-router"; import { ElMessage, ElMessageBox } from "element-plus"; import { fetchAuditLogs } from "../../api/auditLogs"; import { fetchUsers } from "../../api/users"; +import { listMembers } from "../../api/members"; import { auditDict, normalizeAuditEvent } from "../../audit"; import { useStudyStore } from "../../store/study"; import { useAuthStore } from "../../store/auth"; @@ -155,13 +156,19 @@ const ensureAccess = () => { }; const loadUsers = async () => { - if (auth.user?.role !== "ADMIN") { - users.value = []; - return; - } try { - const { data } = await fetchUsers({ limit: 500 }); - users.value = (data as any).items || data || []; + if (auth.user?.role === "ADMIN") { + const { data } = await fetchUsers({ limit: 500 }); + users.value = (data as any).items || data || []; + } else if (study.currentStudy) { + // 非管理员,尝试加载项目成员作为备选 + const { data } = await listMembers(study.currentStudy.id, { limit: 500 }); + const items = Array.isArray(data) ? data : (data as any).items || []; + users.value = items.map((m: any) => ({ + id: m.user_id, + username: m.user?.display_name || m.user?.full_name || m.user?.username || m.username, + })); + } } catch { users.value = []; }