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 = [];
}