feat: add user search in settings
This commit is contained in:
parent
adbd4e9815
commit
7b343534ee
@ -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 {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user