vue el-table 分页记忆js代码

最下面有一种最快的解决办法!!!

初始化定义几个变量

pageNowone:1,
pageTotalone:0,
pageNowtwo:1

在table上定义一个@selection-change="selectone"

methods:{

selectone(selection){
      this.selectObjone=selection;
    },

}

在el-pagination上定义一个@current-change="pageJumpone"

pageJumpone: function(a){
      this.tableone=this.selectObjone;
      this.selectObjone.forEach((val)=>{
        this.selectEndone.push(val);
      });
      
      //数组对象去重
      let arr=[];
      for(let i=0;i<this.selectEndone.length;i++){
      let flag = true;
      for(let j=0;j<arr.length;j++){
        if(this.selectEndone[i].taskId == arr[j].taskId){
         flag = false;
        };
      };
      if(flag){
       arr.push(this.selectEndone[i]);
      };
      };
      this.selectEndone=arr;
        
        console.log(this.tableDataone);
        console.log(this.selectEndone);
        console.log(this.tableone);
        //console.log(this.selectEnd);
        var des=[];
        for(var i=0;i<this.tableDataone.length;i++){
            for(var j=0;j<this.selectEndone.length;j++){
                if(this.tableDataone[i].taskId==this.selectEndone[j].taskId){
                    des.push(this.selectEndone[j]);
                }
            }
        }
        console.log(des);
        //console.log(this.$options.methods.deepCopy());
        //深拷贝
        var lan = JSON.parse(JSON.stringify(des));
        var wish=[];
        for(var j=0;j<lan.length;j++){
            if(JSON.stringify(this.tableone).indexOf(JSON.stringify(lan[j]))==-1){
                //console.log(lan[j]);
                wish.push(lan[j]);
            }
        }
        console.log(wish);
        
        for(var i=0;i<this.selectEndone.length;i++){
            for(var j=0;j<wish.length;j++){
                if(this.selectEndone[i]!=undefined){
                    if(this.selectEndone[i].taskId==wish[j].taskId){
                        var index = this.selectEndone.indexOf(this.selectEndone[i]);
                        this.selectEndone.splice(index, 1);
                    }
                }
            }
        }
        
        
      this.pageNowone=a;
      var that=this;
      this.$http.post(that.dataUrl+'/attendant/tasks', {
      "pageNum":a,
      }).then(function(res) {
        //that.dataHandle(res.data.data.data);
        if(res.data.data.data==null){
            that.tableDataone=[];
        }else{
            that.tableDataone=res.data.data.data;
        }
      }).catch(function(err) {
        if (err.response) {
          console.log(err.response);
        }
      })
      //记忆已选择状态
      setTimeout(()=>{
        
        if(this.selectEndone.length!=0){
          for(let i=0;i<this.tableDataone.length;i++){
            for(let j=0;j<this.selectEndone.length;j++){
              if(this.tableDataone[i].taskId==this.selectEndone[j].taskId){
                this.$refs.tableone.toggleRowSelection(this.tableDataone[i]);
              }
            }
          }
        }
      },300);
      
    }

 

这个办法就是elementui自带的,嘤嘤嘤,用这个吧

最快速解决办法:设置reserve-selection="true"   (需指定 row-key) 在el-table中加上row-key="..."下面porps里面的主键如id  

(神不神奇!<[--]>!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值