自定义分页

85 阅读1分钟
getPages() {
    this.pager = [];
    if (this.totalOffset <= 10) {  // 总页数小于等于10
         for (let i = 0; i < this.totalOffset; i++) {
               this.pager.push(i + 1);
         }
         return;
     }
     // 总页数大于10页
     // 当前页在前5页
     if (this.offset <= 5 && this.offset >= 1) {
          for (let i = 0; i < 8; i++) {
               this.pager.push(i + 1);
          }
               this.pager.push('...');
               this.pager.push(this.totalOffset);
               return;
       }
     // 当前页是后5页
     if (this.offset <= this.totalOffset && this.offset >= this.totalOffset - 4) {
          this.pager.push(1);
          this.pager.push('...');
          for (let i = this.totalOffset - 7; i <= this.totalOffset; i++) {
                this.pager.push(i);
           }
                return;
      }
     // 不是前5页 也不是后5页  在中间   [1,...,17,18,19,20,21,22,23,...,60]
     this.pager.push(1);
     this.pager.push('...');
          for (let i = this.offset - 3; i <= this.offset + 3; i++) {
                this.pager.push(i);
          }
                this.pager.push('...');
                this.pager.push(this.totalOffset);
 },