fix(management): align user permissions with API

This commit is contained in:
yelan
2026-09-01 18:20:04 +08:00
parent dc86ee9149
commit fa42b89136
8 changed files with 226 additions and 34 deletions
@@ -4,11 +4,13 @@ import type { UserStatus, UserTableRow } from '../types'
defineProps<{
rows: UserTableRow[]
roleColors: Record<string, string>
disablingId?: string | null
}>()
const emit = defineEmits<{
edit: [row: UserTableRow]
resetPassword: [row: UserTableRow]
deactivate: [row: UserTableRow]
}>()
const statusLabels: Record<UserStatus, string> = {
@@ -71,6 +73,15 @@ const statusLabels: Record<UserStatus, string> = {
<button type="button" class="table-button" @click="emit('resetPassword', row)">
重置密码
</button>
<button
v-if="row.status === 'enabled'"
type="button"
class="table-button table-button--danger"
:disabled="disablingId === row.id"
@click="emit('deactivate', row)"
>
{{ disablingId === row.id ? '停用中…' : '停用' }}
</button>
</td>
</tr>
<tr v-if="!rows.length">
@@ -174,6 +185,20 @@ const statusLabels: Record<UserStatus, string> = {
background: var(--brand-l);
}
.table-button--danger {
color: var(--err);
border-color: var(--err);
}
.table-button--danger:hover {
background: var(--err-l);
}
.table-button:disabled {
cursor: not-allowed;
opacity: 0.55;
}
.empty-cell {
padding: 40px 12px !important;
color: var(--mut);