小程序点击查询弹出多商品和地区分类筛选条件 | 熊阿哥博客

小程序点击查询弹出多商品和地区分类筛选条件

微信   2025-02-16 10:51   66   0  

10299_vi4a_6587.png

index.wxml

<view class="container">
  <button bindtap="showPopup">点击选择分类</button>

  <view wx:if="{{showPopup}}" class="popup-overlay" bindtap="hidePopup"></view>
  
  <view wx:if="{{showPopup}}" class="popup">
    <view class="popup-content">
      <view class="popup-title">请选择商品</view>
      <view class="category-list">
        <block wx:for="{{productCategories}}" wx:key="index">
          <view class="category-item {{selectedProductIndex === index ? 'selected' : ''}}" 
                bindtap="selectProduct" 
                data-index="{{index}}">
            {{item}}
            <text wx:if="{{selectedProductIndex === index}}"> ({{index}})</text>
          </view>
        </block>
      </view>
      <view class="popup-title">请选择地区</view>
      <view class="category-list">
        <block wx:for="{{regionCategories}}" wx:key="index">
          <view class="category-item {{selectedRegionIndex === index ? 'selected' : ''}}" 
                bindtap="selectRegion" 
                data-index="{{index}}">
            {{item}}
            <text wx:if="{{selectedRegionIndex === index}}"> ({{index}})</text>
          </view>
        </block>
      </view>
      
      <button class="query-button" bindtap="executeQuery">查询</button>
    </view>
  </view>
</view>


index.wxss

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  flex-direction: column;
}

.popup-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 998;
}

.popup {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: white;
  z-index: 999;
  box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.1);
  animation: slideUp 0.3s ease-out;
}

.popup-content {
  padding: 20px;
}

.popup-title {
  clear: both;
  font-size: 18px;
  margin-bottom: 10px;
  text-align: center;
}

.category-list {
  margin-bottom: 20px;
}

.category-item {
  float: left;
  width:100px;
  padding: 10px;
  border-bottom: 1px solid #ddd;
}

.category-item.selected {
  background-color: #f0f0f0;
}

.query-button {
  clear: both;
  width: 100%;
  padding: 10px;
  background-color: #007aff;
  color: white;
  border: none;
  border-radius: 5px;
}

@keyframes slideUp {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}


index.js

Page({
  data: {
    showPopup: false,
    productCategories: ['电子产品', '服装', '食品', '家居'],
    regionCategories: ['华北', '华东', '华南', '西部'],
    selectedProductIndex: null,
    selectedRegionIndex: null
  },
  
  showPopup() {
    this.setData({ showPopup: true });
  },
  
  hidePopup() {
    this.setData({ showPopup: false });
  },
  
  selectProduct(e) {
    const index = e.currentTarget.dataset.index;
    this.setData({ selectedProductIndex: index });
  },
  
  selectRegion(e) {
    const index = e.currentTarget.dataset.index;
    this.setData({ selectedRegionIndex: index });
  },
  
  executeQuery() {
    const { selectedProductIndex, selectedRegionIndex, productCategories, regionCategories } = this.data;
    if (selectedProductIndex !== null && selectedRegionIndex !== null) {
      const selectedProduct = productCategories[selectedProductIndex];
      const selectedRegion = regionCategories[selectedRegionIndex];
      wx.showToast({
        title: `查询:${selectedProduct}${selectedRegion}`,
        icon: 'success',
        duration: 2000
      });
      this.hidePopup();
    } else {
      wx.showToast({
        title: '请选择完整的分类',
        icon: 'none',
        duration: 2000
      });
    }
  }
});


这段代码创建了一个简单的微信小程序页面,其中包含一个按钮用于显示弹出层,弹出层中包含商品名称分类列表和地区分类列表。用户可以选择分类,选中的分类会被高亮显示并显示其索引号。当用户点击“查询”按钮时,会显示一个包含所选分类的提示信息。

博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。