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 - + + + + +