小程序自定制从顶部弹出的picker,模拟贝壳找房

1.背景

1.1.要求:顶部有一个tab栏,点开后会存在1级,2级,3级菜单(不论有积极菜单,都要点击到最后一级才会选中)
1.2.要求:对于有些数据第一项需要加不限,有些不需要,根据要求自行添加,点击不限展示原文字,只有点击不限之外的文字选项才会放在tab中展示
 1.3.要求:对于筛选的部分,里边有可以多项选择的,有些不是多项的,须分开
 1.4.要求:有多级的只有点击了最后一级才会把选择的文字添加到tab的对应位置,否则对应的tab位置的文字为上一次选中的
 1.5.要求:每次展开select时,如果之前有选择过的,则直接展示选中的那个展开状态,否则不用

2.思考

2.1 当时做的匆忙,都是写死的,有些是tag_name 和 tag_id ,有些是name 和 id,当时赶项目,所以没做优化,如果可以,和接口人员商议一下进行统一,就可以使用循环,不用谢name多套了。
2.2 对于1中的1.1,1.2,1.3都比较简单。对于1.4和1.5,因为小程序是双向绑定的,只要值变展示就跟着变,如果想着只用一套变量来存储,很难实现,所以使用了两套。
 2.3 多增加了一个locationName对象,把最终的展示文字存放在locationName.name中,其它的oneIndex,twoIndex,threeIndex分别对应第几个最终结果,在点击tab和内层的时候再把最终的值拿出来比对,展示最终选中的状态即可。
 2.4 在滚动这件事情上使用 scroll-view 标签比较好使

3.代码部分

3.1wxml



  
    
    
      {
  {location.locationName.name?location.locationName.name:"位置"}}
      
    

    
    
      
        {
  {priceIndex>0?pageConfig.price[priceIndex].tag_name:"价格"}}
      
      
    
    
    
      
        {
  {roomtagIndex>0?pageConfig.roomtag[roomtagIndex].tag_name:"户型"}}
      
      
    
    
    
      筛选
      
    
    
    

  





  
  
    
    
      
        
          
            {
  {item.tag_name}}
          
        

        
        
          
            {
  {item.tag_name}}
          
        
        
          
            {
  {item.tag_name}}
          
        
      
    
    
    
      
        {
  {item.tag_name}}
      
    
    
    
      
        {
  {item.tag_name}}
      
    
    
    
      
        {
  {item.name}}
      
    
    
    
      
        {
  {item.name}}
      
    
  

  
  
    
      {
  {item.tag_name}}
    
  

  
  
    

你可能感兴趣的:(微信小程序,picker)