From e1c4dd4082bd7b801663660c160d53681c676d0b Mon Sep 17 00:00:00 2001 From: BTMuli Date: Thu, 9 Mar 2023 19:22:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(achievements):=20=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=B8=B2=E6=9F=93=E4=BB=A5=E5=8F=8A=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E6=9F=90=E7=B3=BB=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Achievements.vue | 83 +++++++++++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 6 deletions(-) diff --git a/src/pages/Achievements.vue b/src/pages/Achievements.vue index 358cf010..0bc635c2 100644 --- a/src/pages/Achievements.vue +++ b/src/pages/Achievements.vue @@ -14,10 +14,48 @@ - - - - + + + + + + + + + + {{ series.name }} + + {{ series.completed_count }} / {{ series.total_count }} + + + + + + + + + + + + {{ achievement.name }} + + {{ + achievement.completed ? achievement.completed_time : achievement.description + }} + + + + + @@ -26,7 +64,7 @@ import useAppStore from "../store/modules/app"; import useAchievementsStore from "../store/modules/achievements"; import UIAF_Oper from "../plugins/UIAF"; import { dialog, fs } from "@tauri-apps/api"; -import { UIAF_Achievement, Achievements } from "../plugins/UIAF/interface/UIAF"; +import { Achievements, UIAF_Achievement } from "../plugins/UIAF/interface/UIAF"; import { AchievementMap as TGAchievementMap, SeriesMap as TGSeriesMap, @@ -44,6 +82,7 @@ const title = ref(""); const seriesList = ref({} as Map); const achievementsList = ref({} as Map); const selectedSeries = ref(-1); +const selectedAchievement = ref({} as Map); onMounted(async () => { await loadData(); @@ -59,9 +98,27 @@ async function loadData() { ); seriesList.value = mergeSeriesMap.getMap(); achievementsList.value = mergeAchievementMap.getMap(); + selectedAchievement.value = mergeAchievementMap.getMap(); achievementsStore.flushData(mergeSeriesMap); title.value = await getTitle(); } +// 渲染选中的成就系列 +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() { return `成就完成数:${achievementsStore.fin_achievements}/${ @@ -163,4 +220,18 @@ async function exportJson() { } - +