创建一个小程序的多条件筛选页面通常涉及到使用 WXML 和 WXSS 来构建界面,以及使用 JavaScript 来处理逻辑。以下是一个简单的示例,展示了如何实现一个多条件筛选页面。
1. WXML 文件
<view class="container">
<view class="filter">
<picker mode="selector" range="{{categories}}" bindchange="onCategoryChange">
<view class="picker">
当前选择:{{selectedCategory}}
</view>
</picker>
<picker mode="selector" range="{{prices}}" bindchange="onPriceChange">
<view class="picker">
当前选择:{{selectedPrice}}
</view>
</picker>
<button bindtap="applyFilters">应用筛选</button>
</view>
<view class="results">
<block wx:for="{{filteredItems}}" wx:key="index">
<view class="item">{{item.name}} - {{item.price}}</view>
</block>
</view>
</view>
2. WXSS 文件
.container {
padding: 20px;
}
.filter {
margin-bottom: 20px;
}
.picker {
padding: 10px;
border: 1px solid #ccc;
margin-bottom: 10px;
}
.results {
border-top: 1px solid #ccc;
padding-top: 10px;
}
.item {
padding: 10px;
border-bottom: 1px solid #eee;
}
3. JS 文件
Page({
data: {
categories: ['全部', '电子产品', '服装', '家居'],
prices: ['全部', '0-100', '100-500', '500以上'],
selectedCategory: '全部',
selectedPrice: '全部',
items: [
{ name: '手机', price: 300 },
{ name: '电脑', price: 1500 },
{ name: 'T恤', price: 50 },
{ name: '沙发', price: 800 },
],
filteredItems: []
},
onLoad() {
this.setData({
filteredItems: this.data.items
});
},
onCategoryChange(e) {
const index = e.detail.value;
this.setData({
selectedCategory: this.data.categories[index]
});
},
onPriceChange(e) {
const index = e.detail.value;
this.setData({
selectedPrice: this.data.prices[index]
});
},
applyFilters() {
const { selectedCategory, selectedPrice, items } = this.data;
let filteredItems = items;
if (selectedCategory !== '全部') {
filteredItems = filteredItems.filter(item => item.category === selectedCategory);
}
if (selectedPrice !== '全部') {
const priceRange = selectedPrice.split('-');
const minPrice = priceRange[0] === '0' ? 0 : parseInt(priceRange[0]);
const maxPrice = priceRange[1] ? parseInt(priceRange[1]) : Infinity;
filteredItems = filteredItems.filter(item => item.price >= minPrice && item.price < maxPrice);
}
this.setData({
filteredItems
});
}
});
说明
WXML: 创建了一个包含两个筛选条件(类别和价格)的界面,并显示筛选后的结果。
WXSS: 提供了一些基本的样式,使界面更美观。
JavaScript: 处理筛选逻辑,包括选择类别和价格范围,并根据选择更新显示的结果。
注意事项
你需要根据实际数据结构调整筛选逻辑。
确保在小程序的 app.json 中正确配置页面路径。
你可以根据需要扩展筛选条件,例如添加品牌、评分等。