U.PG.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. //#region 分页控件
  2. Namespace.register("U.PG");
  3. //分页控件设置
  4. /*
  5. 功能:传统分页控件,此函数将预先加载。以后需多做几种样式。
  6. 参数一:UDE代表className为UD_SYFLB的div元素
  7. 参数二:UOD代表聊天条数。
  8. 参数三:UDP为整形1,默认第一页,其他数字,则为相应的显示页。
  9. 参数四: UNP代表一页显示多少条数据
  10. 参数五:USN为打印聊天信息的函数
  11. */
  12. U.PG.PPage = function (UOD, USN, UNP, UDN, UCF, UTF) {
  13. var i, j, _USE, _UKE,
  14. _UME = U.PG.PPage.setPage(USN, UNP, UDN, UCF);
  15. if (U.Ut.isFunction(UTF)) {
  16. _USE = UTF(this);
  17. _UKE = { //按钮对应事件处理
  18. "pre": { "onclick": [[U.PG.PPage.exec, [UNP - 1, _UBE[1], UOD, USN, UNP, UDN, UCF]]] }, //上一页
  19. "next": { "onclick": [[U.PG.PPage.exec, [UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF]]] }, //下一页
  20. "frit": { "onclick": [[U.PG.PPage.exec, [1, _UBE[0], UOD, USN, UNP, UDN, UCF]]] }, //第一页
  21. "last": { "onclick": [[U.PG.PPage.exec, [UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF]]] }, //最后一页
  22. "input": [{ "onkeyup": [U.M.returnkeylogin, [null, [[U.PG.PPage.PageAchieve, [UDE[3], UOD, USN, UNP, UDN, UCF, null, UDP]]]]] },
  23. { "onclick": [[U.PG.PPage.PageAchieve, [UDE[3], UOD, USN, UNP, UDN, UCF, null, UDP]]]}], //输入框 按钮
  24. "page": [] //页码按钮 变化样式 当前页的样式
  25. };
  26. for (i in _USE) {
  27. if (_USE.hasOwnProperty(i) && _UKE[i]) {
  28. if (U.Ut.isArray(_UKE[i])) {
  29. for (j = 0; j < _UKE[i].length; j++) {
  30. }
  31. }
  32. else {
  33. for (j in _UKE[i]) {
  34. _USE[i][j] = _UKE[i][j]
  35. }
  36. }
  37. }
  38. }
  39. }
  40. else if (!UTF) { // 创建分页控件
  41. U.PG.PPage.CPage(_UME[0], UOD, _UME[1], UNP, USN, UDN, UCF)
  42. }
  43. return _UME;
  44. }
  45. //分页控件显示
  46. U.PG.PPage.CPage = function (UDE, UOD, UDP, UNP, USN, UDN, UCF, UDOD) {
  47. var i, _UN, _USP, _UDOD, _UDTD, _UDSD, _UDGD, _UTE, _UAE, _UCE = [], _UBE = [];
  48. for (i = 0; i < 4; i++) {
  49. switch (i) {
  50. case 0:
  51. _UTF = UNP != 1;
  52. break;
  53. case 1:
  54. _UTF = UNP > 1;
  55. break;
  56. case 2:
  57. _UTF = UNP < UDP;
  58. break;
  59. case 3:
  60. _UTF = UNP != UDP;
  61. break;
  62. }
  63. if (_UTF) {
  64. _UBE[i] = UDE[i == 3 ? i + 1 : i];
  65. } else {
  66. _UCE[i] = "O";
  67. }
  68. }
  69. if (UDOD) {
  70. //分页控件分页
  71. _UDTD = $(UDOD).Child(),
  72. _UDAD = $(_UDTD[0]).childg(),
  73. _UTE = [1, UNP - 1, UNP + 1, UDP];
  74. $(_UDTD[1]).Child()[2].innerText = UNP + "页";
  75. _UAE = ["O", "T", "S", "F"];
  76. //跳页赋值
  77. for (i = 0; i < 4; i++) {
  78. _UDAD.addAttrArray({
  79. "onclick": _UCE[i] ? "" : [[U.PG.PPage.exec, [_UTE[i], _UBE[i], UOD, USN, UNP, UDN, UCF, UDOD]]],
  80. "className": "UD_SYI UD_SYFYL" + _UAE[i] + (_UCE[i] || "")
  81. }, (UCF.isp && i > 1) ? i + 1 : i);
  82. }
  83. //页码赋值
  84. if (UCF.isp) {
  85. _UDAD[2].innerText = ""; //清空
  86. _UN = UNP > 5 ? UNP - 5 : 0; //当前页的范围
  87. _USP = UNP + UCF.isp > UDP ? UDP : UNP + UCF.isp;
  88. _UAE = U.PG.PPage.setPage([_UN, _USP], null, null, UCF); //获取点击事件
  89. for (i = _UN; i < _USP; i++) { //范围使用
  90. $$("div", { "onclick": [[U.PG.PPage.exec, [i + 1, _UAE[i - _UN], UOD, USN, UNP, UDN, UCF, UDOD]]], "className": "UD_SYFYNO" + ((i + 1 == UNP) ? " UD_SYFYNOO" : ""), "innerHTML": i + 1 }, _UDAD[2]);
  91. }
  92. }
  93. $(_UDTD[1]).childg(0, 1).addAttrArray({
  94. "onclick": (_UTE = [[U.PG.PPage.PageAchieve, [UDE[3], UOD, USN, UNP, UDN, UCF, UDOD, UDP]]])
  95. }, 8);
  96. $("input", UDOD).addAttrArray({
  97. "onkeyup": [[U.M.returnkeylogin, [null, _UTE]]]
  98. });
  99. }
  100. else {
  101. _UDOD = $$("div", {
  102. "className": "UD_SYFY"
  103. });
  104. _UDTD = $$("div", {
  105. "className": "UD_SYFYL"
  106. }, _UDOD);
  107. $$("div", {
  108. "className": "UD_SYI UD_SYFYLO" + (_UCE[0] || ""),
  109. "onclick": _UCE[0] ? null : [[U.PG.PPage.exec, [1, _UBE[0], UOD, USN, UNP, UDN, UCF, _UDOD]]],
  110. "title": "首页"
  111. }, _UDTD);
  112. $$("div", {
  113. "className": "UD_SYI UD_SYFYLT" + (_UCE[1] || ""),
  114. "onclick": _UCE[1] ? null : [[U.PG.PPage.exec, [UNP - 1, _UBE[1], UOD, USN, UNP, UDN, UCF, _UDOD]]],
  115. "title": "上一页"
  116. }, _UDTD);
  117. if (UCF.isp && UDP > 0) {
  118. _UDSD = $$("div", { "className": "UD_SYFYN" }, _UDTD);
  119. _UN = UNP > 5 ? UNP - 5 : 0;
  120. _USP = UNP + UCF.isp > UDP ? UDP : UNP + UCF.isp;
  121. _UAE = U.PG.PPage.setPage([_UN, _USP], null, null, UCF); //获取点击事件
  122. for (i = _UN; i < _USP; i++) {
  123. $$("div", { "onclick": [[U.PG.PPage.exec, [i + 1, _UAE[i - _UN], UOD, USN, UNP, UDN, UCF, _UDOD]]], "className": "UD_SYFYNO" + ((i + 1 == UNP) ? " UD_SYFYNOO" : ""), "innerHTML": i + 1 }, _UDSD);
  124. }
  125. }
  126. $$("div", {
  127. "className": "UD_SYI UD_SYFYLS" + (_UCE[2] || ""),
  128. "onclick": _UCE[2] ? null : [[U.PG.PPage.exec, [UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF, _UDOD]]],
  129. "title": "下一页"
  130. }, _UDTD);
  131. $$("div", {
  132. "className": "UD_SYI UD_SYFYLF" + (_UCE[3] || ""),
  133. "onclick": _UCE[3] ? null : [[U.PG.PPage.exec, [UDP, _UBE[3], UOD, USN, UNP, UDN, UCF, _UDOD]]],
  134. "title": "尾页"
  135. }, _UDTD);
  136. _UDTD = $$("div", {
  137. "className": "UD_SYFYR"
  138. }, _UDOD);
  139. _UDSD = $$("div", {
  140. "className": "UD_SYFYRL"
  141. }, _UDTD);
  142. $$("span", {
  143. "innerHTML": "到"
  144. }, _UDSD);
  145. _UDGD = $$("div", {}, _UDSD);
  146. $$("input", {
  147. "type": "text",
  148. "onkeyup": [U.M.returnkeylogin, [null, [[U.PG.PPage.PageAchieve, [UDE[3], UOD, USN, UNP, UDN, UCF, _UDOD, UDP]]]]]
  149. }, _UDGD);
  150. $$("span", {
  151. "innerHTML": "页"
  152. }, _UDSD);
  153. $$("div", {
  154. "className": "UD_SYFYRZ",
  155. "innerHTML": "确定",
  156. "onclick": [[U.PG.PPage.PageAchieve, [UDE[3], UOD, USN, UNP, UDN, UCF, _UDOD, UDP]]]
  157. }, _UDTD);
  158. $$("div", {
  159. "className": "UD_SYFYRR",
  160. "innerHTML": UNP + "页"
  161. }, _UDTD);
  162. UOD.appendChild(_UDOD);
  163. }
  164. }
  165. //函数执行
  166. U.PG.PPage.exec = function (UTF, UFN, UOD, USN, UNP, UDN, UCF, UDOD) {
  167. if (UFN != null) {
  168. var _UDE = U.PG.PPage.main(UOD, USN, UTF, UDN, UCF, true);
  169. U.PG.PPage.CPage(_UDE[0], UOD, Math.ceil(USN / UDN), UTF, USN, UDN, UCF, UDOD);
  170. U.M.apply(this, UFN)();
  171. }
  172. }
  173. //输入框设置
  174. U.PG.PPage.PageAchieve = function (UFN, UOD, USN, UNP, UDN, UCF, UDOD, UDP) {
  175. var _UN = $(event.srcElement).parentg().find("input")[0].value;
  176. if (U.MS.Number.test(_UN)) {
  177. _UN = _UN.toInt();
  178. if (_UN <= UDP && _UN > 0) {
  179. (UNP != _UN) && (U.PG.PPage.exec(_UN, UFN, UOD, USN, UNP, UDN, UCF, UDOD));
  180. }
  181. else {
  182. parent.U.Alert("输入范围异常!");
  183. }
  184. }
  185. else {
  186. parent.U.Alert("无效输入!");
  187. }
  188. };
  189. //设置页数函数
  190. U.PG.PPage.setPage = function (USN, UNP, UDN, UCF) {
  191. var i, j, k, _USE, _UKE, _UGE, _UME = [],
  192. _UCE = UCF["fun"], //回调函数
  193. _UIP = UCF["page"]; //当前使用页数;
  194. if (U.Ut.isArray(USN)) {
  195. for (i = USN[0]; i < USN[1]; i++) {
  196. _UGE = [];
  197. for (j = 0; j < _UCE.length; j++) {
  198. _USE = _UCE[j][1];
  199. if (_UIP[j] != null) {
  200. _USE = _USE.concat();
  201. _USE[_UIP[j]] = i + 1;
  202. }
  203. _UGE.push[_UCE[j][0], _USE];
  204. }
  205. _UME.push(_UGE);
  206. }
  207. return _UME;
  208. }
  209. else { //添加事件处理
  210. var _UDP = Math.ceil(USN / UDN), //总页数
  211. _UDE = [1, UNP - 1, UNP + 1, "$(event.srcElement).parentg().find('input')[0].value", _UDP]; //前一页后一页处理
  212. for (i = 0; i < _UDE.length; i++) {
  213. _UGE = [];
  214. for (j = 0; j < _UCE.length; j++) {
  215. _USE = _UCE[j][1];
  216. if (_UIP[j] != null) {
  217. _USE = _USE.concat();
  218. _USE[_UIP[j]] = _UDE[i];
  219. }
  220. _UGE.push[_UCE[j][0], _USE];
  221. }
  222. _UME.push(_UGE);
  223. }
  224. return [_UME, _UDP];
  225. }
  226. }
  227. //控件设置
  228. U.PG.PPage.main = function (UOD, USN, UNP, UDN, UCF, UTF) {
  229. var i, j, _USE, _UKE,
  230. _UME = U.PG.PPage.setPage(USN, UNP, UDN, UCF);
  231. if (U.Ut.isFunction(UTF)) {
  232. _USE = UTF(this);
  233. _UKE = { //按钮对应事件处理
  234. "pre": { "onclick": [[U.PG.PPage.exec, [UNP - 1, _UBE[1], UOD, USN, UNP, UDN, UCF]]] }, //上一页
  235. "next": { "onclick": [[U.PG.PPage.exec, [UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF]]] }, //下一页
  236. "frit": { "onclick": [[U.PG.PPage.exec, [1, _UBE[0], UOD, USN, UNP, UDN, UCF]]] }, //第一页
  237. "last": { "onclick": [[U.PG.PPage.exec, [UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF]]] }, //最后一页
  238. "input": [{ "onkeyup": [U.M.returnkeylogin, [null, [[U.PG.PPage.PageAchieve, [UDE[3], UOD, USN, UNP, UDN, UCF, null, UDP]]]]] },
  239. { "onclick": [[U.PG.PPage.PageAchieve, [UDE[3], UOD, USN, UNP, UDN, UCF, null, UDP]]]}], //输入框 按钮
  240. "page": [] //页码按钮 变化样式 当前页的样式
  241. };
  242. for (i in _USE) {
  243. if (_USE.hasOwnProperty(i) && _UKE[i]) {
  244. if (U.Ut.isArray(_UKE[i])) {
  245. for (j = 0; j < _UKE[i].length; j++) {
  246. }
  247. }
  248. else {
  249. for (j in _UKE[i]) {
  250. _USE[i][j] = _UKE[i][j]
  251. }
  252. }
  253. }
  254. }
  255. }
  256. else if (!UTF) { // 创建分页控件
  257. U.PG.PPage.CPage(_UME[0], UOD, _UME[1], UNP, USN, UDN, UCF)
  258. }
  259. return _UME;
  260. }
  261. ;
  262. // return main;
  263. //U.PG.PPage = (function () { })()
  264. //#endregion