search.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. $(function () {
  2. let params = lxd.parseUrl(window.location.href).query,
  3. my_search = $(".my-search>div"), start = 0, end = 0, currentPage = 1, pageSize = 20, totalPage = 1;
  4. params.inputval = decodeURI(params.inputval);
  5. my_search.find("select").val(params.selectval);
  6. my_search.find("input").val(params.inputval);
  7. // 数据渲染
  8. function work (data, parameter) {
  9. $(".content>ul>li").remove();
  10. data = data.map(item => {
  11. let reg = new RegExp(`(${parameter})`, "g"), newstr = item.title.replace(reg, `<font color=red>$1</font>`);
  12. let li = document.createElement("li");
  13. li.innerHTML = `<a target="_blank" href="${item.url}">
  14. <h5>${newstr}</h5>
  15. <div class="flex">
  16. <img data-original="${item.thumbnail}"
  17. src="./imgs/app.png" alt=""
  18. class="flex-item">
  19. <div class="flex-item">
  20. <p>${item.status} ${item.area}</p>
  21. <p>${item.time}</p>
  22. </div>
  23. </div>
  24. </a>`;
  25. return li;
  26. })
  27. $(".content>ul").append(data);
  28. $("img").lazyload();
  29. }
  30. // 分页请求
  31. function request (data) {
  32. return new Promise(resolve => {
  33. $.ajax({
  34. method: "get",
  35. data: {
  36. type: data.selectval,
  37. parameter: data.inputval,
  38. currentPage,
  39. pageSize
  40. },
  41. url: "http://admin.gaokaoapp.net/find/search/",
  42. success: function (res) {
  43. let { dataList: datas, totalPage: total, totalResult } = res.data;
  44. totalPage = total;
  45. $(".content>p").html(`为您找到相关结果约${totalResult}个`);
  46. work(datas, data.inputval)
  47. resolve(total);
  48. }
  49. })
  50. })
  51. }
  52. request(params).then(res => problem(res));
  53. // 页面搜索逻辑
  54. function axios () {
  55. let div = $(".my-search>div"), data = { selectval: div.find("select").val(), inputval: div.find("input").val() };
  56. window.location.href = `/search.html?selectval=${data.selectval}&inputval=${data.inputval}`;
  57. }
  58. $(".button").click(axios);
  59. // 分页问题 小于5
  60. function problem (res) {
  61. let ul = $(".pagination>li");
  62. if (res <= 5) {
  63. Array.from(ul).forEach((item, index) => {
  64. if (index > res) $(item).addClass("disabled")
  65. })
  66. } else {
  67. Array.from(ul).forEach((item, index) => {
  68. if (index != 0) $(item).removeClass("disabled")
  69. })
  70. }
  71. }
  72. my_search.keydown(function (event) {
  73. if (event.keyCode == 13) axios();
  74. }).find("label").click(axios);
  75. // let lis = $(".pagination>li");
  76. // 分页逻辑
  77. $(".pagination").click(function (e) {
  78. let li = $(e.target).parent();
  79. if (li.hasClass("active") || li.hasClass("disabled")) return false;
  80. $(this).find(".active").removeClass("active");
  81. let val = $(e.target).html(), arr = [];
  82. function operation (num, arr) {
  83. let brr = [];
  84. Array.from(arr).forEach(item => brr.push($(item).html()))
  85. brr = brr.slice(1, -1);
  86. if (num > 0 && Number(brr[4]) < totalPage) {
  87. Array.from(arr).forEach((item, index) => {
  88. $(item).parent().removeClass("disabled");
  89. if (index != 0 && index != 6) {
  90. let html = Number(brr[index - 1]) + num;
  91. if (html > totalPage) {
  92. $(item).html(html).parent().addClass("disabled");
  93. } else {
  94. if (index == 1) {
  95. $(item).html(html).parent().addClass("active");
  96. req(html)
  97. } else {
  98. $(item).html(html);
  99. }
  100. }
  101. }
  102. if (index == 6 && Number(brr[4]) + num > totalPage) {
  103. $(item).parent().addClass("disabled");
  104. }
  105. })
  106. }
  107. if (num < 0 && Number(brr[0]) != 1) {
  108. Array.from(arr).forEach((item, index) => {
  109. $(item).parent().removeClass("disabled");
  110. let html = Number(brr[index - 1]) + num;
  111. if (index != 0 && index != 6) {
  112. if (index == 1) {
  113. $(item).html(html).parent().addClass("active");
  114. req(html)
  115. } else {
  116. $(item).html(html)
  117. }
  118. }
  119. if (index == 0 && Number(brr[0]) + num == 1) {
  120. $(item).parent().addClass("disabled");
  121. }
  122. })
  123. }
  124. }
  125. function req (val) {
  126. currentPage = Number(val);
  127. request(params)
  128. }
  129. switch (val) {
  130. case "»":
  131. arr = li.parent().find("a");
  132. operation(5, arr)
  133. break;
  134. case "«":
  135. arr = li.parent().find("a");
  136. operation(-5, arr)
  137. break;
  138. default:
  139. li.addClass("active");
  140. req(val)
  141. }
  142. })
  143. })