mirror of https://github.com/IoTcat/auxpi.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.3 KiB
102 lines
2.3 KiB
package utils |
|
|
|
import ( |
|
"math" |
|
"strconv" |
|
) |
|
|
|
func GetPage(page, limit int) (int, int) { |
|
num := (page - 1) * limit |
|
return num, limit |
|
} |
|
|
|
func GetStringPage(page, limit string) (int, int) { |
|
iPage, _ := strconv.Atoi(page) |
|
iLimit, _ := strconv.Atoi(limit) |
|
|
|
if iLimit == 0 { |
|
iLimit = 20 |
|
} |
|
|
|
num := (iPage - 1) * iLimit |
|
return num, iLimit |
|
} |
|
|
|
func PageHtml(nowPage int, all, pageSize int) string { |
|
if nowPage <= 0 { |
|
nowPage = 1 |
|
} |
|
firstActive := "" |
|
firstDisable := "" |
|
url := "?page=" |
|
pageCount := math.Ceil(float64(all) / float64(pageSize)) |
|
IntPageCount := int(pageCount) |
|
previous := strconv.Itoa(nowPage - 1) |
|
next := strconv.Itoa(nowPage + 1) |
|
firstStatus := "" |
|
if nowPage == 1 { |
|
firstActive = "active" |
|
firstDisable = "disabled" |
|
firstStatus = "true" |
|
} |
|
|
|
//第一页 |
|
pageTpl := `<nav aria-label="..."> |
|
<ul class="pagination"> |
|
<li class="page-item ` + firstDisable + `"> |
|
<a class="page-link" href="` + url + previous + `" tabindex="-1" aria-disabled="` + firstStatus + `">Previous</a> |
|
</li> |
|
<li class="page-item ` + firstActive + `"><a class="page-link" href="?page=1"+ >1</a></li>` |
|
|
|
//省略号 |
|
if nowPage > 5 { |
|
pageTpl += `<li class="page-item disabled"> |
|
<a class="page-link" href="#" tabindex="-1" aria-disabled="true">...</a> |
|
</li>` |
|
} |
|
for i := nowPage - 3; i < nowPage+3; i++ { |
|
active := "" |
|
if i < 2 || i > IntPageCount { |
|
continue |
|
} |
|
|
|
if nowPage == i { |
|
active = "active" |
|
} else { |
|
active = "" |
|
} |
|
|
|
if i == IntPageCount { |
|
break |
|
} |
|
|
|
s := strconv.Itoa(i) |
|
pageTpl += `<li class="page-item ` + active + `"><a class="page-link" href="` + url + s + `">` + s + `</a></li>` |
|
|
|
} |
|
|
|
if nowPage < IntPageCount-3 { |
|
pageTpl += `<li class="page-item disabled"> |
|
<a class="page-link" href="#" tabindex="-1" aria-disabled="true">...</a> |
|
</li>` |
|
} |
|
|
|
lastActive := "" |
|
lastDisable := "false" |
|
if IntPageCount == nowPage { |
|
lastActive = "active" |
|
lastDisable = "disabled" |
|
} |
|
sCount := strconv.Itoa(IntPageCount) |
|
pageTpl += `<li class="page-item ` + lastActive + `"><a class="page-link" href="` + url + sCount + `">` + sCount + `</a></li> |
|
<li class="page-item ` + lastDisable + `"> |
|
<a class="page-link" href="` + url + next + `" tabindex="-1" aria-disabled="` + lastDisable + `">Next</a> |
|
</li> |
|
</ul> |
|
</nav>` |
|
if IntPageCount <= 1 { |
|
pageTpl = "" |
|
} |
|
|
|
return pageTpl |
|
}
|
|
|