fix bug#3907 群成员把管理员提前显示
This commit is contained in:
parent
b4b614b545
commit
b8fd50394c
@ -9,7 +9,7 @@
|
|||||||
? ''
|
? ''
|
||||||
: '0',
|
: '0',
|
||||||
}"
|
}"
|
||||||
v-for="(memberItem, memberIndex) in props?.memberList"
|
v-for="(memberItem, memberIndex) in sortedMemberList"
|
||||||
@click="toUserDetailPage(memberItem)"
|
@click="toUserDetailPage(memberItem)"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
@ -81,7 +81,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { defineProps } from 'vue'
|
import { defineProps, computed } from 'vue'
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
memberList: Array, //人员列表
|
memberList: Array, //人员列表
|
||||||
memberListsLimit: Number, //人员列表数量限制
|
memberListsLimit: Number, //人员列表数量限制
|
||||||
@ -90,6 +90,36 @@ const props = defineProps({
|
|||||||
hideAddRemoveBtns: Boolean, //是否隐藏添加移除按钮
|
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;
|
||||||
|
|
||||||
|
// 如果leader状态不同,优先按leader排序
|
||||||
|
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) => {
|
const toUserDetailPage = (userItem) => {
|
||||||
console.log(userItem)
|
console.log(userItem)
|
||||||
|
Loading…
Reference in New Issue
Block a user