diff --git a/src/pages/user/UserList.vue b/src/pages/user/UserList.vue index 378d6cc..0c674f0 100644 --- a/src/pages/user/UserList.vue +++ b/src/pages/user/UserList.vue @@ -136,6 +136,15 @@ const pageResult = reactive>({ list: [] }); +function isCurrentUser(item: ManagedUser): boolean { + const loginUserId = userStore.loginUser.user?.id || userStore.loginUser.id; + return !!loginUserId && (item.userId === loginUserId || item.user?.id === loginUserId); +} + +function filterCurrentUser(list: ManagedUser[]): ManagedUser[] { + return list.filter(item => !isCurrentUser(item)); +} + // ---------- 展示文案 ---------- function getUserName(item: ManagedUser): string { @@ -176,10 +185,11 @@ async function loadData(): Promise { ManagedUserAPI.list(page, userListOptions.value), permissionStore.loadAll() ]); + const list = userResult.list || []; pageResult.total = userResult.total; - pageResult.list = userResult.list || []; + pageResult.list = filterCurrentUser(list); page.index = 1; - isNoMore.value = pageResult.list.length >= pageResult.total || pageResult.list.length < page.size; + isNoMore.value = pageResult.list.length >= pageResult.total || list.length < page.size; } async function refresh(): Promise { @@ -203,10 +213,11 @@ async function fetch(): Promise { isLoading.value = true; try { const result = await ManagedUserAPI.list(page, userListOptions.value); + const list = result.list || []; pageResult.total = result.total; - pageResult.list = pageResult.list.concat(result.list || []); + pageResult.list = pageResult.list.concat(filterCurrentUser(list)); page.index += 1; - isNoMore.value = pageResult.list.length >= pageResult.total || (result.list || []).length < page.size; + isNoMore.value = pageResult.list.length >= pageResult.total || list.length < page.size; } finally { isLoading.value = false; }