Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ui/src/components/business/api-key-list/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ onMounted(loadApiKeys)
</span>
</template>
</el-table-column>
<el-table-column label="备注" show-overflow-tooltip>
<el-table-column label="备注" width="180" show-overflow-tooltip>
<template #default="{ row }">{{ row.remark || '—' }}</template>
</el-table-column>
<el-table-column prop="create_time" label="创建时间" width="180">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,35 @@ const memberForm = reactive<{ userIds: string[] }>({ userIds: [] })
/* 成员选项 */
const optionsLoading = ref(false)
const userOptions = ref<CommonUserOption[]>([])
const allUserOptions = ref<CommonUserOption[]>([])
let searchTimer: ReturnType<typeof setTimeout> | null = null
function loadUserOptions(query?: string) {
function loadUserOptions(query = '') {
const keyword = query.trim()
optionsLoading.value = true
CommonSystemApi.getWorkspaceMembers(props.workspaceId, query ? { nick_name: query } : undefined)
CommonSystemApi.getWorkspaceMembers(props.workspaceId, keyword ? { nick_name: keyword } : undefined)
.then((users) => {
userOptions.value = users
if (!keyword) allUserOptions.value = users
})
.finally(() => {
optionsLoading.value = false
})
}

function handleRemoteSearch(query: string) {
if (searchTimer) clearTimeout(searchTimer)
if (searchTimer) {
clearTimeout(searchTimer)
searchTimer = null
}
const keyword = query.trim()
if (!keyword) {
// Select 聚焦会触发空关键词搜索,复用首次列表以避免加载态导致下拉浮层重绘。
userOptions.value = allUserOptions.value
return
}
searchTimer = setTimeout(() => {
loadUserOptions(query)
searchTimer = null
loadUserOptions(keyword)
}, 300)
}

Expand Down Expand Up @@ -67,6 +80,7 @@ function resetData() {
loading.value = false
optionsLoading.value = false
userOptions.value = []
allUserOptions.value = []
formRef.value?.clearValidate()
if (searchTimer) {
clearTimeout(searchTimer)
Expand Down
Loading