审计日志并入系统管理、规范项目成员获取逻辑
This commit is contained in:
@@ -30,7 +30,7 @@ import { ElMessage } from "element-plus";
|
||||
import { fetchComments, createComment } from "../api/comments";
|
||||
import { useStudyStore } from "../store/study";
|
||||
import { listMembers } from "../api/members";
|
||||
import { displayDateTime, displayUser } from "../utils/display";
|
||||
import { displayDateTime, displayUser, getMemberDisplayName } from "../utils/display";
|
||||
|
||||
interface Props {
|
||||
studyId: string;
|
||||
@@ -72,8 +72,8 @@ const loadMembers = async () => {
|
||||
|
||||
const memberMap = computed(() =>
|
||||
members.value.reduce<Record<string, string>>((acc, cur) => {
|
||||
const username = cur?.user?.display_name || cur?.user?.username || cur?.username;
|
||||
if (cur?.user_id) acc[cur.user_id] = username || cur.user_id;
|
||||
const username = getMemberDisplayName(cur);
|
||||
if (cur?.user_id && username) acc[cur.user_id] = username;
|
||||
return acc;
|
||||
}, {})
|
||||
);
|
||||
|
||||
@@ -27,6 +27,10 @@
|
||||
<el-icon><Suitcase /></el-icon>
|
||||
<span>项目管理</span>
|
||||
</el-menu-item>
|
||||
<el-menu-item v-if="isAdmin" index="/admin/audit-logs">
|
||||
<el-icon><Document /></el-icon>
|
||||
<span>审计日志</span>
|
||||
</el-menu-item>
|
||||
</template>
|
||||
|
||||
<template v-if="study.currentStudy">
|
||||
@@ -77,10 +81,6 @@
|
||||
<el-icon><Notebook /></el-icon>
|
||||
<span>知识库</span>
|
||||
</el-menu-item>
|
||||
<el-menu-item v-if="isAdmin || isPm" index="/study/audit-logs">
|
||||
<el-icon><Document /></el-icon>
|
||||
<span>审计日志</span>
|
||||
</el-menu-item>
|
||||
</template>
|
||||
</el-menu>
|
||||
</el-aside>
|
||||
|
||||
@@ -51,7 +51,7 @@ import { formatFileSize } from "./attachmentUtils";
|
||||
import { useAuthStore } from "../../store/auth";
|
||||
import { useStudyStore } from "../../store/study";
|
||||
import { listMembers } from "../../api/members";
|
||||
import { displayDateTime, displayUser } from "../../utils/display";
|
||||
import { displayDateTime, displayUser, getMemberDisplayName, getUserDisplayName } from "../../utils/display";
|
||||
|
||||
const props = defineProps<{
|
||||
studyId: string;
|
||||
@@ -90,12 +90,12 @@ const loadMembers = async () => {
|
||||
|
||||
const uploaderLabel = (row: any) => {
|
||||
const memberMap = members.value.reduce<Record<string, string>>((acc, cur) => {
|
||||
const username = cur?.user?.display_name || cur?.user?.username || cur?.username;
|
||||
if (cur?.user_id) acc[cur.user_id] = username || cur.user_id;
|
||||
const username = getMemberDisplayName(cur);
|
||||
if (cur?.user_id && username) acc[cur.user_id] = username;
|
||||
return acc;
|
||||
}, {});
|
||||
if (row?.uploaded_by && typeof row.uploaded_by === "object") {
|
||||
return row.uploaded_by.display_name || row.uploaded_by.username || row.uploaded_by.id || "—";
|
||||
return getUserDisplayName(row.uploaded_by) || row.uploaded_by.id || "—";
|
||||
}
|
||||
return displayUser(row.uploaded_by_id || row.uploaded_by, { members: memberMap });
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user