项目详情页--初步更新

This commit is contained in:
Cheng Zhou
2025-12-18 19:36:47 +08:00
parent eed83cec5a
commit fb4950f8f7
17 changed files with 205 additions and 9 deletions
+22 -5
View File
@@ -16,21 +16,29 @@
<el-tag>{{ scope.row.role_in_study }}</el-tag>
</template>
</el-table-column>
<el-table-column label="状态" width="120">
<el-table-column label="状态" width="160">
<template #default="scope">
<el-tag type="success" v-if="scope.row.is_active">启用</el-tag>
<el-tag type="danger" v-else>已禁用</el-tag>
<el-tooltip
v-if="scope.row.effectiveStatus === 'DISABLED_GLOBAL'"
content="请前往【账号治理】启用该账号"
placement="top"
>
<el-tag type="danger">全局已禁用</el-tag>
</el-tooltip>
<el-tag v-else :type="scope.row.is_active ? 'success' : 'danger'">
{{ scope.row.is_active ? "启用" : "已禁用" }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="added_at" label="加入时间" width="200" />
<el-table-column label="操作" width="320" fixed="right">
<el-table-column label="操作" width="360" fixed="right">
<template #default="scope">
<el-select
v-model="scope.row.role_in_study"
size="small"
style="width: 120px"
@change="(val) => updateRole(scope.row.id, val)"
:disabled="!scope.row.is_active"
:disabled="!scope.row.is_active || scope.row.effectiveStatus === 'DISABLED_GLOBAL'"
>
<el-option label="PM" value="PM" />
<el-option label="CRA" value="CRA" />
@@ -38,11 +46,13 @@
<el-option label="IMP" value="IMP" />
<el-option label="ADMIN" value="ADMIN" />
</el-select>
<span v-if="scope.row.effectiveStatus === 'DISABLED_GLOBAL'" class="hint">该账号已在系统级被禁用无法在任何项目中使用</span>
<el-button link type="danger" size="small" @click="onDelete(scope.row)">删除</el-button>
<el-button
link
:type="scope.row.is_active ? 'danger' : 'primary'"
size="small"
:disabled="scope.row.effectiveStatus === 'DISABLED_GLOBAL'"
@click="toggleActive(scope.row)"
>
{{ scope.row.is_active ? "停用" : "启用" }}
@@ -151,9 +161,11 @@ const loadUsers = async () => {
const memberRows = computed(() =>
members.value.map((m) => {
const user = users.value.find((u) => u.id === m.user_id);
const effectiveStatus = user && user.is_active === false ? "DISABLED_GLOBAL" : m.is_active ? "ACTIVE" : "DISABLED";
return {
...m,
username: user?.username || m.user_id,
effectiveStatus,
};
})
);
@@ -388,4 +400,9 @@ onMounted(async () => {
color: #666;
margin-top: 4px;
}
.hint {
color: #999;
margin: 0 8px;
font-size: 12px;
}
</style>