From 0f06d82a92a20c5297bb06ff7441002f6866cdf0 Mon Sep 17 00:00:00 2001 From: Codex Date: Mon, 14 Sep 2026 10:59:43 +0800 Subject: [PATCH] fix(discover): filter chips use applied state and apply immediately on top-chip tap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Top chip '推荐' now active only when no active filter (was hardcoded) - Top chip '丹阳本地' uses applied.region (was tempRegion) - Top chip '年龄' uses applied age range - New onTopRegionTap applies region filter immediately and refreshes results - Panel onRegionTap preserved for filter-panel multi-select flow --- miniapp/pages/discover/discover.ts | 13 +++++++++++++ miniapp/pages/discover/discover.wxml | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/miniapp/pages/discover/discover.ts b/miniapp/pages/discover/discover.ts index 0cb6f48..0046061 100644 --- a/miniapp/pages/discover/discover.ts +++ b/miniapp/pages/discover/discover.ts @@ -134,6 +134,19 @@ Page({ this.setData({ tempRegion: this.data.tempRegion === val ? '' : val }); }, + /** 顶部"丹阳本地" chip 专用:立即应用 region 筛选并刷新结果 */ + onTopRegionTap(e: WechatMiniprogram.TouchEvent) { + const val = (e.currentTarget.dataset as any).val as string; + const nextRegion = this.data.applied.region === val ? '' : val; + const applied = { ...this.data.applied, region: nextRegion }; + this.setData({ + tempRegion: nextRegion, + applied, + hasActiveFilter: this._hasActiveFilter(applied), + }); + this.fetchDiscover(true); + }, + onMinAgeChange(e: any) { let min = Number((e as any).detail.value); if (min > this.data.tempAgeMax) min = this.data.tempAgeMax; diff --git a/miniapp/pages/discover/discover.wxml b/miniapp/pages/discover/discover.wxml index e11aa8e..713f759 100644 --- a/miniapp/pages/discover/discover.wxml +++ b/miniapp/pages/discover/discover.wxml @@ -4,7 +4,7 @@ 搜索 - 推荐丹阳本地附近年龄学历更多筛选 + 推荐丹阳本地附近年龄学历更多筛选