fix bug#3907 群成员把管理员提前显示

This commit is contained in:
wwt 2025-03-17 17:39:35 +08:00
parent b4b614b545
commit b8fd50394c

View File

@ -9,7 +9,7 @@
? ''
: '0',
}"
v-for="(memberItem, memberIndex) in props?.memberList"
v-for="(memberItem, memberIndex) in sortedMemberList"
@click="toUserDetailPage(memberItem)"
>
<div
@ -81,7 +81,7 @@
</div>
</template>
<script setup>
import { defineProps } from 'vue'
import { defineProps, computed } from 'vue'
const props = defineProps({
memberList: Array, //
memberListsLimit: Number, //
@ -90,6 +90,36 @@ const props = defineProps({
hideAddRemoveBtns: Boolean, //
})
//
const sortedMemberList = computed(() => {
if (!props.memberList || props.memberList.length === 0) return [];
//
const indexedList = props.memberList.map((item, index) => ({ item, index }));
// leader
return indexedList.sort((a, b) => {
const leaderA = a.item.leader || 0;
const leaderB = b.item.leader || 0;
// leaderleader
if ((leaderA === 1 || leaderA === 2) && (leaderB !== 1 && leaderB !== 2)) {
return -1; // a
}
if ((leaderB === 1 || leaderB === 2) && (leaderA !== 1 && leaderA !== 2)) {
return 1; // b
}
// leader
if ((leaderA === 1 || leaderA === 2) && (leaderB === 1 || leaderB === 2)) {
return leaderB - leaderA; // leader
}
//
return a.index - b.index;
}).map(item => item.item); //
})
//
const toUserDetailPage = (userItem) => {
console.log(userItem)