启动与授权-初步优化

This commit is contained in:
Cheng Zhou
2026-01-15 11:25:13 +08:00
parent 4fc5f0ee9b
commit 05c1f9579a
28 changed files with 1082 additions and 300 deletions
+3 -3
View File
@@ -10,7 +10,7 @@
<el-button type="primary" @click="openAdd">{{ TEXT.common.actions.add }}{{ TEXT.modules.adminProjectMembers.memberLabel }}</el-button>
</div>
<el-table :data="memberRows" v-loading="loading" stripe>
<el-table-column prop="username" :label="TEXT.modules.adminProjectMembers.username" min-width="160" />
<el-table-column prop="full_name" :label="TEXT.modules.adminProjectMembers.username" min-width="160" />
<el-table-column prop="role_in_study" :label="TEXT.modules.adminProjectMembers.projectRole" width="140">
<template #default="scope">
<el-tag>{{ displayEnum(TEXT.enums.userRole, scope.row.role_in_study) }}</el-tag>
@@ -71,7 +71,7 @@
<el-option
v-for="user in availableUsers"
:key="user.id"
:label="user.username"
:label="user.full_name || TEXT.common.fallback"
:value="user.id"
:disabled="!user.is_active"
/>
@@ -168,7 +168,7 @@ const memberRows = computed(() =>
const effectiveStatus = user && user.is_active === false ? "DISABLED_GLOBAL" : m.is_active ? "ACTIVE" : "DISABLED";
return {
...m,
username: user?.username || m.user_id,
full_name: user?.full_name || user?.username || m.user_id,
effectiveStatus,
};
})
+2 -2
View File
@@ -86,11 +86,11 @@ const rules = reactive<FormRules>({
const craOptions = computed(() => {
const userMap = (props.users || []).reduce<Record<string, string>>((acc, cur: any) => {
if (cur?.id) acc[cur.id] = cur.username || cur.id;
if (cur?.id) acc[cur.id] = cur.full_name || cur.username || cur.id;
return acc;
}, {});
return (props.members || []).map((m: any) => ({
label: userMap[m.user_id] || m.username || m.user_id,
label: userMap[m.user_id] || m.full_name || m.username || m.user_id,
value: m.user_id,
}));
});
+2 -2
View File
@@ -127,10 +127,10 @@ const loadMembers = async () => {
const memberNameMap = computed(() => {
const map: Record<string, string> = {};
users.value.forEach((u) => {
map[u.id] = u.username || u.id;
map[u.id] = u.full_name || u.username || u.id;
});
members.value.forEach((m) => {
if (m.user_id && !map[m.user_id]) map[m.user_id] = m.username || m.user_id;
if (m.user_id && !map[m.user_id]) map[m.user_id] = m.full_name || m.username || m.user_id;
});
return map;
});