123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- <style>
- ul.pagination {
- text-align: center!important;
- justify-content: center!important;
- }
- </style>
- <nav aria-label="Page navigation example">
- <ul class="pagination pagination-sm">
- </ul>
- </nav>
- <script type="text/javascript" src="/public/js/bootstrap/bootstrap-paginator.js"></script>
- <script type="text/javascript">
- let options = {
- bootstrapMajorVersion: 4,
- currentPage: "<%= pageInfo.page %>",
- totalPages: "<%= pageInfo.total %>",
- numberOfPages: 5,
- size: "small",
- itemContainerClass: function(type, page, current) {
- let className = 'page-item';
- this.currentPage = parseInt(this.currentPage);
- this.totalPages = parseInt(this.totalPages);
- switch (type) {
- case "first":
- className = this.currentPage === 1 ? className + ' disabled' : className;
- break;
- case "prev":
- className = this.currentPage === 1 ? className + ' disabled' : className;
- break;
- case "next":
- className = this.currentPage === this.totalPages ? className + ' disabled' : className;
- break;
- case "last":
- 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 '<i class="fa fa-caret-left"></i>';
- case "prev":
- return '<i class="fa fa-angle-left"></i>';
- case "next":
- return '<i class="fa fa-angle-right"></i>';
- case "last":
- return '<i class="fa fa-caret-right"></i>';
- case "page":
- return page;
- case "more":
- return '...';
- }
- },
- shouldShowPage: function (type, page, current) {
- let result = true;
- switch (type) {
- case "first":
- break;
- case "prev":
- break;
- case "next":
- break;
- case "last":
- break;
- case "page":
- break;
- case "more":
- result = (page !== this.totalPages);
- break;
- }
- return result;
- },
- pageUrl: function(type, page, current){
- let queryData = JSON.parse('<%- pageInfo.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;
- }
- };
- const pageSizeSelect = <%- pageInfo.pageSizeSelect ? parseInt(pageInfo.pageSizeSelect) : 0 %>;
- if (options.totalPages > 1 || pageSizeSelect) {
- $(".pagination").bootstrapPaginator(options);
- setSelectPageSize(pageSizeSelect);
- } else {
- $(".pagination").hide();
- }
- function setSelectPageSize(psSelect) {
- if (psSelect === 1) {
- let queryData = JSON.parse('<%- pageInfo.queryData %>');
- // 有其它数据则重新赋值page,然后组合字符串
- delete queryData.page;
- delete queryData.pageSize;
- let queryArray = [];
- for(let tmp in queryData) {
- let tempString = tmp + '=' + queryData[tmp];
- queryArray.push(tempString);
- }
- let firstQuery = queryArray.shift();
- let queryString = queryArray.join('&');
- queryString = firstQuery ? (queryString === '' ? '?' + firstQuery : '?' + firstQuery + '&' + queryString) : '';
- const pshtml = '<li class="page-item disabled">\n' +
- ' <span class="page-link" >共' + <%- pageInfo.total_num %> + '条</span>\n' +
- ' </li>\n' +
- ' <li class="page-item">\n' +
- ' <span class="page-link" >\n' +
- ' <div class="btn-group">\n' +
- ' <a type="button" class="text-primary dropdown-toggle" data-toggle="dropdown" id="zhankai" >每页' + <%- pageInfo.pageSize %> + '条</a>\n' +
- ' <div class="dropdown-menu" id="zhankaiSelect" aria-labelledby="zhankai" style="">\n' +
- ' <a class="dropdown-item" data-size="15" href="'+ (queryString === '' ? '?pageSize=15' : queryString + '&pageSize=15') +'">每页15条</a>\n' +
- ' <a class="dropdown-item" data-size="30" href="'+ (queryString === '' ? '?pageSize=30' : queryString + '&pageSize=30') +'">每页30条</a>\n' +
- ' <a class="dropdown-item" data-size="50" href="'+ (queryString === '' ? '?pageSize=50' : queryString + '&pageSize=50') +'">每页50条</a>\n' +
- ' <a class="dropdown-item" data-size="100" href="'+ (queryString === '' ? '?pageSize=100' : queryString + '&pageSize=100') +'">每页100条</a>\n' +
- ' </div>\n' +
- ' </div>\n' +
- ' </span>\n' +
- ' </li>';
- $('.pagination').prepend(pshtml);
- }
- }
- $('#zhankaiSelect a').on('click', function () {
- setLocalCache('account-pageSize', $(this).data('size'));
- })
- </script>
|