feat: 完成的排序在前面

This commit is contained in:
tim
2025-08-09 17:08:48 +08:00
parent b196be59a2
commit 57c0aa5899
2 changed files with 14 additions and 6 deletions

View File

@@ -1,7 +1,7 @@
<template> <template>
<div class="achievements-list"> <div class="achievements-list">
<div <div
v-for="medal in props.medals" v-for="medal in sortedMedals"
:key="medal.type" :key="medal.type"
class="achievements-list-item" class="achievements-list-item"
> >
@@ -25,13 +25,23 @@
</template> </template>
<script setup> <script setup>
defineProps({ import { computed } from 'vue'
const props = defineProps({
medals: { medals: {
type: Array, type: Array,
required: true, required: true,
default: () => [] default: () => []
} }
}) })
const sortedMedals = computed(() => {
return [...props.medals].sort((a, b) => {
if (a.completed === b.completed) return 0
return a.completed ? -1 : 1
})
})
</script> </script>
<style scoped> <style scoped>

View File

@@ -472,18 +472,16 @@ export default {
onMounted(init) onMounted(init)
const achievementsLoaded = ref(false)
watch(selectedTab, async val => { watch(selectedTab, async val => {
if (val === 'timeline' && timelineItems.value.length === 0) { if (val === 'timeline' && timelineItems.value.length === 0) {
await loadTimeline() await loadTimeline()
} else if (val === 'following' && followers.value.length === 0 && followings.value.length === 0) { } else if (val === 'following' && followers.value.length === 0 && followings.value.length === 0) {
await loadFollow() await loadFollow()
} else if (val === 'achievements' && !achievementsLoaded.value) { } else if (val === 'achievements' && medals.value.length === 0) {
await loadAchievements() await loadAchievements()
achievementsLoaded.value = true
} }
}) })
return { return {
user, user,
hotPosts, hotPosts,