feat(home): 新增AWM子弹区间筛选,重排快速筛选为两列布局(租金移出高级区,登录方式固定右列)

This commit is contained in:
yml2213
2026-08-15 11:56:06 +08:00
parent 7cd6699b84
commit d75ebe4192
7 changed files with 153 additions and 48 deletions
@@ -9,6 +9,16 @@ export const coinRangeOptions = [
{ label: '300以上', min: 300, max: undefined },
]
/** AWM 子弹数量区间(与移动端档位保持一致) */
export const awmRangeOptions = [
{ label: '全部', min: undefined, max: undefined },
{ label: '0-20', min: 0, max: 20 },
{ label: '20-50', min: 20, max: 50 },
{ label: '50-100', min: 50, max: 100 },
{ label: '100-200', min: 100, max: 200 },
{ label: '200以上', min: 200, max: undefined },
]
export const ratioRangeOptions = [
{ label: '全部', min: undefined, max: undefined },
{ label: '≤30', min: undefined, max: 30 },
@@ -26,6 +26,8 @@ export const desktopHomeFilterQueryKeys = [
'max_total',
'min_fire_level',
'max_fire_level',
'resource_awmAmmo_min',
'resource_awmAmmo_max',
] as const
export const mobileHomeFilterQueryKeys = ['keyword', 'sort', 'zone', 'filters', 'ranges'] as const
@@ -52,6 +52,9 @@ export interface HomeFilters {
maxTotal: number | undefined
minFireLevel: number | undefined
maxFireLevel: number | undefined
/** AWM 子弹数量区间 */
minAwmAmmo: number | undefined
maxAwmAmmo: number | undefined
}
export interface SkinFilterGroup {
@@ -86,6 +89,8 @@ export function useHomeFilters(
maxTotal: undefined,
minFireLevel: undefined,
maxFireLevel: undefined,
minAwmAmmo: undefined,
maxAwmAmmo: undefined,
})
const activeFilterPopover = ref<FilterPopoverKey | ''>('')
@@ -145,7 +150,6 @@ export function useHomeFilters(
let count = 0
if (filters.region.length) count += 1
if (filters.rank.length) count += 1
if (filters.minPrice !== undefined || filters.maxPrice !== undefined) count += 1
if (filters.minDeposit !== undefined || filters.maxDeposit !== undefined) count += 1
if (filters.minTotal !== undefined || filters.maxTotal !== undefined) count += 1
if (filters.minFireLevel !== undefined || filters.maxFireLevel !== undefined) count += 1
@@ -178,6 +182,8 @@ export function useHomeFilters(
filters.maxTotal = undefined
filters.minFireLevel = undefined
filters.maxFireLevel = undefined
filters.minAwmAmmo = undefined
filters.maxAwmAmmo = undefined
}
function setStringFilter(key: StringFilterKey, value: string | string[]) {
@@ -230,6 +236,11 @@ export function useHomeFilters(
filters.maxFireLevel = max
}
function setAwmAmmoRange(min: number | undefined, max: number | undefined) {
filters.minAwmAmmo = min
filters.maxAwmAmmo = max
}
/** 区间 chip:再点同一档则清空 */
function toggleRange(
currentMin: number | undefined,
@@ -277,6 +288,7 @@ export function useHomeFilters(
setDepositRange,
setTotalRange,
setFireLevelRange,
setAwmAmmoRange,
toggleRange,
setFilterPopover,
closeFilterPopover,
@@ -50,6 +50,8 @@ export function useListingQuery(
max_total: filters.maxTotal,
min_fire_level: filters.minFireLevel,
max_fire_level: filters.maxFireLevel,
resource_awmAmmo_min: filters.minAwmAmmo,
resource_awmAmmo_max: filters.maxAwmAmmo,
}
}