修复首页专区无法切回全部:专区与筛选持久化解耦
zone 此前被纳入 URL/sessionStorage 持久化体系,切回全部专区时 空 query 会回退读取残留的旧 zone 导致专区被弹回。改为纯内存视图 状态,专区可自由切换、不参与筛选持久化。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
fa2d245788
commit
d066cb65a3
@@ -1,9 +1,10 @@
|
|||||||
import type { LocationQuery, LocationQueryRaw } from 'vue-router'
|
import type { LocationQuery, LocationQueryRaw } from 'vue-router'
|
||||||
|
|
||||||
|
// 注意:zone(专区)不纳入筛选持久化体系,作为独立的视图切换状态。
|
||||||
|
// 否则切回“全部专区”时,空 query 会回退读取 sessionStorage 中残留的旧 zone,导致专区被弹回。
|
||||||
export const desktopHomeFilterQueryKeys = [
|
export const desktopHomeFilterQueryKeys = [
|
||||||
'keyword',
|
'keyword',
|
||||||
'sort',
|
'sort',
|
||||||
'zone',
|
|
||||||
'server',
|
'server',
|
||||||
'region',
|
'region',
|
||||||
'login_method',
|
'login_method',
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ function applyRouteQueryToHomeState() {
|
|||||||
filters.minFireLevel = readQueryNumber(query, 'min_fire_level')
|
filters.minFireLevel = readQueryNumber(query, 'min_fire_level')
|
||||||
filters.maxFireLevel = readQueryNumber(query, 'max_fire_level')
|
filters.maxFireLevel = readQueryNumber(query, 'max_fire_level')
|
||||||
sortBy.value = readQueryString(query, 'sort') || 'recommended'
|
sortBy.value = readQueryString(query, 'sort') || 'recommended'
|
||||||
activeZone.value = readQueryString(query, 'zone') || 'all'
|
// zone 不从 query/storage 恢复,由用户实时点击决定,不参与筛选持久化
|
||||||
}
|
}
|
||||||
|
|
||||||
function desktopHomeStateSignature() {
|
function desktopHomeStateSignature() {
|
||||||
@@ -213,7 +213,6 @@ function buildDesktopHomeQueryValues(): Record<string, HomeQueryValue> {
|
|||||||
return {
|
return {
|
||||||
keyword: filters.keyword.trim() || undefined,
|
keyword: filters.keyword.trim() || undefined,
|
||||||
sort: sortBy.value === 'recommended' ? undefined : sortBy.value,
|
sort: sortBy.value === 'recommended' ? undefined : sortBy.value,
|
||||||
zone: activeZone.value === 'all' ? undefined : activeZone.value,
|
|
||||||
server: filters.server,
|
server: filters.server,
|
||||||
region: filters.region,
|
region: filters.region,
|
||||||
login_method: filters.loginMethod,
|
login_method: filters.loginMethod,
|
||||||
|
|||||||
Reference in New Issue
Block a user