修复操作人异常显示
This commit is contained in:
Vendored
+2
-2
@@ -4,8 +4,8 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>CTMS</title>
|
<title>CTMS</title>
|
||||||
<script type="module" crossorigin src="/assets/index-CLgelUhv.js"></script>
|
<script type="module" crossorigin src="/assets/index-Cs6sO1fk.js"></script>
|
||||||
<link rel="stylesheet" crossorigin href="/assets/index-CpYJ-5eT.css">
|
<link rel="stylesheet" crossorigin href="/assets/index-BX8Ho7fh.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
|
|||||||
@@ -185,8 +185,9 @@ const subjectMap = computed(() =>
|
|||||||
|
|
||||||
const verifierMap = computed(() =>
|
const verifierMap = computed(() =>
|
||||||
members.value.reduce<Record<string, string>>((acc, cur) => {
|
members.value.reduce<Record<string, string>>((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?.user_id) acc[cur.user_id] = username || cur.user_id;
|
||||||
|
if (cur?.id) acc[cur.id] = username || cur.id;
|
||||||
return acc;
|
return acc;
|
||||||
}, {})
|
}, {})
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ import { useRouter } from "vue-router";
|
|||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
import { fetchAuditLogs } from "../../api/auditLogs";
|
import { fetchAuditLogs } from "../../api/auditLogs";
|
||||||
import { fetchUsers } from "../../api/users";
|
import { fetchUsers } from "../../api/users";
|
||||||
|
import { listMembers } from "../../api/members";
|
||||||
import { auditDict, normalizeAuditEvent } from "../../audit";
|
import { auditDict, normalizeAuditEvent } from "../../audit";
|
||||||
import { useStudyStore } from "../../store/study";
|
import { useStudyStore } from "../../store/study";
|
||||||
import { useAuthStore } from "../../store/auth";
|
import { useAuthStore } from "../../store/auth";
|
||||||
@@ -155,13 +156,19 @@ const ensureAccess = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const loadUsers = async () => {
|
const loadUsers = async () => {
|
||||||
if (auth.user?.role !== "ADMIN") {
|
|
||||||
users.value = [];
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
|
if (auth.user?.role === "ADMIN") {
|
||||||
const { data } = await fetchUsers({ limit: 500 });
|
const { data } = await fetchUsers({ limit: 500 });
|
||||||
users.value = (data as any).items || data || [];
|
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 {
|
} catch {
|
||||||
users.value = [];
|
users.value = [];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user