溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue仿淘寶訂單狀態(tài)的tab切換效果

發(fā)布時間:2020-09-24 00:45:08 來源:腳本之家 閱讀:254 作者:FXZ_小智 欄目:web開發(fā)

前幾天剛開始使用vue 做項目,然后自己就在項目中摸索寫了一個tab切換的小dome,仿淘寶訂單狀態(tài)的tab切換。

HTML 代碼:

<div class="navigation">
 //這里是通過循環(huán)遍歷出來的數據,你需要根據index的值來判斷你現在點擊的是第幾個tab欄導航,同時在js中寫一個navChange的方法來把index 傳遞到就js中來改變tabIndex(這是在初始化時設置的默認index)的值
  <span v-for="(item, index) in navItems" v-touch:tap=" { event: navChange, params: [index] }">
   <em> {{item.text}} </em>   
  </span>
</div>
 //上面的v-touch:tap 是我們自己封裝的點擊事件指令,跟v-click用法差不多

<div class="content">
 <div class="main">
  //div item中是需要切換的訂單數據,for循環(huán)遍歷的是各種訂單狀態(tài)的集合orderAllItem,然后通過選擇的tab值對應的index來判斷調用orderAllItem中的第幾個數組進行循環(huán)遍歷
  <div class="item" v-for="item in orderAllItem[tabIndex]">
    <div class="title">
     <span class="id">訂單號:{{item.orderId}}</span>
     <span class="status" >{{item.statusName}}</span>
    </div>
    <div class="toys" v-touch:tap="{ event: goToDetail, params: [item.orderId]}">
     <div class="toy" v-for="toy in item.toys">
      <img class="toyImg" :src="toy.image"/>
      <div class="area">
       <em class="name">{{toy.toyName}}</em>
       <span class="age">適合年齡:{{toy.ageRange}}</span
      </div>
     </div>
    </div>
   </div>
  </div>
</div>

JS代碼

var _default = (function(){
 var navs = [
  {
   'text': '全部訂單', 
  },
  {
   'text': '待付款',
  },
  {
   'text': '待收貨',
  },   
  {
   'text': '待歸還',
  },
  {
   'text': '已完成',
  }
 ];
 var orders= [
  //因為沒有合適的數據來源,所以假裝這里就是從后端請求的所有的訂單集合,在下邊data中你需要吧你分類的訂單根據狀態(tài)進行分類。
 ];
 return {
  name: 'index',
  mounted: function(){

  },
  destoryed: function(){

  },
  data: function(){
   //待付款
   var paymentsItem = [];
   //待收貨
   var receiptsItem = [];
   //待歸還
   var returnsItem = [];
   //已完成
   var completesItem = [];

   //把所有不同狀態(tài)的訂單通過if判斷push到相對應的訂單狀態(tài)集合中。
   orders.forEach(function(order){
    if(order.status == 0){
     paymentsItem.push(order);
    };
    if(order.status == 3){
     receiptsItem.push(order);
    };
    if(order.status == 5){
     returnsItem.push(order);
    };
    if(order.status == 13){
     completesItem.push(order);
    }
   });
   //設置一個空數組,把所有狀態(tài)下的訂單集合放到空數組中,從0-5的順序按照你的自己設置的tab切換的內容0-5的順序對應排列,
   var orderAll = [ orders, paymentsItem, receiptsItem, returnsItem, completesItem];
   console.log(orderAll);
   return {
    navItems : navs,
    //全部訂單分類的集合
    orderAllItem : orderAll,
    //設置
    tabIndex : 0,
   };
  },
  methods: {
   navChange: function (e, index){

    this.tabIndex = index;
//    console.log(this.tabIndex)
   }
  }
 }
})();

export default _default;

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI