let pagehelper = {
goto_page: function (page) {
let pmax = parseInt($("#pmax").val())
if (page < 1 || page > pmax) {
layer.msg('无效页码');
return;
}
$("#p").val(page)
console.log('跳转到第' + page + '页');
pagehelper.updateButtons();
cms.reload();
},
goto_previous: function () {
let p = parseInt($("#p").val())
if (p > 1) {
pagehelper.goto_page(p - 1);
}
},
goto_next: function () {
let p = parseInt($("#p").val())
let pmax = parseInt($("#pmax").val())
if (p < pmax) {
pagehelper.goto_page(p + 1);
}
},
generatePageNumbers: function (currentPage, totalPages) {
let minPage = Math.max(1, currentPage - 2);
let maxPage = Math.min(totalPages, currentPage + 2);
if (currentPage <= 3 && totalPages > 5) {
maxPage = Math.min(totalPages, 5);
} else if (currentPage >= totalPages - 2 && totalPages > 5) {
minPage = Math.max(1, totalPages - 4);
}
let pageNumbers = [];
for (let i = minPage; i <= maxPage; i++) {
pageNumbers.push(i);
}
return pageNumbers;
},
updateButtons: function () {
let p = parseInt($("#p").val())
let pmax = parseInt($("#pmax").val())
var nav = document.getElementById('nav');
nav.innerHTML = '';
var prevButton = document.createElement('button');
prevButton.onclick = function () {
pagehelper.goto_previous();
};
prevButton.textContent = '上一页';
if (p == 1) {
prevButton.style.display = 'none';
}
let pages = pagehelper.generatePageNumbers(p, pmax);
var ul = document.createElement('ul');
for (var i = 0; i < pages.length; i++) {
var pageNum = pages[i];
var li = document.createElement('li');
var pageButton = document.createElement('button');
pageButton.onclick = function (page) {
return function () {
pagehelper.goto_page(page);
};
}(pageNum);
pageButton.textContent = pageNum;
if (pageNum == p) {
pageButton.disabled = true;
}
li.appendChild(pageButton);
ul.appendChild(li);
}
var input = document.createElement('input');
input.type = 'number';
input.name = 'manual';
input.placeholder = '最大页' + pmax;
input.onkeydown = function (event) {
if (event.keyCode === 13) {
let toPage = parseInt(this.value, 10);
if (!isNaN(toPage) && toPage > 0 && toPage <= pmax) {
pagehelper.goto_page(toPage);
} else {
pagehelper.goto_page(pmax);
}
}
};
var nextButton = document.createElement('button');
nextButton.onclick = function () {
pagehelper.goto_next();
};
nextButton.textContent = '下一页';
nextButton.style.display = p < pmax ? '' : 'none';
nav.appendChild(prevButton);
nav.appendChild(ul);
nav.appendChild(input);
nav.appendChild(nextButton);
}
};