search.js 4.6 KB

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