search.html 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>搜索 {{.key}} - 易租租</title>
  6. <link rel="stylesheet" href="/api/static/css/search.css">
  7. <link rel="stylesheet" href="/api/static/css/index.css">
  8. <meta name="keywords" content="{{.key}} - 易租租">
  9. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  10. <meta name="description"
  11. content="海外数字商城,为全球用户提供谷歌、苹果、脸书等购买服务,还有苹果、谷歌、steam礼品卡等购买渠道。在这里您还能进行steam代充、steam海外代充、steam钱包代充等,7*24小时为您提供满意的交易。">
  12. </head>
  13. <body>
  14. {{template "NavigationBar.tmpl" .}}
  15. <div class="search-result">
  16. <div class="search-result-body">
  17. <div class="search-result-title">
  18. <div class="search-result-title-text">搜索结果</div>
  19. </div>
  20. <div class="search-total">
  21. <span>搜索数量:</span>
  22. <span id="search-total-num">{{.count}}</span>
  23. </div>
  24. <div class="card-list">
  25. {{range $i,$vo := .list}}
  26. <div class="goods-sku-info" onclick="JumpRouter('/detail?skuId={{$vo.id}}')">
  27. <div class="goods-img"><img src="{{.skuImage}}" alt=""></div>
  28. <div class="goods-name">{{ .skuName }}</div>
  29. <div class="goods-price">{{ .price }}</div>
  30. {{if ne .historicalPrices .price }}
  31. <div>
  32. <div class="goods--original-price">¥{{ .historicalPrices }}</div>
  33. <div class="goods-discount-percentage">{{discalc .price .historicalPrices }}</div>
  34. </div>
  35. {{else}}
  36. <div>
  37. <div class="goods--original-price">¥{{ .historicalPrices }}</div>
  38. </div>
  39. {{end}}
  40. </div>
  41. {{end}}
  42. </div>
  43. <div class="search-pagination">
  44. <ul id="pagination" class="pagination"></ul>
  45. </div>
  46. </div>
  47. </div>
  48. {{template "BottomBar.tmpl" .}}
  49. </body>
  50. <script>
  51. document.addEventListener("DOMContentLoaded", function () {
  52. const itemsPerPage = 12;
  53. const totalItems = parseInt(document.getElementById("search-total-num").textContent, 10);
  54. const totalPages = Math.ceil(totalItems / itemsPerPage);
  55. let currentPage = getCurrentPageFromUrl();
  56. function renderPagination() {
  57. let pagination = document.getElementById("pagination");
  58. // Previous button
  59. const prevLi = document.createElement("li");
  60. prevLi.textContent = "上一页";
  61. if (currentPage === 1) {
  62. prevLi.classList.add("disabled");
  63. } else {
  64. prevLi.addEventListener("click", function () {
  65. goToPage(currentPage - 1);
  66. });
  67. }
  68. pagination.appendChild(prevLi);
  69. // Page numbers
  70. for (let i = 1; i <= totalPages; i++) {
  71. const pageLi = document.createElement("li");
  72. pageLi.textContent = i;
  73. if (i === currentPage) {
  74. pageLi.classList.add("active");
  75. } else {
  76. pageLi.addEventListener("click", function () {
  77. goToPage(i);
  78. });
  79. }
  80. pagination.appendChild(pageLi);
  81. }
  82. // Next button
  83. const nextLi = document.createElement("li");
  84. nextLi.textContent = "下一页";
  85. if (currentPage === totalPages) {
  86. nextLi.classList.add("disabled");
  87. } else {
  88. nextLi.addEventListener("click", function () {
  89. goToPage(currentPage + 1);
  90. });
  91. }
  92. pagination.appendChild(nextLi);
  93. }
  94. function goToPage(page) {
  95. if (page < 1 || page > totalPages) {
  96. return;
  97. }
  98. currentPage = page;
  99. updateUrlWithPage(page);
  100. renderPagination();
  101. // Perform actions to load the data for the selected page here
  102. }
  103. function getCurrentPageFromUrl() {
  104. const urlParams = new URLSearchParams(window.location.search);
  105. const pageNum = parseInt(urlParams.get('pageNum'), 10);
  106. return isNaN(pageNum) ? 1 : pageNum;
  107. }
  108. function updateUrlWithPage(page) {
  109. const url = new URL(window.location.href);
  110. url.searchParams.set('pageNum', page);
  111. window.location.href = url.toString();
  112. window.history.pushState({}, '', url);
  113. }
  114. renderPagination();
  115. });
  116. </script>
  117. </html>