import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; @Component({ selector: 'app-page', templateUrl: './page.component.html', styleUrls: ['./page.component.less'] }) export class PageComponent implements OnInit { @Input() pageData; @Output() fromChild = new EventEmitter(); curPage; maxPage; page = { list: [], }; constructor() { } ngOnInit() { if (!this.pageData.size) { this.pageData.size = 10; } if (!this.pageData.total) { this.pageData.total = 0; } this.pageList(); this.update(1, this.pageData.size); } update(num, size) { num = parseInt(num); if (num < 1 || (num > this.maxPage && this.maxPage !== 0)) { return; } this.pageData.num = num; this.fromChild.emit({ num: num }); this.pageList(); } pageList() { this.maxPage = this.maxPage = Math.ceil(this.pageData.total / this.pageData.size); const tempArray = []; for (let i = 1; i <= parseInt(this.maxPage); i++) { if (this.pageData.num - i >= 3 && i !== 1) {// 只显示当前页前三个页码 tempArray.push(0); i = this.pageData.num - 3; // 将页码跳到没有省略的页码 } else { if (i >= this.pageData.num + 3 && i !== this.maxPage) { // 只显示当前页的后两个页码 tempArray.push(0); i = this.maxPage; // 将页码跳到最后一页 } tempArray.push(i); } } this.page.list = tempArray; }; }