zoukankan      html  css  js  c++  java
  • 小程序筛选页面

    效果图:

    wxml

    <view class="animation-button" bindtap="translate1">
    
      筛选</view>
    
    <van-popup show="{{ show }}" custom-style="height: 90%;" position="top" overlay="{{ overlay }}">
      <view class="popupBox">
        <view class="popupBox_Cancel" bindtap="popupBox_Cancel">取消</view>
        <view class="popupBox_Ok" bindtap="popupBox_Ok">确定</view>
        <van-switch-cell title="仅看直飞" checked="{{ popupBoxChecked }}" bind:change="popupBox_onChange" />
        <view class="popupBox_text">
          <block  wx:for="{{filterArr}}" wx:key="{{item.id}}">
                  <van-tag round color="#f2826a" plain size="medium" data-id="{{item.id}}-{{item.tag}}-{{item.text}}" bindtap="popupBoxClick">{{item.text}}
              <van-icon color="gray" name="close" /></van-tag>
                 <text decode="{{true}}" space="{{true}}">&nbsp;</text>
          </block>
        </view>
      </view>
      <van-tree-select items="{{ items }}"  main-active-index="{{ mainActiveIndex }}" active-id="{{ activeId }}" bind:click-nav="onClickNav" bind:click-item="onClickItem" />
    </van-popup>

     wxss

    .van-tree-select{
      height:500px;
     overflow-y: auto;
    }
    .popupBox{
      height: auto;
    }
    .popupBox_Cancel{
    float: left;
    margin-left: 10rpx;
    margin-top: 10rpx;
    }
    .popupBox_Ok{
    float: right;
    margin-right: 10rpx;
    margin-top: 10rpx;
    color: #007FFF
    }
    
    .popupBox_text{
      height: auto;
       overflow-y: auto;
       padding-bottom: 15rpx;
    }
    .van-tree-select__nav{
      font-size: 33rpx;
    }

    js

    let filterArrTop = [];
    Page({
      data: {
        show: false,
        overlay: false,
        popupBoxChecked: false,
        filterArr: [],
        items: [{
          // 导航名称
          text: '常用筛选',
          children: [{
              text: '不限',
              id: 1,
              tag: 1
            }, {
              text: '12:00-18:00',
              id: 2,
              tag: 1
            },
            {
              text: '06:00-12:00',
              id: 3,
              tag: 1
            },
            {
              text: '虹桥机场',
              id: 100,
              tag: 1
            }
          ]
    
        }, {
          // 导航名称
          text: '舱位',
          children: [{
              text: '经济舱',
              id: 4,
              tag: 4
            },
            {
              text: '超级经济舱',
              id: 5,
              tag: 4
            },
            {
              text: '公务舱',
              id: 6,
              tag: 4
            },
            {
              text: '超值公务舱',
              id: 7,
              tag: 4
            },
            {
              text: '头等舱',
              id: 8,
              tag: 4
            },
            {
              text: '超值头等舱',
              id: 9,
              tag: 4
            }
          ]
    
        }, {
          text: '航班偏好',
          children: [{
              text: '不限',
              id: 10,
              tag: 10
            }, {
              text: '只看有票',
              id: 11,
              tag: 10
            },
            {
              text: '隐藏共享航班',
              id: 12,
              tag: 10
            },
            {
              text: '大机型',
              id: 13,
              tag: 10
            },
            {
              text: '有机上WiFi',
              id: 14,
              tag: 10
            },
            {
              text: '准点率(≥75%)',
              id: 15,
              tag: 10
            },
            {
              text: '不看廉价航空',
              id: 16,
              tag: 10
            }
          ]
    
        }, {
          text: '出发时间',
          children: [{
              text: '不限',
              id: 17,
              tag: 17
            }, {
              text: '00:00-06:00',
              id: 18,
              tag: 17
            },
            {
              text: '06:00-12:00',
              id: 19,
              tag: 17
            },
            {
              text: '12:00-18:00',
              id: 20,
              tag: 17
            },
            {
              text: '18:00-24:00',
              id: 21,
              tag: 17
            }
          ]
        }, {
          text: '航空公司',
          children: [{
              text: '不限',
              id: 22,
              tag: 22
            }, {
              text: '联合航空',
              id: 23,
              tag: 22
            },
            {
              text: '厦门航空',
              id: 24,
              tag: 22
            },
            {
              text: '河北航空',
              id: 25,
              tag: 22
            },
            {
              text: '东航航空',
              id: 26,
              tag: 22
            },
            {
              text: '南方航空',
              id: 27,
              tag: 22
            },
            {
              text: '上海航空',
              id: 28,
              tag: 22
            },
            {
              text: '海南航空',
              id: 29,
              tag: 22
            },
            {
              text: '吉祥航空',
              id: 30,
              tag: 22
            },
            {
              text: '四川航空',
              id: 31,
              tag: 22
            },
            {
              text: '中国国际航空',
              id: 32,
              tag: 22
            },
            {
              text: '深圳航空',
              id: 33,
              tag: 22
            },
            {
              text: '金鹏航空',
              id: 34,
              tag: 22
            }
          ]
        }, {
          text: '中转城市',
          children: [{
              text: '不限',
              id: 35,
              tag: 35
            }, {
              text: '洛阳',
              id: 36,
              tag: 35
            },
            {
              text: '池州',
              id: 37,
              tag: 35
            },
            {
              text: '西安',
              id: 38,
              tag: 35
            },
            {
              text: '天津',
              id: 39,
              tag: 35
            }
          ]
        }]
      },
      onLoad: function() {
        this.setData({
          filterArr: filterArrTop
        })
      },
      translate1: function() {
        this.setData({
          show: true,
          overlay: true
        })
      },
      onClickNav: function(event) {
        this.setData({
          mainActiveIndex: event.detail.index || 0
        });
      },
      onClickItem: function(event) {
        if (event.detail.text == "不限") {
          this.remove(filterArrTop, event.detail.id, true);
        } else {
          //追加当前选项到集合里面
          var obj = {
            id: event.detail.id,
            tag: event.detail.tag,
            text: event.detail.text
          }
          //追加之前先判断集合里面是否已经存在,不存在再追加
          if (!this.exist(filterArrTop, event.detail.id)) {
            filterArrTop.push(obj);
          }
        }
        this.setData({
          activeId: event.detail.id,
          filterArr: filterArrTop
        })
      }, //取消按钮
      popupBox_Cancel: function() {
        this.setData({
          show: false,
          overlay: false
        })
      }, //确定按钮
      popupBox_Ok: function() {
        console.log("这是查询条件的数量:"+filterArrTop.length)
        this.setData({
          show: false,
          overlay: false
        })
      }, //仅看直飞
      popupBox_onChange(event) {
        // 需要手动对 checked 状态进行更新
        this.setData({
          popupBoxChecked: event.detail
        });
      }, //单击已选中的条件项
      popupBoxClick: function(event) {
        let keys = event.currentTarget.dataset.id.split('-'); //id-tag-text  1-1-'经济舱'
        this.remove(filterArrTop, keys[0], false);
    
        this.setData({
          filterArr: filterArrTop
        });
      },
      // 删除方法
      remove: function(list, id, istag) {
        for (var i = 0; i < list.length; i++) {
          if (istag) {
            //根据tag删除
            if (list[i].tag == id) {
              list.splice(i, 1);
              i--;
            }
          } else {
            //根据id删除
            if (list[i].id == id) {
              list.splice(i, 1);
            }
          }
        }
      },
      // 判断是否已经存在
      exist: function(list, id) {
        for (var i = 0; i < list.length; i++) {
          if (list[i].id == id) {
            this.remove(list, id, false);
            return true;
          }
        }
        return false;
      }
    })
  • 相关阅读:
    HDoj-2072-字数
    hibou 主界面自己侧滑的定义
    Android得到一个闹钟在第三方
    UILabel,UITextField 以及UIButton应用
    推荐几个好文章
    半年后,我还在路上。
    NGUI 3.5过程(三)Button button
    OpenGL研究2.0 计算圆
    CF 444A(DZY Loves Physics-低密度脂蛋白诱导子图)
    美日高价进口中国非转基因大豆:不仅吃还做药
  • 原文地址:https://www.cnblogs.com/bin521/p/11322647.html
Copyright © 2011-2022 走看看