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) ; } } ;