fix(achievement): 弹窗队列区分成就与题单奖章的 id 空间
两者的 id 来自不同的表、数值会重叠,却共用同一个队列: - 去重只按 id,队列里有奖章 5 时成就 5 会被当成重复项丢掉 - 弹完奖章后调 markAchievementsRead(奖章id),后端按成就 id 解释, 把同号且未弹过的成就静默标记为已弹,那个奖杯再也不会出现 载荷里本来就有 kind 字段,前端此前完全忽略。现在去重按 kind:id, 标记已读跳过奖章,弹窗标题也按类型区分。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -22,7 +22,7 @@ function playNext() {
|
||||
visible.value = true
|
||||
timer = setTimeout(async () => {
|
||||
visible.value = false
|
||||
await store.markRead(item.id)
|
||||
await store.markRead(item)
|
||||
gapTimer = setTimeout(playNext, 400)
|
||||
}, 3000)
|
||||
}
|
||||
@@ -49,7 +49,9 @@ onUnmounted(() => {
|
||||
>
|
||||
<div class="icon">{{ current.icon }}</div>
|
||||
<div class="body">
|
||||
<div class="label">成就解锁</div>
|
||||
<div class="label">
|
||||
{{ current.kind === "badge" ? "获得奖章" : "成就解锁" }}
|
||||
</div>
|
||||
<div class="name">{{ current.name }}</div>
|
||||
<div class="desc">{{ current.description }}</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user