From fd3822fe70c56ab68bf0390309f2101fb15a3a8c Mon Sep 17 00:00:00 2001 From: BTMuli Date: Tue, 21 Nov 2023 15:23:51 +0800 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=B8=B2=E6=9F=93=E6=94=B9=E6=88=90=E5=8E=9F=E7=94=9F=EF=BC=8C?= =?UTF-8?q?=E9=99=8D=E4=BD=8E=E6=80=A7=E8=83=BD=E6=B6=88=E8=80=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/common/Achievements.vue | 342 ++++++++++++++++-------------- 1 file changed, 183 insertions(+), 159 deletions(-) diff --git a/src/pages/common/Achievements.vue b/src/pages/common/Achievements.vue index 5d57a91a..a6bb7c7f 100644 --- a/src/pages/common/Achievements.vue +++ b/src/pages/common/Achievements.vue @@ -19,41 +19,29 @@
- -
v{{ series.version }}
- - - +
v{{ series.version }}
+ icon +
+ {{ series.name }} - - - {{ series.finCount }} / {{ series.totalCount }} - - - + + {{ series.finCount }} / {{ series.totalCount }} +
+
-
+
@@ -63,54 +51,51 @@ -
- -
- {{ achievement.progress }} +
+
+ {{ achievement.progress }} +
+
+
+ + mdi-circle + + + finish +
- - - - {{ achievement.name }} - v{{ achievement.version }} - - {{ achievement.description }} - - - +
+ {{ achievement.name }} + v{{ achievement.version }} + + {{ achievement.description }} +
+
+
+ + {{ achievement.completedTime }} + +
+ icon + {{ achievement.reward }} +
+
@@ -158,18 +143,6 @@ const renderSelect = computed(() => { } return selectedAchievement.value; }); -const renderAchievement = computed(() => { - return renderSelect.value.slice(start.value, start.value + itemCount.value + 1); -}); -// virtual list -const start = ref(0); -const itemCount = computed(() => { - return Math.ceil((window.innerHeight - 100) / 76); -}); -const emptyHeight = computed(() => { - return renderSelect.value.length * 76; -}); -const translateY = ref("0px"); // render const search = ref(""); const hideFin = ref(false); @@ -229,43 +202,6 @@ onMounted(async () => { } }); -function handleScroll(e: Event): void { - const target: HTMLElement = e.target; - // 如果 scrollTop 到底部了 - if (target.scrollTop + target.offsetHeight >= target.scrollHeight) { - // 如果 selectedAchievement 的长度小于 itemCount,不进行偏移 - if (renderSelect.value.length <= itemCount.value) { - window.requestAnimationFrame(() => { - start.value = 0; - translateY.value = "0px"; - }); - return; - } - window.requestAnimationFrame(() => { - start.value = renderSelect.value.length - itemCount.value; - translateY.value = `${(renderSelect.value.length - itemCount.value) * 76}px`; - }); - return; - } - const scrollTop = target.scrollTop; - if (selectedSeries.value !== 0 && selectedSeries.value !== 17 && selectedSeries.value !== -1) { - window.requestAnimationFrame(() => { - if (scrollTop < 86.8) { - start.value = 0; - translateY.value = "0px"; - } else { - start.value = Math.floor((scrollTop - 86.8) / 76); - translateY.value = `${scrollTop - 86.8}px`; - } - }); - } else { - window.requestAnimationFrame(() => { - start.value = Math.floor(scrollTop / 76); - translateY.value = `${scrollTop}px`; - }); - } -} - // 渲染选中的成就系列 async function selectSeries(index: number): Promise { // 如果选中的是已经选中的系列,则不进行操作 @@ -471,7 +407,7 @@ async function setAchi( newAchievement.isCompleted = 0; newAchievement.completedTime = ""; } - renderAchievement.value[renderAchievement.value.findIndex((item) => item.id === achievement.id)] = + renderSelect.value[renderSelect.value.findIndex((item) => item.id === achievement.id)] = newAchievement; await setAchiDB(newAchievement); await flushOverview(); @@ -503,7 +439,8 @@ async function getSeriesData(series?: number): Promise - + + + + +