feat: add user search in settings

This commit is contained in:
Your Name 2026-03-17 18:04:13 +08:00
parent adbd4e9815
commit 7b343534ee

View File

@ -420,9 +420,25 @@
style="margin-bottom: 16px;"
/>
<div class="user-search-toolbar">
<a-input-search
v-model:value="userManagementSearchKeyword"
allow-clear
placeholder="搜索姓名、用户名、手机号、邮箱、部门"
style="width: 320px"
>
<template #prefix>
<Icon name="search" size="sm" />
</template>
</a-input-search>
<span class="user-search-count">
共 {{ filteredUsersList.length }} 位用户
</span>
</div>
<a-table
:columns="userManagementColumns"
:data-source="allUsersList"
:data-source="filteredUsersList"
:loading="userLoading"
row-key="id"
:pagination="{ pageSize: 15 }"
@ -3402,6 +3418,7 @@ const transferModalVisible = ref(false)
const selectedUser = ref<User | null>(null)
const transferDeptId = ref<number | null>(null)
const allUsers = ref<User[]>([])
const userManagementSearchKeyword = ref('')
const offboardingPreviewLoading = ref(false)
const offboardingExecuting = ref(false)
const offboardingPreview = ref<UserOffboardingPreview | null>(null)
@ -3796,6 +3813,28 @@ const allUsersList = computed(() => {
})
})
const filteredUsersList = computed(() => {
const keyword = userManagementSearchKeyword.value.trim().toLowerCase()
if (!keyword) {
return allUsersList.value
}
return allUsersList.value.filter((user) => {
const searchFields = [
user.id,
user.realName,
user.username,
user.phone,
user.email,
user.deptName
]
return searchFields.some((field) =>
String(field || '').toLowerCase().includes(keyword)
)
})
})
// 格式化时间
const formatUserTime = (time: string | undefined) => {
if (!time) return '--'
@ -6883,6 +6922,20 @@ watch(activeTab, (value) => {
max-width: 600px;
}
.user-search-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 16px;
flex-wrap: wrap;
}
.user-search-count {
color: $text-tertiary;
font-size: $font-size-sm;
}
// 用户信息单元格
.user-info-cell {
.user-info-main {