再次优化筛选
This commit is contained in:
@@ -23,12 +23,17 @@ import {
|
||||
} from '@/features/listings/api/homeConfig'
|
||||
import MobileHomeFilterSheet, { type FilterSection } from './MobileHomeFilterSheet.vue'
|
||||
import {
|
||||
clearStoredHomeQuery,
|
||||
decodeHomeQueryJson,
|
||||
encodeHomeQueryJson,
|
||||
hasHomeQueryValues,
|
||||
isSameQuery,
|
||||
mergeHomeQuery,
|
||||
mobileHomeFilterStorageKey,
|
||||
mobileHomeFilterQueryKeys,
|
||||
readStoredHomeQuery,
|
||||
readQueryString,
|
||||
storeHomeQuery,
|
||||
type HomeQueryValue,
|
||||
} from '@/features/listings/composables/useHomeFilterQuery'
|
||||
import {
|
||||
@@ -384,6 +389,7 @@ function selectZone(zoneKey: string) {
|
||||
}
|
||||
|
||||
function clearFilters() {
|
||||
clearStoredHomeQuery(mobileHomeFilterStorageKey)
|
||||
selectedFilters.value = {}
|
||||
rangeFilters.value = {}
|
||||
searchValue.value = ''
|
||||
@@ -466,7 +472,10 @@ function parseOptionalNumber(value: string) {
|
||||
}
|
||||
|
||||
function applyRouteQueryToMobileState() {
|
||||
const query = route.query
|
||||
const storedQuery = readStoredHomeQuery(mobileHomeFilterStorageKey)
|
||||
const query = hasHomeQueryValues(route.query, mobileHomeFilterQueryKeys)
|
||||
? route.query
|
||||
: storedQuery
|
||||
searchValue.value = readQueryString(query, 'keyword')
|
||||
activeSort.value = readQueryString(query, 'sort') || 'recommended'
|
||||
activeZone.value = readQueryString(query, 'zone') || 'all'
|
||||
@@ -480,6 +489,9 @@ function applyRouteQueryToMobileState() {
|
||||
|
||||
function syncMobileHomeQuery() {
|
||||
const query = mergeHomeQuery(route.query, mobileHomeFilterQueryKeys, buildMobileHomeQueryValues())
|
||||
if (hasHomeQueryValues(query, mobileHomeFilterQueryKeys)) {
|
||||
storeHomeQuery(mobileHomeFilterStorageKey, query)
|
||||
}
|
||||
if (isSameQuery(route.query, query)) return
|
||||
router.replace({ path: route.path, query })
|
||||
}
|
||||
@@ -572,6 +584,8 @@ function chipTone(label: string) {
|
||||
if (label.includes('方便')) return 'time'
|
||||
return 'default'
|
||||
}
|
||||
|
||||
syncMobileHomeQuery()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
Reference in New Issue
Block a user