feat(后台用户): 用户列表按班级看、「重置密码」常驻;批量建号粘进名单当场列出会建成的账号,重名和已有的先点出来,建好能下载名单、打印账号条

用户列表去掉 ID、真名、占位邮箱和四颗彩色按钮。下载的名单开头带 BOM,Excel 打开中文不再乱码。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-10-13 13:56:03 +08:00
1 parent ba823ecb7d
commit 5561e0bc3a
5 files changed
+607 -158

No files matched your search

@@ -11,20 +11,27 @@ const props = defineProps<Props>()
const hasRoleTag = computed(() => props.user.adminType !== USER_TYPE.REGULAR_USER)
</script>
<template>
<n-flex align="center">
<n-tag v-if="props.user.isDisabled" type="error" size="small"> 封号中 </n-tag>
<n-tag v-if="hasRoleTag" :type="getUserRole(props.user.adminType).type" size="small">
<!-- 用户名在前(老师要认的是它),角色、禁用这些标签跟在后面 -->
<n-flex align="center" :size="6" :wrap="false">
<TextCopy>{{ props.user.username }}</TextCopy>
<n-tag v-if="props.user.isDisabled" type="error" size="small" :bordered="false"> 已禁用 </n-tag>
<n-tag
v-if="hasRoleTag"
:type="getUserRole(props.user.adminType).type"
size="small"
:bordered="false"
>
{{ getUserRole(props.user.adminType).label }}
</n-tag>
<n-tag
size="small"
v-if="
props.user.adminType === USER_TYPE.STUDENT_ADMIN ||
props.user.adminType === USER_TYPE.TEACHER_ADMIN
"
size="small"
:bordered="false"
>
{{ props.user.problemPermission === PROBLEM_PERMISSION.ALL ? "全部" : "仅自己" }}
{{ props.user.problemPermission === PROBLEM_PERMISSION.ALL ? "全部题目" : "自己的题" }}
</n-tag>
<TextCopy>{{ props.user.username }}</TextCopy>
</n-flex>
</template>