日志分页增加最后一页last跟总记录数count显示,同配置分页

This commit is contained in:
zhanghongqing
2018-11-07 10:05:50 +08:00
parent c23a376b31
commit 704653e204
35 changed files with 202 additions and 47 deletions

View File

@@ -34,7 +34,7 @@ public class PageLog<T> {
private long count;// 总记录数,设置为“-1”表示不查询总数
private int first;// 首页索引
// private int last;// 尾页索引
private int last;// 尾页索引
private int prev;// 上一页索引
private int next;// 下一页索引
@@ -42,8 +42,8 @@ public class PageLog<T> {
private boolean firstPage;//是否是第一页
private boolean lastPage;//是否是最后一页
// private int length = 8;// 显示页面长度
// private int slider = 1;// 前后显示页面长度
private int length = 8;// 显示页面长度
private int slider = 1;// 前后显示页面长度
private List<T> list = new ArrayList<T>();
@@ -266,7 +266,49 @@ public class PageLog<T> {
//1
this.first = 1;
// 控制接口是否启用count last
if (this.count!=0) {
this.last = (int)(count / (this.pageSize < 1 ? 20 : this.pageSize) + first - 1);
if (this.count % this.pageSize != 0 || this.last == 0) {
this.last++;
}
if (this.last < this.first) {
this.last = this.first;
}
if (this.pageNo <= 1) {
this.pageNo = this.first;
this.firstPage=true;
}
if (this.pageNo >= this.last) {
this.pageNo = this.last;
this.lastPage=true;
}
if (this.pageNo < this.last - 1) {
this.next = this.pageNo + 1;
} else {
this.next = this.last;
}
if (this.pageNo > 1) {
this.prev = this.pageNo - 1;
} else {
this.prev = this.first;
}
//2
if (this.pageNo < this.first) {// 如果当前页小于首页
this.pageNo = this.first;
}
if (this.pageNo > this.last) {// 如果当前页大于尾页
this.pageNo = this.last;
}
}else {
//首页
if (this.pageNo <= 1) {
this.pageNo = this.first;
@@ -293,7 +335,7 @@ public class PageLog<T> {
if (this.pageNo < this.first) {// 如果当前页小于首页
this.pageNo = this.first;
}
}
}
@@ -303,14 +345,92 @@ public class PageLog<T> {
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
// 控制接口返回count last 切换分页
if (this.count!=0) {
if(list != null && list.isEmpty()) {
return "<div class=\"none-data\"><i class=\"fa fa-warning font-red-flamingo\"></i>&nbsp;&nbsp;"+requestContext.getMessage("noneData")+"</div>";
}
if (pageNo == first) {// 如果是首页
sb.append("<li class=\"disabled\"><a href=\"javascript:\">&#171; "+requestContext.getMessage("previousPage")+"</a></li>\n");
} else {
sb.append("<li><a href=\"javascript:\" onclick=\""+funcName+"("+prev+","+pageSize+",'"+funcParam+"');\">&#171; "+requestContext.getMessage("previousPage")+"</a></li>\n");
}
int begin = pageNo - (length / 2);
if (begin < first) {
begin = first;
}
int end = begin + length - 1;
if (end >= last) {
end = last;
begin = end - length + 1;
if (begin < first) {
begin = first;
}
}
if (begin > first) {
int i = 0;
for (i = first; i < first + slider && i < begin; i++) {
sb.append("<li><a href=\"javascript:\" onclick=\""+funcName+"("+i+","+pageSize+",'"+funcParam+"');\">"
+ (i + 1 - first) + "</a></li>\n");
}
if (i < begin) {
sb.append("<li class=\"disabled\"><a href=\"javascript:\">...</a></li>\n");
}
}
for (int i = begin; i <= end; i++) {
if (i == pageNo) {
sb.append("<li class=\"active\"><a href=\"javascript:\">" + (i + 1 - first)
+ "</a></li>\n");
} else {
sb.append("<li><a href=\"javascript:\" onclick=\""+funcName+"("+i+","+pageSize+",'"+funcParam+"');\">"
+ (i + 1 - first) + "</a></li>\n");
}
}
if (last - end > slider) {
sb.append("<li class=\"disabled\"><a href=\"javascript:\">...</a></li>\n");
end = last - slider;
}
for (int i = end + 1; i <= last; i++) {
sb.append("<li><a href=\"javascript:\" onclick=\""+funcName+"("+i+","+pageSize+",'"+funcParam+"');\">"
+ (i + 1 - first) + "</a></li>\n");
}
if (pageNo == last) {
sb.append("<li class=\"disabled\"><a href=\"javascript:\">"+requestContext.getMessage("nextPage")+" &#187;</a></li>\n");
} else {
sb.append("<li><a href=\"javascript:\" onclick=\""+funcName+"("+next+","+pageSize+",'"+funcParam+"');\">"
+ ""+requestContext.getMessage("nextPage")+" &#187;</a></li>\n");
}
sb.append("<li class=\"disabled controls\"><a href=\"javascript:\">"+requestContext.getMessage("current")+" ");
sb.append("<input type=\"text\" value=\""+pageNo+"\" onkeypress=\"var e=window.event||this;var c=e.keyCode||e.which;if(c==13)");
sb.append(funcName+"(this.value,"+pageSize+",'"+funcParam+"');\" onclick=\"this.select();\"/> / ");
sb.append("<input type=\"text\" value=\""+last+"\" onkeypress=\"var e=window.event||this;var c=e.keyCode||e.which;if(c==13)");
sb.append(funcName+"("+pageNo+",this.value,'"+funcParam+"');\" onclick=\"this.select();\"/> "+requestContext.getMessage("page")+"");
sb.append(""+requestContext.getMessage("total")+" <span id='showTotalCount'>" + count + "</span> "+requestContext.getMessage("count")+""+(message!=null?message:"")+"</a></li>\n");
sb.insert(0,"<ul>\n").append("</ul>\n");
sb.append("<div style=\"clear:both;\"></div>");
// sb.insert(0,"<div class=\"page\">\n").append("</div>\n");
}else {
if(list != null && list.isEmpty()&&pageNo<=1) {
return "<div class=\"none-data\"><i class=\"fa fa-warning font-red-flamingo\"></i>&nbsp;&nbsp;"+requestContext.getMessage("noneData")+"</div>";
}
StringBuilder sb = new StringBuilder();
sb.append("<li><a href=\"javascript:\" onclick=\""+funcName+"("+first+","+pageSize+",'"+funcParam+"');\">"+requestContext.getMessage("firstPage")+"</a></li>\n");
if (pageNo == first) {// 如果是首页
@@ -335,7 +455,7 @@ public class PageLog<T> {
sb.insert(0,"<ul>\n").append("</ul>\n");
sb.append("<div style=\"clear:both;\"></div>");
}
return sb.toString();
}
@@ -413,7 +533,21 @@ public class PageLog<T> {
return first;
}
/**
* 尾页索引
* @return
*/
public int getLast() {
return last;
}
/**
* 获取页面总数
* @return getLast();
*/
@JsonIgnore
public int getTotalPage() {
return getLast();
}
/**
* 是否为第一页
* @return