自封微信小程序选项卡Tab功能,支持多个滑动切换

1.静态的支持两个切换

	<view  class="option-box">
				<view class="swiper-tab"> 
          <view class="swiper-tab-list {{currentTab==0 ? 'on' : 'off'}}" data-current="0" bindtap="swichNav">互联网医院
          </view> 
          <view class="swiper-tab-list {{currentTab==1 ? 'on' : 'off'}}" data-current="1" bindtap="swichNav">患者便利服务</view> 
        </view > 
        <swiper current="{{currentTab}}" class="swiper-box" duration="300" style="height:{{winHeight - 31}}px;" bindchange="bindChange"> 
            <!-- 互联网医院 -->
                <swiper-item> 
                  <view style="width: 100%;display: flex;justify-content: space-between;" class="grid-box">
                     <view class="line-box" bindtap="gotoYh">
                        <image src="/assets/img/home/sbbx-new.png" mode="heightFix" style="width: 45rpx;height: 45rpx;vertical-align:top;" />
                        <view class="grid-title">上门护理</view>
                     </view>
                     <view class="line-box" bindtap="gotoWebs">
                        <image src="/assets/img/home/ymp-new.png" mode="heightFix" style="width: 45rpx;height: 45rpx;vertical-align:top;" />
                        <view class="grid-title">医名片</view>
                     </view>
                     <view class="line-box" bindtap="gotoIncharge">
                      <image src="/assets/img/home/zyfcz-new.png" mode="heightFix" style="width:  45rpx;height: 45rpx;vertical-align:top;" />
                        <view class="grid-title">住院预交金充值</view>
                     </view>
                     <view class="line-box" bindtap="goConsumeList">
                      <image src="/assets/img/home/zyqd-new.png" mode="heightFix" style="width: 45rpx;height:  45rpx;vertical-align:top;" />
                        <view class="grid-title">住院清单</view>
                     </view>
                     <view class="line-box" bindtap="gotoPayRecord">
                      <image src="/assets/img/home/jfjl-new.png" mode="heightFix" style="width:  45rpx;height:  45rpx;vertical-align:top;" />
                        <view class="grid-title">缴费记录</view>
                     </view>
                     <view class="line-box" bindtap="gotoSbbx" >
                      <image src="/assets/img/home/sbbx-new.png" mode="heightFix" style="width:  45rpx;height:  45rpx;vertical-align:top;" />
                        <view class="grid-title">商保报销</view>
                     </view>
                     <view class="line-box" bindtap="gotoConsultInfo">
                      <image src="/assets/img/home/zxjl-new.png" mode="heightFix" style="width:  45rpx;height: 45rpx;vertical-align:top;" />
                        <view class="grid-title">咨询记录</view>
                     </view>
                     <view class="line-box" bindtap="goRecharge">
                        <image src="/assets/img/home/jzkcz-new.png" mode="heightFix" style="width:  45rpx;height: 45rpx;vertical-align:top;" />
                        <view class="grid-title">就诊卡充值</view>
                     </view>
                  </view>
                 </swiper-item> 
              <!-- 便民服务 -->
			          <swiper-item>
                  <view>
                        患者便利服务
                  </view>
                </swiper-item> 
			    </swiper> 
			</view>

   

.option-box{
  border: 2rpx solid #eae9e9; 
  border-radius: 40rpx;
}
.swiper-tab{ 
  width: 100%; 
  background-color: #f3f3f3;
  border-radius: 40rpx;
  text-align: center; 
  line-height: 80rpx;
} 
.swiper-tab-list{ 
  font-size: 30rpx; 
  display: inline-block; 
  width: 50%; 
  color: #777777; 
} 
.on{ 
  color: #fff;  
  /* border-bottom: 5rpx solid #da7c0c; */
  background-color: #459bde;
  border-radius: 40rpx;
} 
.off{
  background-color: #f3f3f3;
  border-radius: 40rpx;
  border-right: 40rpx;
  color: #a7b6c4;
}
.swiper-box{ 
  display: block; 
  height: 100%;
  width: 100%; 
  overflow: hidden; 
} 
page({
  data(){
      currentTab: 0, 
 
  }
})
 /** 
  * 点击tab切换 
  */ 
// data-current="0" 标签中的自定义属性,可以在e.target.dataset中获取到
 swichNav: function( e ) { 
   console.log(e)
  if( this.data.currentTab === e.target.dataset.current ) { 
   return false; 
  } else { 
    this.setData( { 
      currentTab: e.target.dataset.current 
    }) 
  } 
 },

2.支持滑动的选项卡

  

      <view style="width:100%;display:flex;justify-content:space-between;">
        <view style="width: 75%;display:flex;padding: 0 20rpx;height:70rpx;" class="tuijian">
          <view class="swiper-tabs" wx:for="{{doctorTabList}}" wx:key="item"> 
          <!--  item.num==index? 'ons' : 'offs'-->
            <text class="swiper-tab-lists {{item.num==doctorTab? 'ons' : 'offs'}}"  bindtap="swichNavs" data-name="{{item.num}}" data-id="{{item.Id}}">{{item.Fullname}}
            </text>  
          </view> 
        </view>
        <view style="margin-right: 30rpx;">
          <image src="/assets/img/home/more.png" mode="widthFix" style="width: 38rpx;height: 38rpx;vertical-align:top;margin:7px 10rpx 0 15rpx;" />
          <text  class="more-list" bindtap="moreDoctorList">更多</text>
        </view>
      </view>

  

     <view style="width:100%;display:flex;justify-content:space-between;">
        <view style="width: 75%;display:flex;padding: 0 20rpx;height:70rpx;" class="tuijian">
          <view class="swiper-tabs" wx:for="{{doctorTabList}}" wx:key="item"> 
          <!--  item.num==index? 'ons' : 'offs'-->
            <text class="swiper-tab-lists {{item.num==doctorTab? 'ons' : 'offs'}}"  bindtap="swichNavs" data-name="{{item.num}}" data-id="{{item.Id}}">{{item.Fullname}}
            </text>  
          </view> 
        </view>
        <view style="margin-right: 30rpx;">
          <image src="/assets/img/home/more.png" mode="widthFix" style="width: 38rpx;height: 38rpx;vertical-align:top;margin:7px 10rpx 0 15rpx;" />
          <text  class="more-list" bindtap="moreDoctorList">更多</text>
        </view>
      </view>
      <!-- 儿科 -->
			<view class="swiper_box" wx:if="{{saveDoctorTab==doctorTab}}"> 
          <swiper wx:if="{{dataList != null}}" class="swiper" autoplay="true" interval="3000" circular="true" previous-margin="2px" next-margin="68px" duration="1000" display-multiple-items="2" bindchange="onSwiperChange" current="{{currentTab}}" >
            <swiper-item wx:for="{{dataList}}" wx:key="index">
              <view class="item" :class="{ active: swiperIndex == index || (swiperIndex == index-1) || (swiperIndex == doclistInfo.length - 1 && index == 0)}" bindtap="onClick" data-item="{{item}}">
                <network-image height="290rpx" style="width: 100%;border-radius: 16rpx 16rpx 0 0;" iscircle="{{false}}" src="{{item.HeadImageUrl}}" errsrc="/assets/img/hb-doctor.png" mode="widthFix"></network-image>
                <view class="title">
                  <text class="name">{{item.EmployeeName}}</text>
                </view>
                <view class="desc van-multi-ellipsis--l2">
                  <text class="yishi">{{item.DepartmentText}}</text>
                  <text class="position">{{item.TitleText}}</text>
                </view>
              </view>
            </swiper-item>
        </swiper>
        <view wx:else class="flex-main-center pt20 pb20 color-9">暂无推荐医生</view>
			</view>
    </view>

  

page({
  data(){
   doctorTab:0,
   doctorTabList:[],  //获取所有科室的信息,通过调取接口
   saveDoctorTab:0,
  }
})

/** 
  * 点击tab切换 
  */ 
 swichNavs: function( e ) { 
  console.log(e)
  let tab= e.target.dataset.name  
  let id= e.target.dataset.id
  this.setData( { 
    saveDoctorTab:tab
   }) 
   //点击科室选科室下的所有医生信息
   this.GetEmployeeInfoByDept(id)  
 if( this.data.doctorTab ===tab ) { 
  return false; 
 } else { 
   this.setData( { 
    doctorTab: tab 
   }) 
   console.log(this.data.doctorTab)
 } 
},

  css样式基本同上

代码切换思路同两个最简单的tab切换是一样的思路,只是加了个有些业务内容需要的组件;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值