mirror of https://github.com/midoks/mdserver-web
pull/109/head
parent
e2e88df295
commit
b92be80c36
@ -1,207 +1,222 @@ |
|||||||
#coding: utf-8 |
# coding: utf-8 |
||||||
# +------------------------------------------------------------------- |
|
||||||
# | 宝塔Linux面板 |
import math |
||||||
# +------------------------------------------------------------------- |
import string |
||||||
# | Copyright (c) 2015-2016 宝塔软件(http://bt.cn) All rights reserved. |
import public |
||||||
# +------------------------------------------------------------------- |
|
||||||
# | Author: 黄文良 <2879625666@qq.com> |
|
||||||
# +------------------------------------------------------------------- |
|
||||||
import math,string,public |
|
||||||
|
|
||||||
class Page(): |
class Page(): |
||||||
#-------------------------- |
#-------------------------- |
||||||
# 分页类 - JS回调版 |
# 分页类 - JS回调版 |
||||||
#-------------------------- |
#-------------------------- |
||||||
__PREV = '上一页' |
__PREV = '上一页' |
||||||
__NEXT = '下一页' |
__NEXT = '下一页' |
||||||
__START = '首页' |
__START = '首页' |
||||||
__END = '尾页' |
__END = '尾页' |
||||||
__COUNT_START = '共' |
__COUNT_START = '共' |
||||||
__COUNT_END = '条数据' |
__COUNT_END = '条数据' |
||||||
__FO = '从' |
__FO = '从' |
||||||
__LINE = '条' |
__LINE = '条' |
||||||
__LIST_NUM = 4 |
__LIST_NUM = 4 |
||||||
SHIFT = None #偏移量 |
SHIFT = None # 偏移量 |
||||||
ROW = None #每页行数 |
ROW = None # 每页行数 |
||||||
__C_PAGE = None #当前页 |
__C_PAGE = None # 当前页 |
||||||
__COUNT_PAGE = None #总页数 |
__COUNT_PAGE = None # 总页数 |
||||||
__COUNT_ROW = None #总行数 |
__COUNT_ROW = None # 总行数 |
||||||
__URI = None #URI |
__URI = None # URI |
||||||
__RTURN_JS = False #是否返回JS回调 |
__RTURN_JS = False # 是否返回JS回调 |
||||||
__START_NUM = None #起始行 |
__START_NUM = None # 起始行 |
||||||
__END_NUM = None #结束行 |
__END_NUM = None # 结束行 |
||||||
|
|
||||||
def __init__(self): |
def __init__(self): |
||||||
tmp = public.getMsg('PAGE'); |
tmp = public.getMsg('PAGE') |
||||||
if tmp: |
if tmp: |
||||||
self.__PREV = tmp['PREV']; |
self.__PREV = tmp['PREV'] |
||||||
self.__NEXT = tmp['NEXT']; |
self.__NEXT = tmp['NEXT'] |
||||||
self.__START = tmp['START']; |
self.__START = tmp['START'] |
||||||
self.__END = tmp['END']; |
self.__END = tmp['END'] |
||||||
self.__COUNT_START = tmp['COUNT_START']; |
self.__COUNT_START = tmp['COUNT_START'] |
||||||
self.__COUNT_END = tmp['COUNT_END']; |
self.__COUNT_END = tmp['COUNT_END'] |
||||||
self.__FO = tmp['FO']; |
self.__FO = tmp['FO'] |
||||||
self.__LINE = tmp['LINE']; |
self.__LINE = tmp['LINE'] |
||||||
|
|
||||||
def GetPage(self,pageInfo,limit = '1,2,3,4,5,6,7,8'): |
def GetPage(self, pageInfo, limit='1,2,3,4,5,6,7,8'): |
||||||
# 取分页信息 |
# 取分页信息 |
||||||
# @param pageInfo 传入分页参数字典 |
# @param pageInfo 传入分页参数字典 |
||||||
# @param limit 返回系列 |
# @param limit 返回系列 |
||||||
self.__RTURN_JS = pageInfo['return_js'] |
self.__RTURN_JS = pageInfo['return_js'] |
||||||
self.__COUNT_ROW = pageInfo['count'] |
self.__COUNT_ROW = pageInfo['count'] |
||||||
self.ROW = pageInfo['row'] |
self.ROW = pageInfo['row'] |
||||||
self.__C_PAGE = self.__GetCpage(pageInfo['p']) |
self.__C_PAGE = self.__GetCpage(pageInfo['p']) |
||||||
self.__START_NUM = self.__StartRow() |
self.__START_NUM = self.__StartRow() |
||||||
self.__END_NUM = self.__EndRow() |
self.__END_NUM = self.__EndRow() |
||||||
self.__COUNT_PAGE = self.__GetCountPage() |
self.__COUNT_PAGE = self.__GetCountPage() |
||||||
self.__URI = self.__SetUri(pageInfo['uri']) |
self.__URI = self.__SetUri(pageInfo['uri']) |
||||||
self.SHIFT = self.__START_NUM - 1 |
self.SHIFT = self.__START_NUM - 1 |
||||||
|
|
||||||
keys = limit.split(',') |
keys = limit.split(',') |
||||||
|
|
||||||
pages = {} |
pages = {} |
||||||
#起始页 |
# 起始页 |
||||||
pages['1'] = self.__GetStart() |
pages['1'] = self.__GetStart() |
||||||
#上一页 |
# 上一页 |
||||||
pages['2'] = self.__GetPrev() |
pages['2'] = self.__GetPrev() |
||||||
#分页 |
# 分页 |
||||||
pages['3'] = self.__GetPages() |
pages['3'] = self.__GetPages() |
||||||
#下一页 |
# 下一页 |
||||||
pages['4'] = self.__GetNext() |
pages['4'] = self.__GetNext() |
||||||
#尾页 |
# 尾页 |
||||||
pages['5'] = self.__GetEnd() |
pages['5'] = self.__GetEnd() |
||||||
|
|
||||||
#当前显示页与总页数 |
# 当前显示页与总页数 |
||||||
pages['6'] = "<span class='Pnumber'>" + bytes(self.__C_PAGE) + "/" + bytes(self.__COUNT_PAGE) + "</span>" |
pages['6'] = "<span class='Pnumber'>" + \ |
||||||
#本页显示开始与结束行 |
bytes(self.__C_PAGE) + "/" + bytes(self.__COUNT_PAGE) + "</span>" |
||||||
pages['7'] = "<span class='Pline'>" + self.__FO + bytes(self.__START_NUM) + "-" + bytes(self.__END_NUM) + self.__LINE + "</span>" |
# 本页显示开始与结束行 |
||||||
#行数 |
pages['7'] = "<span class='Pline'>" + self.__FO + \ |
||||||
pages['8'] = "<span class='Pcount'>" + self.__COUNT_START + bytes(self.__COUNT_ROW) + self.__COUNT_END + "</span>" |
bytes(self.__START_NUM) + "-" + \ |
||||||
|
bytes(self.__END_NUM) + self.__LINE + "</span>" |
||||||
#构造返回数据 |
# 行数 |
||||||
retuls = '<div>'; |
pages['8'] = "<span class='Pcount'>" + self.__COUNT_START + \ |
||||||
|
bytes(self.__COUNT_ROW) + self.__COUNT_END + "</span>" |
||||||
|
|
||||||
|
# 构造返回数据 |
||||||
|
retuls = '<div>' |
||||||
for value in keys: |
for value in keys: |
||||||
retuls += pages[value] |
retuls += pages[value] |
||||||
retuls +='</div>'; |
retuls += '</div>' |
||||||
|
|
||||||
#返回分页数据 |
# 返回分页数据 |
||||||
return retuls; |
return retuls |
||||||
|
|
||||||
def __GetEnd(self): |
def __GetEnd(self): |
||||||
#构造尾页 |
# 构造尾页 |
||||||
endStr = "" |
endStr = "" |
||||||
if self.__C_PAGE >= self.__COUNT_PAGE: |
if self.__C_PAGE >= self.__COUNT_PAGE: |
||||||
endStr = ''; |
endStr = '' |
||||||
else: |
else: |
||||||
if self.__RTURN_JS == "": |
if self.__RTURN_JS == "": |
||||||
endStr = "<a class='Pend' href='" + self.__URI + "p=" + bytes(self.__COUNT_PAGE) + "'>" + self.__END + "</a>" |
endStr = "<a class='Pend' href='" + self.__URI + "p=" + \ |
||||||
|
bytes(self.__COUNT_PAGE) + "'>" + self.__END + "</a>" |
||||||
else: |
else: |
||||||
endStr = "<a class='Pend' onclick='" + self.__RTURN_JS + "(" + bytes(self.__COUNT_PAGE) + ")'>" + self.__END + "</a>" |
endStr = "<a class='Pend' onclick='" + self.__RTURN_JS + \ |
||||||
|
"(" + bytes(self.__COUNT_PAGE) + ")'>" + self.__END + "</a>" |
||||||
return endStr |
return endStr |
||||||
|
|
||||||
def __GetNext(self): |
def __GetNext(self): |
||||||
#构造下一页 |
# 构造下一页 |
||||||
nextStr = "" |
nextStr = "" |
||||||
if self.__C_PAGE >= self.__COUNT_PAGE: |
if self.__C_PAGE >= self.__COUNT_PAGE: |
||||||
nextStr = ''; |
nextStr = '' |
||||||
else: |
else: |
||||||
if self.__RTURN_JS == "": |
if self.__RTURN_JS == "": |
||||||
nextStr = "<a class='Pnext' href='" + self.__URI + "p=" + bytes(self.__C_PAGE + 1) + "'>" + self.__NEXT + "</a>" |
nextStr = "<a class='Pnext' href='" + self.__URI + "p=" + \ |
||||||
|
bytes(self.__C_PAGE + 1) + "'>" + self.__NEXT + "</a>" |
||||||
else: |
else: |
||||||
nextStr = "<a class='Pnext' onclick='" + self.__RTURN_JS + "(" + bytes(self.__C_PAGE + 1) + ")'>" + self.__NEXT + "</a>" |
nextStr = "<a class='Pnext' onclick='" + self.__RTURN_JS + \ |
||||||
|
"(" + bytes(self.__C_PAGE + 1) + ")'>" + self.__NEXT + "</a>" |
||||||
|
|
||||||
return nextStr |
return nextStr |
||||||
|
|
||||||
def __GetPages(self): |
def __GetPages(self): |
||||||
#构造分页 |
# 构造分页 |
||||||
pages = '' |
pages = '' |
||||||
num = 0 |
num = 0 |
||||||
#当前页之前 |
# 当前页之前 |
||||||
if (self.__COUNT_PAGE - self.__C_PAGE) < self.__LIST_NUM: |
if (self.__COUNT_PAGE - self.__C_PAGE) < self.__LIST_NUM: |
||||||
num = self.__LIST_NUM + (self.__LIST_NUM - (self.__COUNT_PAGE - self.__C_PAGE)); |
num = self.__LIST_NUM + \ |
||||||
|
(self.__LIST_NUM - (self.__COUNT_PAGE - self.__C_PAGE)) |
||||||
else: |
else: |
||||||
num = self.__LIST_NUM |
num = self.__LIST_NUM |
||||||
n = 0 |
n = 0 |
||||||
for i in range(num): |
for i in range(num): |
||||||
n = num - i |
n = num - i |
||||||
page = self.__C_PAGE - n; |
page = self.__C_PAGE - n |
||||||
if page > 0: |
if page > 0: |
||||||
if self.__RTURN_JS == "": |
if self.__RTURN_JS == "": |
||||||
pages += "<a class='Pnum' href='" + self.__URI + "p=" + bytes(page) + "'>" + bytes(page) + "</a>" |
pages += "<a class='Pnum' href='" + self.__URI + \ |
||||||
|
"p=" + bytes(page) + "'>" + bytes(page) + "</a>" |
||||||
else: |
else: |
||||||
pages += "<a class='Pnum' onclick='" + self.__RTURN_JS + "(" + bytes(page) + ")'>" + bytes(page) + "</a>" |
pages += "<a class='Pnum' onclick='" + self.__RTURN_JS + \ |
||||||
|
"(" + bytes(page) + ")'>" + bytes(page) + "</a>" |
||||||
|
|
||||||
#当前页 |
# 当前页 |
||||||
if self.__C_PAGE > 0: |
if self.__C_PAGE > 0: |
||||||
pages += "<span class='Pcurrent'>" + bytes(self.__C_PAGE) + "</span>" |
pages += "<span class='Pcurrent'>" + \ |
||||||
|
bytes(self.__C_PAGE) + "</span>" |
||||||
|
|
||||||
#当前页之后 |
# 当前页之后 |
||||||
if self.__C_PAGE <= self.__LIST_NUM: |
if self.__C_PAGE <= self.__LIST_NUM: |
||||||
num = self.__LIST_NUM + (self.__LIST_NUM - self.__C_PAGE) + 1 |
num = self.__LIST_NUM + (self.__LIST_NUM - self.__C_PAGE) + 1 |
||||||
else: |
else: |
||||||
num = self.__LIST_NUM; |
num = self.__LIST_NUM |
||||||
for i in range(num): |
for i in range(num): |
||||||
if i == 0: |
if i == 0: |
||||||
continue |
continue |
||||||
page = self.__C_PAGE + i; |
page = self.__C_PAGE + i |
||||||
if page > self.__COUNT_PAGE: |
if page > self.__COUNT_PAGE: |
||||||
break; |
break |
||||||
if self.__RTURN_JS == "": |
if self.__RTURN_JS == "": |
||||||
pages += "<a class='Pnum' href='" + self.__URI + "p=" + bytes(page) + "'>" + bytes(page) + "</a>" |
pages += "<a class='Pnum' href='" + self.__URI + \ |
||||||
|
"p=" + bytes(page) + "'>" + bytes(page) + "</a>" |
||||||
else: |
else: |
||||||
pages += "<a class='Pnum' onclick='" + self.__RTURN_JS + "(" + bytes(page) + ")'>" + bytes(page) + "</a>" |
pages += "<a class='Pnum' onclick='" + self.__RTURN_JS + \ |
||||||
|
"(" + bytes(page) + ")'>" + bytes(page) + "</a>" |
||||||
|
|
||||||
return pages; |
return pages |
||||||
|
|
||||||
def __GetPrev(self): |
def __GetPrev(self): |
||||||
#构造上一页 |
# 构造上一页 |
||||||
startStr = '' |
startStr = '' |
||||||
if self.__C_PAGE == 1: |
if self.__C_PAGE == 1: |
||||||
startStr = ''; |
startStr = '' |
||||||
else: |
else: |
||||||
if self.__RTURN_JS == "": |
if self.__RTURN_JS == "": |
||||||
startStr = "<a class='Ppren' href='" + self.__URI + "p=" + bytes(self.__C_PAGE - 1) + "'>" + self.__PREV + "</a>" |
startStr = "<a class='Ppren' href='" + self.__URI + "p=" + \ |
||||||
|
bytes(self.__C_PAGE - 1) + "'>" + self.__PREV + "</a>" |
||||||
else: |
else: |
||||||
startStr = "<a class='Ppren' onclick='" + self.__RTURN_JS + "(" + bytes(self.__C_PAGE - 1) + ")'>" + self.__PREV + "</a>" |
startStr = "<a class='Ppren' onclick='" + self.__RTURN_JS + \ |
||||||
|
"(" + bytes(self.__C_PAGE - 1) + ")'>" + self.__PREV + "</a>" |
||||||
return startStr |
return startStr |
||||||
|
|
||||||
def __GetStart(self): |
def __GetStart(self): |
||||||
#构造起始分页 |
# 构造起始分页 |
||||||
startStr = '' |
startStr = '' |
||||||
if self.__C_PAGE == 1: |
if self.__C_PAGE == 1: |
||||||
startStr = ''; |
startStr = '' |
||||||
else: |
else: |
||||||
if self.__RTURN_JS == "": |
if self.__RTURN_JS == "": |
||||||
startStr = "<a class='Pstart' href='" + self.__URI + "p=1'>" + self.__START + "</a>" |
startStr = "<a class='Pstart' href='" + \ |
||||||
|
self.__URI + "p=1'>" + self.__START + "</a>" |
||||||
else: |
else: |
||||||
startStr = "<a class='Pstart' onclick='" + self.__RTURN_JS + "(1)'>" + self.__START + "</a>" |
startStr = "<a class='Pstart' onclick='" + \ |
||||||
return startStr; |
self.__RTURN_JS + "(1)'>" + self.__START + "</a>" |
||||||
|
return startStr |
||||||
|
|
||||||
def __GetCpage(self,p): |
def __GetCpage(self, p): |
||||||
#取当前页 |
# 取当前页 |
||||||
if p: |
if p: |
||||||
return p |
return p |
||||||
return 1 |
return 1 |
||||||
|
|
||||||
def __StartRow(self): |
def __StartRow(self): |
||||||
#从多少行开始 |
# 从多少行开始 |
||||||
return (self.__C_PAGE - 1) * self.ROW + 1 |
return (self.__C_PAGE - 1) * self.ROW + 1 |
||||||
|
|
||||||
def __EndRow(self): |
def __EndRow(self): |
||||||
#从多少行结束 |
# 从多少行结束 |
||||||
if self.ROW > self.__COUNT_ROW: |
if self.ROW > self.__COUNT_ROW: |
||||||
return self.__COUNT_ROW |
return self.__COUNT_ROW |
||||||
return self.__C_PAGE * self.ROW |
return self.__C_PAGE * self.ROW |
||||||
|
|
||||||
def __GetCountPage(self): |
def __GetCountPage(self): |
||||||
#取总页数 |
# 取总页数 |
||||||
return int(math.ceil(self.__COUNT_ROW / float(self.ROW))) |
return int(math.ceil(self.__COUNT_ROW / float(self.ROW))) |
||||||
|
|
||||||
def __SetUri(self,input): |
def __SetUri(self, input): |
||||||
#构造URI |
# 构造URI |
||||||
uri = '?' |
uri = '?' |
||||||
for key in input: |
for key in input: |
||||||
if key == 'p': |
if key == 'p': |
||||||
continue |
continue |
||||||
uri += key+'='+input[key]+'&' |
uri += key + '=' + input[key] + '&' |
||||||
return str(uri) |
return str(uri) |
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue