真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vuejs實(shí)現(xiàn)本地?cái)?shù)據(jù)的篩選分頁(yè)功能思路詳解

今天項(xiàng)目需要一份根據(jù)本地?cái)?shù)據(jù)的篩選分頁(yè)功能,好吧,本來(lái)以為很簡(jiǎn)單,網(wǎng)上搜了搜全是ajax獲取的數(shù)據(jù),這不符合要求啊,修改起來(lái)太費(fèi)力氣,還不如我自己去寫(xiě),不多說(shuō)直接上代碼

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、西峰網(wǎng)站維護(hù)、網(wǎng)站推廣。

效果圖:

vuejs實(shí)現(xiàn)本地?cái)?shù)據(jù)的篩選分頁(yè)功能思路詳解

項(xiàng)目需要:點(diǎn)擊左側(cè)進(jìn)行數(shù)據(jù)篩選,實(shí)現(xiàn)自動(dòng)分頁(yè),自動(dòng)生成頁(yè)數(shù),點(diǎn)擊自動(dòng)跳轉(zhuǎn)

項(xiàng)目代碼:js代碼

var subList=new Vue({
  el:'#main',
  data:{
    // subcontentData為本地?cái)?shù)據(jù)
    subContents:subcontentData,
    // 頁(yè)面需要展現(xiàn)的數(shù)據(jù)
    yemiandata:[],
    // 頁(yè)面展現(xiàn)條數(shù)
    datanum:12,
    // 開(kāi)始椰樹(shù)
    startnum:0,
    // 結(jié)束椰樹(shù)
    endnum:1,
    // 一共多少頁(yè)
    btnnum:0,
    // 生成切換頁(yè)面的按鈕用
    listnum:[],
    // input跳轉(zhuǎn)
    jemp:1,
  },
  methods:{
    filters(num){
      this.subContents=subcontentData;
      // 需要重置防止翻頁(yè)導(dǎo)致startnum和endnum不一致
      this.startnum=0;
      this.endnum=1;
      // 這里是判斷篩選按鈕
      switch(num){
        case 0: $('#sublist li').css({
          background:'#f2f2f2'
        }).eq(0).css({
          background:'#dbe9f0'
        });
          this.fenye();
          break;
        case 1:
          $('#sublist li').css({
            background:'#f2f2f2'
          }).eq(1).css({
            background:'#dbe9f0'
          });
          this.subContents=this.subContents.filter(num=>{
            return String(num['department']).includes('行政');
          });
          this.fenye();
          break;
        case 2:
          $('#sublist li').css({
            background:'#f2f2f2'
          }).eq(2).css({
            background:'#dbe9f0'
          });
          this.subContents=this.subContents.filter(num=>{
            return String(num['department']).includes('報(bào)關(guān)');
          });
          this.fenye();
          break;
        case 3:
          $('#sublist li').css({
            background:'#f2f2f2'
          }).eq(3).css({
            background:'#dbe9f0'
          });
          this.subContents=this.subContents.filter(num=>{
            return String(num['department']).includes('組裝');
          });
          this.fenye();
          break;
        case 4:
          $('#sublist li').css({
            background:'#f2f2f2'
          }).eq(4).css({
            background:'#dbe9f0'
          });
          this.subContents=this.subContents.filter(num=>{
            return String(num['department']).includes('電子');
          });
          this.fenye();
          break;
        case 5:
          $('#sublist li').css({
            background:'#f2f2f2'
          }).eq(5).css({
            background:'#dbe9f0'
          });
          this.subContents=this.subContents.filter(num=>{
            return String(num['department']).includes('工藝');
          });
          this.fenye();
          break;
        case 6:
          $('#sublist li').css({
            background:'#f2f2f2'
          }).eq(6).css({
            background:'#dbe9f0'
          });
          this.subContents=this.subContents.filter(num=>{
            return String(num['department']).includes('財(cái)務(wù)');
          });
          this.fenye();
          break;
        case 7:
          $('#sublist li').css({
            background:'#f2f2f2'
          }).eq(7).css({
            background:'#dbe9f0'
          });
          this.subContents=this.subContents.filter(num=>{
            return String(num['department']).includes('制造');
          });
          this.fenye();
          break;
        case 8:
          $('#sublist li').css({
            background:'#f2f2f2'
          }).eq(8).css({
            background:'#dbe9f0'
          });
          this.subContents=this.subContents.filter(num=>{
            return String(num['department']).includes('銷售');
          });
          this.fenye();
          break;
      }
    },
    // 分野函數(shù)
    fenye(){
      this.yemiandata=this.subContents.slice(this.startnum*this.datanum,this.endnum*this.datanum);
      this.btnnum=Math.ceil(this.subContents.length/this.datanum);
      this.listnum=[];
      for(i=0;i= this.btnnum){
        alert('最后一頁(yè)了');
        return false;
      }
      this.endnum++;
      this.startnum++;
    },
    // 上一頁(yè)函數(shù)
    prevlist(){
      if(this.startnum<= 0){
        alert('第一頁(yè)了');
        return false;
      }
      this.endnum--;
      this.startnum--;
    },
    // 按鈕跳轉(zhuǎn)到制定的頁(yè)面
    jemppage(list){
      this.startnum=list-1;
      this.endnum=list;
    },
    // input跳抓
    goindex(){
      console.log(parseInt(this.jemp));
      if(parseInt(this.jemp)>this.btnnum){alert('請(qǐng)輸入合法參數(shù)');return}
      this.endnum=this.jemp;
      this.startnum=this.jemp-1;
    }
  },
  // 使用一個(gè)監(jiān)聽(tīng)。可以減少很多代碼
  watch:{
    startnum(n,o){
      this.yemiandata=this.subContents.slice(n*this.datanum,(parseInt(n)+1)*this.datanum);
    }
  }
});
  subList.filters(0);
  subList.fenye();
  // 封裝一下底部btn方法 底部自動(dòng)大小
  function btnwidth(){
    $('#fbtn').css({
      width:(subList.listnum.length+2)*40+293+'px',
      marginLeft:-((subList.listnum.length+2)*40+293)/2+'px'
    })
  }
  btnwidth();

下面是html節(jié)點(diǎn)代碼:

  • 部門分類(部門8/8)
  • 行政部
  • 報(bào)關(guān)科
  • 組裝部
  • 電子部
  • 工藝部
  • 財(cái)務(wù)部
  • 制造部
  • 銷售部
告警策略報(bào)表統(tǒng)計(jì)
主機(jī)名稱 
  • 下啦
  • 下啦2
添加
工號(hào) 姓名 部門名稱 性別 籍貫 員工狀態(tài) 入職時(shí)間 離職時(shí)間 離職類別
{{subContent.num}} {{subContent.name}} {{subContent.department}} {{subContent.sex}} {{subContent.addres}} {{subContent.staic}} {{subContent.jointime}} {{subContent.leavetime}} {{subContent.type}}
  • <
  • {{list}}
  • >
  • 共{{btnnum}}頁(yè)
    到第 頁(yè)

說(shuō)下思路:首先我們需要本地一組數(shù)據(jù),通過(guò)vue添加到頁(yè)面中,第二步我們需要做好分頁(yè),那么可以寫(xiě)一個(gè)函數(shù)對(duì)吧,所以有了下面的fenye(命名不規(guī)范,大蝦勿怪)函數(shù),所謂分頁(yè)無(wú)非就是把一個(gè)大數(shù)據(jù)分成每個(gè)小頁(yè)面去展現(xiàn),所以我寫(xiě)了一個(gè)專門用來(lái)展現(xiàn)的數(shù)組,也就是yemiandata(同樣不規(guī)范,我說(shuō)因?yàn)槲易龅木W(wǎng)站內(nèi)容太多了,所以命名已經(jīng)用盡了,你們信么),之后我們需要得到多少個(gè)頁(yè)面,并變成一個(gè)btn按鈕,為了省事,我增加了一個(gè)watch:用來(lái)監(jiān)聽(tīng)startnum(開(kāi)始頁(yè)數(shù))他變化的話就改變展現(xiàn)。

第三步:分頁(yè)的話肯定要有上一頁(yè)下一頁(yè),這個(gè)就簡(jiǎn)單多了下一頁(yè)就是startnum和endnum都增加一,上一頁(yè)反之。

第四步:也要有點(diǎn)擊頁(yè)數(shù)的按鈕進(jìn)行跳轉(zhuǎn),這個(gè)也不難,就是讓按鈕點(diǎn)下去跳轉(zhuǎn)到指定頁(yè),但是去寫(xiě)函數(shù)么?不現(xiàn)實(shí)對(duì)吧,所以我用了一個(gè)數(shù)組listnum存放多少個(gè)按鈕,這里解釋下為什么不用變量用數(shù)組,因?yàn)関ue中v-for不支持變量循環(huán),所以我改用數(shù)組,方便前面html生成節(jié)點(diǎn)。

第五步說(shuō)了需要做篩選,篩選的話就是吧需要展現(xiàn)的素組變成包含制定關(guān)鍵詞的,filters函數(shù),利用js的filter和includes進(jìn)行篩選,做完看看,失敗了,出現(xiàn)了很多undefind,為什么?仔細(xì)看看沒(méi)有重置數(shù)組,導(dǎo)致第二次篩選是在第一次篩選完的基礎(chǔ)篩選。那就重置一下咯,再看看,搞定!

總結(jié)

以上所述是小編給大家介紹的vuejs實(shí)現(xiàn)本地?cái)?shù)據(jù)的篩選分頁(yè)功能思路詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)創(chuàng)新互聯(lián)網(wǎng)站的支持!


新聞名稱:vuejs實(shí)現(xiàn)本地?cái)?shù)據(jù)的篩選分頁(yè)功能思路詳解
標(biāo)題網(wǎng)址:http://weahome.cn/article/ijcjso.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部