page.ejs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <!--<div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">-->
  2. <!--<div class="btn-group mr-2" role="group" aria-label="First group">-->
  3. <!--<button type="button" class="btn btn-light" disabled title="首页"><i class="fa fa-caret-left"></i></button>-->
  4. <!--<button type="button" class="btn btn-light" disabled title="上一页"><i class="fa fa-angle-left"></i></button>-->
  5. <!--</div>-->
  6. <!--<div class="btn-group mr-2" role="group" aria-label="Second group">-->
  7. <!--<button type="button" class="btn btn-light active">1</button>-->
  8. <!--<button type="button" class="btn btn-light">2</button>-->
  9. <!--<button type="button" class="btn btn-light">3</button>-->
  10. <!--<button type="button" class="btn btn-light">4</button>-->
  11. <!--<button type="button" class="btn btn-light">5</button>-->
  12. <!--<button type="button" class="btn btn-light" title="更多">...</button>-->
  13. <!--</div>-->
  14. <!--<div class="btn-group" role="group" aria-label="Third group">-->
  15. <!--<button type="button" class="btn btn-light" title="下一页"><i class="fa fa-angle-right"></i></button>-->
  16. <!--<button type="button" class="btn btn-light" title="尾页"><i class="fa fa-caret-right"></i></button>-->
  17. <!--</div>-->
  18. <!--</div>-->
  19. <nav aria-label="Page navigation example">
  20. <ul class="pagination"></ul>
  21. </nav>
  22. <script type="text/javascript" src="/public/js/bootstrap/bootstrap-paginator.js"></script>
  23. <script type="text/javascript">
  24. let options = {
  25. bootstrapMajorVersion: 4,
  26. currentPage: "<%= pageInfo.page %>",
  27. totalPages: "<%= pageInfo.total %>",
  28. numberOfPages: 5,
  29. size: "normal",
  30. itemContainerClass: function(type, page, current) {
  31. let className = 'page-item';
  32. this.currentPage = parseInt(this.currentPage);
  33. this.totalPages = parseInt(this.totalPages);
  34. switch (type) {
  35. case "first":
  36. className = this.currentPage === 1 ? className + ' disabled' : className;
  37. break;
  38. case "prev":
  39. className = this.currentPage === 1 ? className + ' disabled' : className;
  40. break;
  41. case "next":
  42. className = this.currentPage === this.totalPages ? className + ' disabled' : className;
  43. break;
  44. case "last":
  45. className = this.currentPage === this.totalPages ? className + ' disabled' : className;
  46. break;
  47. case "page":
  48. className = page === this.currentPage ? className + ' active' : className;
  49. break;
  50. }
  51. return className;
  52. },
  53. itemContentClass: function(type, page, current) {
  54. return 'page-link';
  55. },
  56. itemTexts: function(type, page, current) {
  57. switch (type) {
  58. case "first":
  59. return '<i class="fa fa-caret-left"></i>';
  60. case "prev":
  61. return '<i class="fa fa-angle-left"></i>';
  62. case "next":
  63. return '<i class="fa fa-angle-right"></i>';
  64. case "last":
  65. return '<i class="fa fa-caret-right"></i>';
  66. case "page":
  67. return page;
  68. case "more":
  69. return '...';
  70. }
  71. },
  72. shouldShowPage: function (type, page, current) {
  73. let result = true;
  74. switch (type) {
  75. case "first":
  76. break;
  77. case "prev":
  78. break;
  79. case "next":
  80. break;
  81. case "last":
  82. break;
  83. case "page":
  84. break;
  85. case "more":
  86. result = (page !== this.totalPages);
  87. break;
  88. }
  89. return result;
  90. },
  91. pageUrl: function(type, page, current){
  92. let queryData = JSON.parse('<%- pageInfo.queryData %>');
  93. // 如果没有附带查询条件则直接返回
  94. if (Object.keys(queryData).length <= 0) {
  95. return "?page=" + page;
  96. }
  97. // 有其它数据则重新赋值page,然后组合字符串
  98. queryData.page = page;
  99. let queryArray = [];
  100. for(let tmp in queryData) {
  101. let tempString = tmp + '=' + queryData[tmp];
  102. queryArray.push(tempString);
  103. }
  104. let firstQuery = queryArray.shift();
  105. let queryString = queryArray.join('&');
  106. return queryString === '' ? '?' + firstQuery : '?' + firstQuery + '&' + queryString;
  107. }
  108. };
  109. if (options.totalPages > 1) {
  110. $(".pagination").bootstrapPaginator(options);
  111. } else {
  112. $(".pagination").hide();
  113. }
  114. </script>