123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- <ul aria-label="Page navigation" id="pages"></ul>
- <script type="text/javascript">
- let totalPage = "<%= pages.total %>";
- let current ="<%= pages.current %>";
- let pageArray = getPageArray(parseInt(totalPage),2,parseInt(current));
- let options = {
- bootstrapMajorVersion: 3,
- currentPage: "<%= pages.current %>",
- totalPages: "<%= pages.total %>",
- numberOfPages:"<%= pages.total %>",
- size: "normal",
- itemContainerClass: function(type, page, current) {
- let className = 'page-item';
- this.currentPage = parseInt(this.currentPage);
- this.totalPages = parseInt(this.totalPages);
- switch (type) {
- case "prev":
- className = this.currentPage === 1 ? className + ' disabled' : className;
- break;
- case "next":
- className = this.currentPage === this.totalPages ? className + ' disabled' : className;
- break;
- case "page":
- className = page === this.currentPage ? className + ' active' : className;
- break;
- }
- return className;
- },
- itemContentClass: function(type, page, current) {
- return 'page-link';
- },
- itemTexts: function(type, page, current) {
- switch (type) {
- case "first":
- return "«";
- case "prev":
- return "上一页";
- case "next":
- return "下一页";
- case "last":
- return "»";
- case "page":
- return page;
- }
- },
- shouldShowPage: function (type, page, current) {
- let result = true;
- switch (type) {
- case "first":
- result = (current !== 1);
- break;
- case "prev":
- result = false;
- break;
- case "next":
- result = false;
- break;
- case "last":
- result = (current != this.totalPages);
- break;
- case "page":
- result = pageArray.indexOf(page)!=-1;
- break;
- }
- return result;
- },
- pageUrl: function(type, page, current){
- let queryData = JSON.parse('<%- pages.queryData %>');
- // 如果没有附带查询条件则直接返回
- if (Object.keys(queryData).length <= 0) {
- return "?page=" + page;
- }
- // 有其它数据则重新赋值page,然后组合字符串
- queryData.page = page;
- let queryArray = [];
- for(let tmp in queryData) {
- let tempString = tmp + '=' + queryData[tmp];
- queryArray.push(tempString);
- }
- let firstQuery = queryArray.shift();
- let queryString = queryArray.join('&');
- return queryString === '' ? '?' + firstQuery : '?' + firstQuery + '&' + queryString;
- }
- };
- if (options.totalPages > 0) {
- $("#pages").bootstrapPaginator(options);
- }
- function getPageArray(totalPage,offset,current) {
- let showPageArray = [current];
- let pre_fix = current - offset;
- let tai_fix = current + offset;
- if(pre_fix<=0){
- for(let p =1;p <= Math.abs(pre_fix)+1;p++){
- showPageArray.push(current + offset +p)
- }
- }
- if(tai_fix > totalPage){
- for(let t=1;t < (tai_fix - totalPage)+1;t++){
- showPageArray.push(current - offset - t)
- }
- }
- for(let i=1;i<= offset;i++){
- let pre = current - i;
- let next = current + i;
- if(pre > 0){
- showPageArray.push(pre);
- }
- if(next <= totalPage){
- showPageArray.push(next);
- }
- }
- return showPageArray;
- }
- </script>
|