fix(discover): filter chips use applied state and apply immediately on top-chip tap
- 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
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<view class="search-bar">
|
||||
<view class="search-input"><text class="search-label">搜索</text><input class="search-field" placeholder="姓名、职业或地区" placeholder-class="search-placeholder" value="{{keywordInput}}" bindinput="onKeywordInput" confirm-type="search" bindconfirm="onSearch" /></view>
|
||||
</view>
|
||||
<scroll-view scroll-x class="filter-scroll discover-filter-chips"><view class="filter-chips"><view class="filter-chip active" bindtap="onResetFilter">推荐</view><view class="filter-chip {{tempRegion === '丹阳' ? 'active' : ''}}" bindtap="onRegionTap" data-val="丹阳">丹阳本地</view><view class="filter-chip" bindtap="toggleFilter">附近</view><view class="filter-chip {{hasActiveFilter ? 'active' : ''}}" bindtap="toggleFilter">年龄</view><view class="filter-chip" bindtap="toggleFilter">学历</view><view class="filter-chip" bindtap="toggleFilter">更多筛选</view></view></scroll-view>
|
||||
<scroll-view scroll-x class="filter-scroll discover-filter-chips"><view class="filter-chips"><view class="filter-chip {{!hasActiveFilter ? 'active' : ''}}" bindtap="onResetFilter">推荐</view><view class="filter-chip {{applied.region === '丹阳' ? 'active' : ''}}" bindtap="onTopRegionTap" data-val="丹阳">丹阳本地</view><view class="filter-chip" bindtap="toggleFilter">附近</view><view class="filter-chip {{applied.ageMin !== 18 || applied.ageMax !== 60 ? 'active' : ''}}" bindtap="toggleFilter">年龄</view><view class="filter-chip" bindtap="toggleFilter">学历</view><view class="filter-chip {{hasActiveFilter ? 'active' : ''}}" bindtap="toggleFilter">更多筛选</view></view></scroll-view>
|
||||
</view>
|
||||
|
||||
<view wx:if="{{showFilter}}" class="filter-panel">
|
||||
|
||||
Reference in New Issue
Block a user