diff --git a/src/pages/Achievements.vue b/src/pages/Achievements.vue index 771c6271..31d1a912 100644 --- a/src/pages/Achievements.vue +++ b/src/pages/Achievements.vue @@ -40,8 +40,10 @@
@@ -81,10 +83,10 @@ const title = ref(""); const seriesList = ref({} as Map); const achievementsList = ref({} as Map); const selectedSeries = ref(-1); -const selectedAchievement = ref({} as Map); +const selectedAchievement = ref({} as Map>); -onMounted(async () => { - await loadData(); +onMounted(() => { + loadData(); }); // 加载数据,数据源:合并后的本地数据 @@ -97,26 +99,24 @@ async function loadData() { ); seriesList.value = mergeSeriesMap.getMap(); achievementsList.value = mergeAchievementMap.getMap(); - selectedAchievement.value = mergeAchievementMap.getMap(); + selectedAchievement.value = transGroup(mergeSeriesMap, mergeAchievementMap); achievementsStore.flushData(mergeSeriesMap); title.value = await getTitle(); } +// 将所有成就分组 +function transGroup(seriesMap: TGMap, achievementsMap: TGMap) { + const transList = {} as Map>; + seriesMap.forEach(series => { + transList[series.id] = []; + }); + achievementsMap.forEach(achievement => { + transList[achievement.series].push(achievement); + }); + return transList; +} // 渲染选中的成就系列 function selectSeries(series_id: number) { - console.log(series_id); selectedSeries.value = series_id; - // 清空选中的成就列表 - selectedAchievement.value = {}; - // 创建一个新的 TGMap - const mergeSeriesMap = new TGMap(seriesList.value); - const mergeAchievementMap = new TGMap(achievementsList.value); - // 获取选中的成就系列 - const series = mergeSeriesMap.get(series_id); - // 获取选中的成就系列的成就列表 - series.achievements.forEach(achievement_id => { - // 添加到选中的成就列表 - selectedAchievement.value[achievement_id] = mergeAchievementMap.get(achievement_id); - }); } // 获取标题 async function getTitle() {