filter.js 2.51 KB
// components/reserve/search/filter.js
import util from '../../../utils/util'
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    consumeStr:'',
    hasDisplay:false,
  },
  attached(){
    this.min=0
    this.max=300
  },
  /**
   * 组件的方法列表
   */
  methods: {
    consumeEvent(e){
      console.log('consumeEvent',e)
      let data={
        hasChange:true,
      }
      if(e.detail.type=='once'){
        this.min=e.detail.min
        this.max=e.detail.max
      }else{
        this[e.detail.type]=e.detail.value
      }
      let consumeStr=''
      if(this.min==0){
        if(this.max>this.min){
          consumeStr='¥'+this.max+'以下'
        }
      }else{
        if(this.min<300){
          consumeStr='¥'+this.min+'-'+this.max
        }else{
          consumeStr='¥'+this.min+'以上'
        }
      }
      let obj={
        consumeStr:consumeStr,
      }
      if(e.detail.type!='once'){
        obj.active=''
      }
      this.setData(obj)
    },
    changeVal(e){
      let active=util.attr(e,'val')
      let val=active.split(',')
      this.min=val[0]
      this.max=val[1]
      this.setData({
        active:active,
      })
      this.selectComponent('#consume').changeVal(this.min,this.max);
    },
    close(){
      this.setData({
        hasDisplay:false,
      })
    },
    show(filterParams=null){
      let obj={
        hasDisplay:true,
      }
      if(filterParams){
        if(filterParams.active){
          obj.active=filterParams.active
        }
        this.min=filterParams.min
        this.max=filterParams.max
        obj.consumeStr=filterParams.consumeStr||''
      }
      this.setData(obj)
      if(filterParams){
        setTimeout(()=>{
          this.selectComponent('#consume').changeVal(this.min,this.max);
        },0)
      }else{
        setTimeout(()=>{
          this.selectComponent('#consume').changeVal(0,300);
          this.setData({
            active:'',
            consumeStr:'',
          })
        },0)
      }
    },
    submit(){
      this.triggerEvent('event',{
        type:'set',
        data:{
          consumeStr:this.data.consumeStr||'',
          min:this.min,
          max:this.max,
          active:this.data.active||'',
        },
      })
      this.close()
    },
    reset(){
      this.selectComponent('#consume').changeVal(0,300);
      this.setData({
        active:'',
        consumeStr:'',
      })
      this.triggerEvent('event',{type:'clean'})
      this.close()
    },
  }
})