-
-
+
+
+
-
+
+
+
+
-
-
-
-
- {{ friend.displayName || friend.nickname }}
-
-
-
-
-
-
+
+
+ {{ (item as FriendLite).displayName || (item as FriendLite).nickname }}
+
+
+
+
+
{{ keyword ? '没有匹配的好友' : '暂无好友' }}
-
+
@@ -137,6 +127,7 @@ import Icon from '@/components/Icon/src/Icon.vue'
import { useMessage } from '@/hooks/web/useMessage'
import UserAvatar from '../user/UserAvatar.vue'
+import PagedScroller from '../PagedScroller.vue'
import { useFriendBuckets } from '../../composables/useFriendBuckets'
import { useSelectedItems } from '../../composables/useSelectedItems'
import type { FriendLite } from '../../types'
@@ -194,8 +185,8 @@ const candidates = computed(() =>
props.friends.filter((friend) => !hideSet.value.has(friend.id))
)
-/** 委托 useFriendBuckets:搜索 + 字母分桶共用一套规则 */
-const { filtered, buckets } = useFriendBuckets(candidates, keyword)
+/** 委托 useFriendBuckets:搜索规则复用,左侧列表按滚动分页渲染 */
+const { filtered } = useFriendBuckets(candidates, keyword)
/** 已选数 + 已选好友列表:三态优先级 + 顺序拼接由 useSelectedItems 统一承担 */
const { selectedCount, selectedItems: selectedFriends } = useSelectedItems