mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-03-07 04:20:47 +08:00
feat: 完成的排序在前面
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user